2017-01-09 03:20:22 -0600 | commented answer | Making image noise free Based on the result you show after closing, you could then select only components above a certain size (with connectedComponents) to keep only the hand |
2017-01-03 02:23:50 -0600 | commented answer | Is there any enthusiasm for making point releases 3.1.1? 3.2 is available since a few days ago, in the nick of time ;) |
2016-12-23 02:24:29 -0600 | received badge | ● Enthusiast |
2016-12-19 07:00:32 -0600 | received badge | ● Nice Answer (source) |
2016-12-19 06:23:25 -0600 | received badge | ● Teacher (source) |
2016-12-19 05:29:03 -0600 | received badge | ● Necromancer (source) |
2016-12-19 05:20:35 -0600 | answered a question | Is it possible to draw half circle? Great answer ! Just a small addition since the question was asked for Python, in case any Python user come by (also, this is a full working example) |
2016-12-15 04:24:42 -0600 | received badge | ● Supporter (source) |
2016-12-13 03:47:32 -0600 | commented question | Getting Canny to provide good results Ok, thanks for everything ! |
2016-12-13 03:28:42 -0600 | commented question | Getting Canny to provide good results Thanks for the fast answer ! But in your example, what part of the code specifies to the program to use the "second" Canny ? This may be my inexperience in C++ talking... I'm using Python, and by the way your Python equivalent example uses the "normal" Canny (maybe it is not possible in Python ?) |
2016-12-13 03:11:47 -0600 | commented question | Getting Canny to provide good results Thank you both for your input. LBerger, glad to know that I'm not completely misusing Canny. matman, I was not aware of the existence of this overload, I want to give it a try. However, I can't figure out how to call it from my code, as Canny() calls the "normal" Canny function (this is probably a newbie problem, sorry...) |
2016-12-12 12:13:40 -0600 | received badge | ● Student (source) |
2016-12-12 11:37:54 -0600 | asked a question | Getting Canny to provide good results Hello everyone, I am working on edge detection. I have been developing under ImageJ for a while and converted most of my code to OpenCV in the past few weeks. Most of this process happened painlessly, however I cannot get the Canny filter to work in OpenCV as it did in ImageJ. Here is an example of image I work with (left), results with ImageJ (middle) and results with OpenCV (right). Hysteresis thresholds were set about the same. I have been searching for why such differences in results occur. I found that for ImageJ, the Canny algorithm uses a convolution mask which combines a gaussian function and a sobel kernel, thus computing gradients on a smoothed image. OpenCV's Canny only uses a Sobel Kernel I believe, but since the Gaussian and Sobel are linear, I should get the same results by gaussing the original image beforehand and then applying Canny. But it is not the case. One main difference is that ImageJ's kernel size for its convolution mask is 16 (and not modifiable), while OpenCv's one is 3,5 or 7 (results are shown for kernel 7), and this parameter seems to have a big impact on results. Do you think it is the reason why I have so different results ? If so, how can I get around it ? Thanks. PS : Things I tried : playing with hysteresis thresholds, morphological operations post Canny, but I would like as good results as ImageJ |