9

Here is what I experimented with: Use ELSD to generate elliptic contours. You could basically use any edge detector, but since in the following stages I will benefit from circle detectors, it is good to already have some geometrical edges. Here is what the output looks like:               &...


3

For $-1 <= x <= 1$, let's compare Chebyshev polynomials of the first kind, $T_n(x)$, and the basis functions of the Fourier cosine series, $F_n(x)$: $F_n(x)=\cos(n \pi x)$ $T_n(x)=\cos(n\ \text{acos}\ x)$ Writing $T_n(x_T) = F_n(x_F)$ and solving for $x_F$ gives $x_F = (\text{acos}\ x_T) / pi$, revealing that the Chebyshev polynomial series is ...


2

The normalization of the Fourier descriptors is performed as follows: 1) Set the DC component of the descriptors to $a(0)=0$. 2) Divide all the Fourier descriptors with the magnitude of the second one. i.e. : $a(1)=r_1e^{j\phi_1}$ $a(k)=\frac{a(k)}{\lVert a(1) \rVert}$ 3) Now, only the position of the starting point remains to be normalized. This is ...


2

If the shape is rotated by $\theta$, then the gradient orientation ($\phi$) for a given edge point changes. So, shouldn't we do either one of the following: Rotate all the ϕ values in R table by θ? OR Rotate gradient vector by ($-\theta$) and then calculate $\phi$ for the edge point? The generalised Hough transform does #1 ...


2

The Kaiser window approximates the discrete prolate spheroidal sequence (DPSS) window which I think tends to a Gaussian function in an appropriate limit of large window and large $\alpha$, because the DPSS window concentrates energy both in time and frequency domain, as does the Gaussian function. The the zero-phase Kaiser window of length $N$ with shape ...


2

They are using the same method. The second resource is just showing the windowing function. Look at slide 12, the windowing function is shown here. Erosion implies you use a windowed kernel, and slide it around the entire image (as seen in this gif), so the first source doesn't mention this step. The 2nd source is explicitly stating you must pad the search ...


2

Fourier shape descriptors are quite easy to use and can do well to differentiate smooth objects from jagged ones. Imagine a polar coordinate system with the origin at the centroid of the 2D object. Store a vector of $r$ values as $\theta$ varies in $[0, 2\pi)$ where $r$ is the distance of the boundary from the centroid at each fixed angle $\theta$. Next, ...


1

The best answer is to read this work on Modeling and Estimation of the Trajectory of a moving Object. In this work, a linear discrete model of left / right circular motion with a given radius is constructed. A new algorithm for mathematical modeling of the trajectory of a moving object, consisting of segments of rectilinear and circular motion in conditions ...


1

While I still don't yet understand all the options in the dtw-python package, it seems as though the relative ordering of my two examples is now as expected using the code snippet alignment = dtw.dtw(y, yref, keep_internals=True) This allows me to create the following alignment figure using that package. Additionally, the relative ordering of my two ...


1

In music, we would call this "wavetable synthesis", but most electrical engineers would call this Direct Digital Synthesis (DDS) or a Numerically Controlled Oscillator (NCO). You need a phase accumulator, a sufficient number of points in your wavetable and a means to interpolate between points (if there are many points in the wavetable, linear interpolation ...


1

I was having the same issue as you had: most resources I found online seem to miss this issue about the rotating gradient orientation, as did A_A in their answer (which to be fair is very clear in the other aspects of the GHT). I found that the original paper by Ballard addresses this very thing in section 4.5 (the emphasis is mine): We denote a ...


1

My way of doing it would be: Extract LBP feature vectors for the reference symbols are store it. Now extract LBP feature vector of the test symbol. Compare it with the list of available reference feature vectors and choose the one with minimum difference. This method can also be extended to other symbols.


1

There is a polar asymmetric modelling for the lemniscate: which you can rotate and scale more easily that in Cartesian coordinates (but easy to convert). Such parameterizations are used very often as they can be less troublesome to fit. Similar curves in astronomy are also called analemmas: . From an image processing fit point of view, you can consult: ...


1

It seemed to work relatively well where there was a strong lightness difference at the edge of the poster, compared to background. This matches what squares.cpp seems to do: scale the image, do a canny edge detection, simplify the resulting contours and look for squares. There's two things that, looking at your example images, go wrong here: The contour ...


1

Though problem! However, signal processing might have a tool at hand: It's called compressive sensing, and reduces the number of samples you need to sub-Nyquist-rate levels. It's a bit nonsensical to derive the math behind compressive sensing for signals that are a sum of sinusoids (that being the only thing that I could do without literature) if that doesn'...


1

I haven't used the Zernike module from PeRL's myself, but check out their implementation here. It's written as an OpenCV module and looks well optimized. However! I have no idea what their license on this is, so definitely check before you integrate it into anything you're going to distribute or sell.


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