New answers tagged

1

I have implemented a fast Gaussian-blur in C++ and compared the performance to OpenCV on Raspberry Pi 3B+ running 32bit Raspbian OS. The function uses all the 4 cores of the Raspberry Pi and works 2-3 times faster than OpenCV. The boost is even more on 64bit OS. Here is the link to code with documentation: https://github.com/zanazakaryaie/fastGaussianBlur


1

https://www.ques10.com/p/5768/state-and-prove-the-property-of-kernel-separatin-1/ It is possible due to the separability property of Fourier Transform


3

Cool facts about the Gaussian surface: It is a rotation: $$ G(x,y) = \frac{1}{2\pi \alpha}e^{-\frac{x^{2}+y^{2}}{2\alpha}} = \frac{1}{2\pi \alpha}e^{-\frac{r^{2}}{2\alpha}} = G(r) $$ where $ r = \sqrt{x^2 + y^2} $ It is separable: $$ G(x,y) = \frac{1}{2\pi \alpha}e^{-\frac{x^{2}+y^{2}}{2\alpha}} = \frac{1}{2\pi \alpha} e^{-\frac{x^2}{2\alpha} } e^{-\frac{y^2}...


2

Note that the given Gaussian achieves its maximum at $x=y=0$. So that value corresponds to the center of the matrix. The corner values are given by $G(2,2)$. Furthermore, the values are quantized. You can try to estimate the chosen value of $\alpha$ from the given values. EDIT: If you assume $\alpha=1$ and you evaluate the 2D-Gaussian, multiply it by $273$ ...


0

I'm struggling a little with this notation because I don't usually do any significant image processing. Many LTI filters have an inverse and it seems like this is where your discussion is leading. I'm assuming your image filter with three values could be expressed something like this: $h[n] = h_0\delta[n+1] + h_1\delta[n] + h_2\delta[n-1]$ If so, getting the ...


1

If you want to reduce sidelobes and are willing to accept lobe width increase, I'd suggest a Taylor window. Applying it to an image instead of a time-domain signal should not be an issue, so long as it is spatial sidelobes, not temporal ones, that you wish to suppress. Images are just spatial signals, so you can apply this filter in the X and Y dimension of ...


0

Keeping in mind @Fat32's warnings, based on this answer of mine to another question, you can construct the mask by testing whether: $$\left(\frac{u-\operatorname{floor}(W/2)}{W}\right)^2 + \left(\frac{v-\operatorname{floor}(H/2)}{H}\right)^2 <\left( \frac{f_c}{f_s}\right)^2\tag{1},$$ where $u$ and $v$ are zero-based indexes to the fftshifted frequency ...


0

There is any way to assign a a "level/histogram bin" to each pixel without iterating through the entire image? (emphasis mine) No, because what you describe is an operation that needs to be applied to each pixel. Also, a histogram needs to be calculated taking all pixels into account (that's the definition of a histogram!). Anyway, that's not a ...


0

A discretized amplitude is directly obtained by the numerical value of an intensity attached to the pixel location. The brightest would the maximum intensity over the whole picture. It seems that in Python with numpy you get gt it as: brightest = numpy.amax(imageData) and in Matlab brightest = max(imageData(:))


1

In the code the OP is comparing the real and the imaginary components of the FFT in each to determine similarity. If a phase shift occurs then the real and imaginary components will also change. What the OP should be comparing is the magnitudes of the complex values in each sample, which should be invariant under such image shifts. Confirming this; the OP ...


1

I was going to tell a joke about the appendages of an absolutely normal cat, but it has a really fat tail. Source


5

This is not a proof, but maybe an intuition why this conjecture can be true for the points in general position. From the properties of rank we know that: $$ \mathrm{rank}(F) = \mathrm{rank}(F^\top) = 2. $$ Hence: $$ \begin{align} \mathrm{rank}(F+ F^\top) &\leq \mathrm{rank}(F)+\mathrm{rank}(F^\top)\leq 4. \end{align} $$ Because $(F+F^\top)\in \mathbb{R}^{...


0

I have a mask image of shape 500x500x1 that contains polygons. . . . These polygons [...] are labeled These two statements are incompatible. Assuming that the third number is the color depth, then 1-bit implies a binary mask, but each class being assigned to a different level implies a color depth >1. With a 1-bit mask, binary erosion is applied. ...


1

I would assume that I1 and I2 are of the same scene/same lighting conditions/same camera position. In the ideal world images I1 and I2 would have been related by a constant scale factor (+ random noise) so in this case the way to go would be to determine an optimal scale factor that maps I1 into I2 and then estimating noise variance from the difference. ...


1

I'll simply present a series of results relevant to this question. Note that eigenvalues of this matrix are non-negative Let $x = [u\ v]^T$ $$x^TMx = [u\ v] \begin{bmatrix} I_x^2 & I_x I_y \\ I_x I_y & I_y^2 \end{bmatrix} \begin{bmatrix} u \\ v \end{bmatrix} = u^2 I_x^2 + 2uv I_x I_y + v^2 I_y^2 = (uI_x + vI_y)^2 \geq 0$$ Hence $M$ is positive-...


1

The "classic" way of estimating blurriness is (as far as I know) the difference of Gaussians approach: you filter your image with Gaussian blur filters of different variance. Then, you at which level of blurriness the most info is lost (i.e. where the largest difference between the last level of blurriness and the next level is). If your image ...


5

Is it possible to combine decimation and low pass filtering in one step? Not necessarily only for images but also for general signals. Yes, that's what people usually do when they implement downsampling: since of the output of the anti-aliasing filter, you throw away N-1 samples, why even calculate these? The trick is to decompose your filter into polyphase ...


1

I have been looking again into this question. The tensor product doesn't really have such a special meaning here. According to Nonlinear Structure Tensors: "Although this tensor product contains no more information than the gradient itself, it has the advantage that it can be smoothed without cancellation effects in areas where gradients have opposite ...


3

Your images look like being shot with an angular fisheye projection . Also, to account for epipolar geometry of stereo images, you should include the fundamental matrix into the transform engine of your geometry pipeline. To render a 3D scene in OpenCV with a fisheye camera, one uses a fisheye camera model. Regardless of a graphics software you are using, ...


Top 50 recent answers are included