# Tag Info

4

Short answer is no, there are none, or maybe none that made it until becoming a de facto standard like FAST or SIFT. This is still an open area of research by the way if you plan to work in this field. Mostly, the issues are linked to the fragility of color representation in digital images. The common RGB color space is not really relevant (distances ...

3

The point descriptor usually requires samples at some specific locations from around the detected point. If you have point location refined and orientation assigned, you just shift and rotate the locations before computing point descriptor. Some simple descriptors require samples at discrete locations (e.g. 15x15 pixel image patch) and applying shift+...

2

can't we use other function such as: $R=1-(\lambda_1+\lambda_2)^2$ This formula isn't as useful, because it doesn't differentiate between two equally large eigenvalues (a corner) and one twice as large eigenvalue plus one very small one (a straight line). So for example $\lambda_1 = 2, \lambda_2 = 0$ will give the same result as $\lambda_1 = 1, \lambda_2 = ... 2 The solution is to use an "homography" / aka "projective transformation" (see this PDF, page 16). Here is a working code showing how to do it with Python + OpenCV. 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 Threshold the image to convert into binary image. Check whether it is a corner or not by dilating with these kernels separately on corners detected by corner detection.$$E_1 = \begin{bmatrix}0 & 0 &0 & 1& 0\\0 & 0 & 0 & 1& 0\\0 & 0 & 0 & 1& 0\\1 & 1 & 1 & 1& 0\\0 & 0 & 0 & 0& 0\... 1$M$is the structure tensor. The points where the signal changes in two directions are the points for which both eigenvalues of$M$are large.$R = det(M) - k*trace^2(M) = \lambda_1\lambda_2 - k(\lambda_1 + \lambda_2)^2$, so$R$is large when both$\lambda_1$and$\lambda_2$are large. 1 I think the first smoothing, by$\sigma_D$, is only done to get more stable derivatives whereas in the second step the convolution by a Gaussian with$\sigma_I$is done to establish the 'scale-space' in which the operator is applied. Ignoring$\sigma_D\$, this looks like this in Matlab: dx = [-1 0 1; -1 0 1; -1 0 1]; % Simple mask for derivative Ix = ...

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