haaris角点检测在一个或者是两个相机进行标定的时候常常用到,Opencv和matlab中都有现成的命令和程序可循。为了解角点检测的原理,自己动手查看资料并写matlab程序实现,相信这是记忆最快最深刻的方法。
角点的位置就是图像中在x和y方向变化都很大的那个交点处。为了找到那些角点需要进行以下步骤的计算。
一、获取输入图像image的x和y方向的边缘图像。
方法是,用x和y方向的一阶滤波算子dx和dy(或者是二阶滤波算子dx和dy)对图像进行滤波。
其中x方向的一阶滤波算子一般取为dx=[-1,0,1];x方向的二阶滤波算子一般取为dx=[--2,1,0,1,2];
y方向的一阶滤波算子一般取为dy=[-1;0;1];y方向的二阶滤波算子一般取为dy=[--2;1;0;1;2];
滤波函数用filter2(),边缘图像Ix=filter2(dx,image);Iy=filter2(dy,image);其中dx,dy为滤波算子,image为要进行滤波的图像.
注:filter2()函数在matlab中的 实现,在另一篇文章里将详述。
image
x方向滤波后边缘图像Ix为: