亞畫素角點

2022-07-21 00:09:16 字數 716 閱讀 8688

harris 角點定義為乙個鄰域內存在兩個正交方向上梯度變化較大的點。

在某些應用中(如視覺測量),想獲得更加精確的角點定位,可使用角點亞畫素演算法實現。

在提取亞畫素邊緣時,可以通過數學建模(最小二乘法)來描述邊緣方向上一階導數曲線,該曲線為乙個二次函式;然後找到數學模型的最值點即為亞畫素邊緣位置。

對於 harris 角點,考察 角點鄰域內點 p 的梯度向量,p點與初始角點 q 構成的向量 ,在理想情況下,發現兩向量點積均為 0。具體來說:

1)當 p 點位於平坦區域內,p 的梯度向量為 0,兩向量點積為 0;

2)當 p 點位於邊緣上,p 的梯度向量於向量 qp 正交,兩向量點積仍然為 0。

如上圖所示,將 q 點座標當作未知量,通過解方程組即可求得更加精確的角點座標。一旦求解到新的角點座標,可以使用新的角點座標位起點,按同樣方法建立方程組,迭代求解,直到精度滿足要求。

當考察點離參考角點 q 較遠時,考察點多半位於邊緣上,故考察點梯度方向與 qp 邊緣基本正交;

所以,實際應用中會排除離 p 點較近的部分點,以提公升線性方程組可解性。

另一方面,在平坦區域內點的梯度一般不等於 0,這會提公升方程組真實解。可以設定乙個梯度門限,方程組僅接收梯度門限較大值,從而提公升可解性。

參考資料 learning opencv 3

檢測亞畫素級角點

用cornersubpix 函式將角點定位到子畫素,從而取得亞畫素級別的角點檢測效果。尋找更精確的角點位置 不是整數型別的位置,而是更精確的浮點型別位置 如何將求得的座標值精確到亞畫素級精度?方法就是向量的點積理論 乙個向量和其正交的向量的點積為0,角點我們之前有說過了,就是兩個邊緣的相交,可以滿足...

OPENCV角點檢測和亞畫素級檢測

首先進行粗檢測,函式goodfeaturestotrack,儲存進入corners中,然後cornersubpix函式進行亞畫素精確匹配,設定結束條件。由於實際應用中線條較粗,因此 corner blocksize 9 corner qualitylevel 0.6 其他引數可以微調。std vec...

Halcon 3 畫素和亞畫素

畫素和亞畫素,聽起來視乎很厲害,但是理解起來就容易了 halcon中的 roi region of interest 感興趣的區域,這個是 畫素級別的,也就是說這個區域是沿著畫素點的邊緣行走,例如乙個圓,當你放大看的時候,其實是很多個正方形組成的,也就是乙個個畫素。halcon中的 xld exte...