# Tag Info

7

Intuition for parameters of HoughCircles: image: 8-bit, single channel image. If working with a color image, convert to grayscale first. method: Defines the method to detect circles in images. Currently, the only implemented method is cv2.HOUGH_GRADIENT, which corresponds to the Yuen et al. paper. dp: Resolution of the accumulator array. Votes cast are ...

6

The usual approach to change detection is the CUSUM algorithm. I've done an implementation that just addresses the level (mean) change issue. It's included (in R) below. The black line is the noise-free data, the red line is the noisy data and the blue bars are the detected breaks (for this realization). This just addresses the level change; to address ...

6

Non-linearity A linear filter is mathematically described by the convolution sum (for discrete signals) and the convolution integral for continuous signals. The median cannot be found using a linear function except in the trivial case where you have a discrete filter of size 1, which is why the median filter is non-linear. Edge Preserving Properties. ...

6

A first rationale is to be very short, as there was a time when computing on images was expensive. Then, a contour or an edge often present a fast variation in image intensities, that can be enhanced by derivatives. Sobel filters emulate such derivatives in one direction, and slightly average pixels in the complementary direction, to smooth small variations ...

5

If you assume the Edge Detection is SNR driven operation, one could find a Mathematical justification for this. First, the variance of Additive White Noise with Variance ${\sigma}_{n}^{2}$ at the output of a Linear System given by $g$ is ${\sigma}_{n}^{2} {\left\| g \right\|}_{2}^{2}$. Let's look on an Image filtered by a derivative approximating ...

5

They are both highpass type filters, but used with very different intentions. One should immediately observe the fundamental difference that the output of unsharp masking filter is an enhanced image to be viewed by humans, whereas the output of the Sobel (edge detector) filter is not an image to be viewed by humans, but rather a description of the edges to ...

5

The answer is simple, the Sobel Filter is a composition of Lows Pass Filter (LPF) and High Pass Filter (HPF). The composition is done by convolution. Now, indeed the LPF presented above ${\left[ 1, 2, 1 \right]}^{T}$ has amplification in the DC value (Its sum is 4 so the amplification is 4). Yet it is convolved with an HPF filter which rejects the DC ...

4

If you have an idea what size circles you are looking for, then it would be best to set min_radius and max_radius accordingly. Otherwise, it will return anything circular of any size. Parameters 1 and 2 don't affect accuracy as such, more reliability. Param 1 will set the sensitivity; how strong the edges of the circles need to be. Too high and it won't ...

4

The $\sigma$ decides the scale of objects being simplified. This is explained here: The size of the Gaussian filter: the smoothing filter used in the first stage directly affects the results of the Canny algorithm. Smaller filters cause less blurring, and allow detection of small, sharp lines. A larger filter causes more blurring, smearing out the value ...

4

A median filter changes the value of one given pixel by the median value of a patch of pixels (most often around the given pixel). Generally, the patch contains an odd number of pixels. I will details three basic scenarii: clean edge (1D vision): suppose that the image is all black on the left ($0$ value), white on the right ($255$ value), a clear vertical ...

4

In general, the time derivative property of the Fourier Transform is given as $$\mathscr{F}[\frac{d}{dt}x(t)] = j\omega X(j\omega)$$ Notice that we can simply multiply by the frequency index in the Fourier Transform result. For the 2D FT result: $$\mathscr{F}[f(x,y)]= F(u,v)$$ Using the same property results in: $$\mathscr{F}[\frac{d}{dx}f(x,y)]= uF(u,... 4 Unless mentioned otherwise withing the context the classic interpretation of Second Derivative Gaussian Filter is indeed (a) in your question:$$ L \left( x, y, \theta \right) = \cos \left( \theta \right) {g}_{xx} \left( x, y \right) + \sin \left( \theta \right) {g}_{yy} \left( x, y \right) $$4 In the classic framework both the Smoothing and the Difference Filter are applied using Convolution. Since it is done using convolution it implies the operation is Linear Spatially Invariant (LSI). LSI operators can be applied in any order and the result will be the same. This is also a result of the commutativity property of the convolution operator. Let's ... 3 I think you would use a 2D Matched Filter. You would convolve your image with a series of rectangles. The peaks in the resulting images would be the location of your books. You could do this quickly in by Fourier transforming your image and using the known function for a rectange in 2D Fourier space (its two sinc functions, multiplied). 3 Despite its age, Canny Edge Detection is still a state of the art filter. The results produced by this algorithm make for it always being included in image editing software. Solid and descriptive edges that are often overly represented by other filters. It lacks the simplicity of, say, the Boolean Edge Detection, included in the paper, "Edge Detection ... 3 Note that once you obtain the skeleton, it is very hard to reverse back to separate the connected components that should not be connected. The problem is that your original image contrast is too low. I would operate an open morphological operation on your raw image to remove the background, hence increase the contrast of hair. Your raw image (reverse each ... 3 Finding edges in a color image can be done by decomposing the image into its channels, finding the gradients separately and fusing them somehow. However, such approach doesn't incorporate the color components in a joint model. Luckily, there is a better way to do this, which is the structure tensor representation. The color structure tensor describes the ... 3 Suppose that the noise is a random vector X with normal zero-mean components of variance \sigma_i, mutually independent, then for the linear combination (the g_i being for instance coefficients of a FIR filter):$$ Y = \sum_i g_i X_i\,,$$the variance of Y will be:$$ V(Y) =\sum_i g_i^2 \sigma_i^2\,, $$which boils down to$$\|g\|_2^2 \sigma_2^2\, ...

3

Indeed, it adds smoothing in the $y$ direction. The Sobel filter is the separable combination of the centered derivative $[−1,\;0,\;1]$ along $x$, and the $3$-point binomial smoother $[1,\;2,\;1]$ along $y$.

3

You need to ask yourself why do we use the difference of Gaussians from the first place? The reason is because the difference will give us a measurement for the change in value around the point we apply it to as a function of the variances of the Gaussians. If we have a big change the difference between the Gaussians it means that we have some frequencies ...

3

The Sobel Filter is a $3 \times 3$ matrix (it is separable, but let's ignore that). The anchor pixel is the middle one hence to evaluate the operator on pixels on the upper row the operator needs data above them. Same goes for pixels on the last row, left-most column or right-most column. This is usually solved by padding the image (I actually use "...

3

If I understand correctly, the question is, given many images which are result of different Edge Filter applied on the same image, how to actually mark edges. Well, you basically created 25 tests for each pixel to decide whether or not it is an edge. You could apply many approaches to decide: Majority Votes - If more than half of the voters decided it ...

3

Edges are not the best defined features in images. However, they can be associated, locally, at a certain scale, with relative variations in intensity along a first direction, combined with a relative smoothness in a complementary (for instance orthogonal) second direction. When looking along the first direction, the 1D intensity profile exhibit variations,...

3

The two most obvious things you can try are: Fitting a Gaussian to your data and then clustering their parameters Estimate the similarity of waveforms directly and then try to cluster that Since you know that the return waveform conforms to a Gaussian, it is better to use a method that takes this into account. So, basically, for every pixel time course, ...

3

I don't know if this is a corner case or the norm in your dataset but it is a relatively easy situation to deal with. It would be much more difficult to detect trees in an urban environment, for example, where you would probably be looking at more pattern-recognition type of solutions. The basic idea behind this solution is surface fitting, whether to ...

3

Well, look at your original picture: it's constant for all points but the edges, which means your derivative is zero for all points but these edges. By applying a "rounding, smoothing" filter to it, you "smear" the edges enough to make the derivative be non-zero for multiple pixels, in every direction.

3

The approach seems reasonable. Indeed doing edge detection in weighted RGB channel is the classic approach (Though you could also employ more advance methods, See Edge Detection on a Color Image). I think you could achieve great results if you also look specifically for oval shapes then you reduce the chances for false positives. Color identification in ...

3

Contour is the edge closing an object. So you can think as higher level of edge detection. So if an edge define an object it becomes a contour.

2

I wrote a function which solves this in my StackOverflow Q2080835 GitHub Repository (Have a look at CreateImageConvMtx()). Actually the function can support any convolution shape you'd like - full, same and valid. The code is as following: function [ mK ] = CreateImageConvMtx( mH, numRows, numCols, convShape ) CONVOLUTION_SHAPE_FULL = 1; ...

2

If you can use the Bilateral Filter then you can use the Guided Filter. The nice property of the Guided Filter is its low complexity. There is a simple and efficient implementation with with linear complexity of the number of pixels. You may also have a look at: Fast Anisotropic Curvature Preserving Smoothing. Simple Image Edge Preserving Filter.

Only top voted, non community-wiki answers of a minimum length are eligible