Matlab实现Moravec算子

这篇博客介绍了Moravec算子在图像处理中的应用,通过计算4个方向上的灰度差方差来检测特征点。算法首先计算每个像素的兴趣值,然后设定阈值选择候选点,最后选取兴趣值极大的点作为最终特征点。代码实现中展示了图像处理的步骤,但需要注意该算子对边缘敏感、旋转时重复点问题以及噪声的影响。
摘要由CSDN通过智能技术生成

Moravec算子在4个方向上计算非归一化的影像局部灰度差方差,将最小值作为兴趣值的测度。该算子检测的特征点是那些影响强度值在每个方向上变化剧烈的点。

步骤:1、计算各像素的兴趣值

2、选出候选点(给定一经验阈值,将兴趣值大于该阈值的点作为候选点)。

3、选取候选点中兴趣值极大的点作为特征点

代码如下:

function N=moravec(filename,G)
F=imread(filename);    %导入图像
M=rgb2gray(F);   %转为灰度图像
figure(1);
imshow(M);
[row,col]=size(M); 
N=zeros(row,col);
w=5;               %5x5的窗口
k=floor(w/2);   %k值,向下取整
for i=3:row-3
    for j=3:col-3
        for d=i-k:i+k      %在5x5的窗口中进行计算
            for e=j-k:j+k
                for x=-k:k-1                                %第一步:计算各像素的兴趣值
                      v1=(M(i,j+x)-M(i,j+x+1))^2;   %横向
                       V1=sum(v1);
                       v2=(M(i+x,j+x)-M(i+x+1,j+x+1))^2;    %捺向
                       V2=sum(v2);
                       v3=(M(i+k,j)-M(i+k+1,j))^2;     
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值