# Tag Info

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 A couple of confusions here. Features refer to some form of lower dimensional descriptors that explain a (potentially local) region of interest. They are useful in converting the appearance into certain signatures that are easier to handle / more robust than naively using pixels. What you are trying to ask is probably keypoint detection. This term is used ... 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.