Forstner算子是Forstner(1986)在研究基于特征的影像匹配时提取的兴趣算子,该算子本身也具有吸引人的特征,因为它不仅能找到具有精确视察的点,同时它还能确定由任意数量和方向的边缘所形成的角点及圆、圆形影像片与圆环的中心。
代码(参考超人琪的博客):
F=imread('2053146.jpg');
f=rgb2gray(F);
figure(1);
imshow(F);%显示原始标准影
%判断是否为彩色图像,是彩色则转换为灰度图像
[x,y,z]=size(F);
figure(2);
imshow(f);%显示灰度图像
%lever=graythresh(pic_gray);%二值图像的阈值
f2=im2bw(f,0.9);%把灰度图像转换成二值图像,阈值可调
figure(3);
imshow(f2);
%第一步:先用4个方向的差分算子提取初选点
result=zeros(x,y);%特征提取结果
for i=2:x-1
for j=2:y-1
dg1=abs(f2(i,j)-f2(i+1,j));
dg2=abs(f2(i,j)-f2(i,j+1));
dg3=abs(f2(i,j)-f2(i-1,j));
dg4=abs(f2(i,j)-f2(i,j-1));
dg=[dg1,dg2,dg3,dg4];
temp=sort(dg);%对四个差分算子进行升序排列
if temp(3)==1%有任意两个大于阈值,则该像素有可能是一特征点
result(i,j)=255;%是初选点
else
result(i,j)=0;%不是初选点
end
end
end
figure(4