Harris、Shi-Tomasi和亞像素角點都是角點,隸屬於特徵點這個大類(特徵點能夠分爲邊緣、角點、斑點).html
void cv::cornerHarris | ( | InputArray | src, //須要爲8位單通道 |
OutputArray | dst, //結果 | ||
int | blockSize, //領域大小 | ||
int | ksize, //Sobel孔徑大小 | ||
double | k, //Harris參數 | ||
int | borderType = BORDER_DEFAULT |
||
) |
Harris corner detector.算法
The function runs the Harris corner detector on the image. Similarly to cornerMinEigenVal and cornerEigenValsAndVecs , for each pixel (x, y) it calculates a 2\times2 gradient covariance matrix M^{(x,y)} over a \texttt{blockSize} \times \texttt{blockSize} neighborhood. Then, it computes the following characteristic:less
(特徵點計算方法)ide
Corners in the image can be found as the local maxima of this response map.函數
src | Input single-channel 8-bit or floating-point image. |
dst | Image to store the Harris detector responses. It has the type CV_32FC1 and the same size as src . |
blockSize | Neighborhood size (see the details on cornerEigenValsAndVecs ). |
ksize | Aperture parameter for the Sobel operator. |
k | Harris detector free parameter. See the formula below. |
borderType | Pixel extrapolation method. See cv::BorderTypes. |
void cv::goodFeaturesToTrack | ( | InputArray | image,//輸入圖像 |
OutputArray | corners,//輸出向量 | ||
int | maxCorners,//角點最大數量 | ||
double | qualityLevel,//角點檢測可接受的最小特徵值 | ||
double | minDistance,//角點之間的最小距離 | ||
InputArray | mask = noArray() ,//感興趣區域 |
||
int | blockSize = 3 ,//領域範圍 |
||
bool | useHarrisDetector = false ,//true爲harris;false爲Shi-Tomasi |
||
double | k = 0.04 //權重係數 |
||
) |
Determines strong corners on an image. this
The function finds the most prominent corners in the image or in the specified image region, as described in [154]atom
The function can be used to initialize a point-based tracker of an object.idea
image | Input 8-bit or floating-point 32-bit, single-channel image. |
corners | Output vector of detected corners. |
maxCorners | Maximum number of corners to return. If there are more corners than are found, the strongest of them is returned. maxCorners <= 0 implies that no limit on the maximum is set and all detected corners are returned. |
qualityLevel | Parameter characterizing the minimal accepted quality of image corners. The parameter value is multiplied by the best corner quality measure, which is the minimal eigenvalue (see cornerMinEigenVal ) or the Harris function response (see cornerHarris ). The corners with the quality measure less than the product are rejected. For example, if the best corner has the quality measure = 1500, and the qualityLevel=0.01 , then all the corners with the quality measure less than 15 are rejected. |
minDistance | Minimum possible Euclidean distance between the returned corners. |
mask | Optional region of interest. If the image is not empty (it needs to have the type CV_8UC1 and the same size as image ), it specifies the region in which the corners are detected. |
blockSize | Size of an average block for computing a derivative covariation matrix over each pixel neighborhood. See cornerEigenValsAndVecs . |
useHarrisDetector | Parameter indicating whether to use a Harris detector (see cornerHarris) or cornerMinEigenVal. |
k | Free parameter of the Harris detector. |
void cv::cornerSubPix | ( | InputArray | image, |
InputOutputArray | corners, | ||
Size | winSize, | ||
Size | zeroZone, | ||
TermCriteria | criteria | ||
) |