基本介紹
- 中文名:cvFindCornerSubPix
- 參數:image
- 用於:發現亞像素精度的角點位置
- 圖像:corners設定了角點的初始位置
簡介,參數,概況,圖像,
簡介
void cvFindCornerSubPix(
const CvArr* image,
CvPoint2D32f* corners,
int count,
CvSize win,
CvSize zero_zone,
CvTermCriteria criteria
);
參數
image
輸入的圖像,必須是8位的灰度或者彩色圖像。
corners
輸入角點的初始坐標,也存儲精確的輸出坐標。
count
角點數目
win
搜尋視窗的一半尺寸。如果win=(5,5)那么使用(5*2+1)×(5*2+1)=11×11大小的搜尋視窗
zero_zone
概況
εi=DIpiT·(q-pi)
其中,DIpi表示在q的一個鄰域點pi處的圖像梯度,q的值通過最小化εi得到。通過將εi設為0,可以建立系統方程如下:
sumi(DIpi·DIpiT)·q - sumi(DIpi·DIpiT·pi) = 0
其中q的鄰域(搜尋窗)中的梯度被累加。調用第一個梯度參數G和第二個梯度參數b,得到:
q=G-1·b
圖像
輸入圖像image是8位通道的灰度圖像。corners為整數值的像素位置,corners設定了角點的初始位置。count為需要計算的角點數目。win指定了等式產生的視窗的尺寸。輸入參數zero_zone定義了一個禁區(與win相似,但通常比win小),這個區域在方程組以及自相關矩陣中不被考慮。如果不需要這樣一個禁區,則zero_zone應設定為cvSize(-1,-1)。最後一個參數為用戶定義的疊代終止條件。疊代過程的終止條件可以是最大疊代次數CV_TERMCRIT_ITER類型,或者是設定的精度CV_TERMCRIT_EPS類型(或者是兩者的組合)。終止條件的設定在極大程度上影響最終得到的亞像素值的精度。例如,指定0.10,則求得的亞像素級精度為像素的十分之一。