harris角点检测_【图像处理】角点检测

角点:最直接的定义为在水平、垂直两个方向上变化均较大的点

最常用的角点检测算法为Harris角点检测方法,原理如下:

1.计算图像I(x,y)在X和Y两个方向的梯度Ix、Iy

2.计算图像两个方向梯度的乘积

3.使用高斯函数对Ix^2、Iy^2和Ixy进行高斯加权(取σ=1),生成矩阵M的元素A、B和C

4.计算每个像素的Harris响应值R,并对小于某一阈值t的R置为零

5.在3×3或5×5的邻域内进行非最大值抑制,局部最大值点即为图像中的角点

在matlab中对该方法进行了实验,代码如下:

function [posr,posc]=Harris1(in_image,a)clc; clear all; close all;in_image = checkerboard(50,3,3);a=0.04;% 功能:检测图像harris角点% in_image-待检测的rgb图像数组% a--角点参数响应,取值范围:0.04~0.06% [posr,posc]-角点坐标% in_image=rgb2gray(in_image);I=double(in_image);%%%%计算xy方向梯度%%%%%fx=[-1,0,1];%x方向梯度模板Ix=filter2(fx,I);%x方向滤波fy=[-1;0;1];%y方向梯度模板(注意是分号)Iy=filter2(fy,I);%%%%计算两个方向梯度的乘积%%%%%Ix2=Ix.^2;Iy2=Iy.^2;Ixy=Ix.*Iy;%%%%使用高斯加权函数对梯度乘积进行加权%%%%%产生一个7*7的高斯窗函数,sigma值为2h=fspecial('gaussian',[3,3],2);IX2=filter2(h,Ix2);IY2=filter2(h,Iy2);IXY=filter2(h,Ixy);%%%%%计算每个像元的Harris响应值%%%%%[height,width]=size(I);R=zeros(height,width);%像素(i,j)处的Harris响应值for i=1:height    for j=1:width        M=[IX2(i,j) IXY(i,j);IXY(i,j) IY2(i,j)];        R(i,j)=det(M)-a*(trace(M))^2;    endend%%%%%去掉小阈值的Harris值%%%%%Rmax=max(max(R));%阈值t=0.005*Rmax;for i=1:height    for j=1:width        if R(i,j)            R(i,j)=0;        end    endend%%%%%进行3*3领域非极大值抑制%%%%%%%%%corner_peaks=imregionalmax(R);%imregionalmax对二维图片,采用8领域(默认,也可指定)查找极值,三维图片采用26领域%极值置为1,其余置为0num=sum(sum(corner_peaks));%%%%%%显示所提取的Harris角点%%%%[posr,posc]=find(corner_peaks==1);figure;imshow(in_image);hold onfor i=1:length(posr)    plot(posc(i),posr(i),'r+');endend

be8cb502afce5dc270a883ebda39e4da.png

往期回顾>>>>>>

【模式识别】Matlab指纹识别【优化求解】A*算法解决三维路径规划问题  matlab自动识别银行卡号【优化求解】模拟退火遗传实现带时间窗的车辆路径规划问题【数学建模】Matlab实现SEIR模型【优化求解】基于NSGA-2的求解多目标柔性车间调度算法【优化求解】蚁群算法求最优值 输入"源代码"获取完整代码

71f84c4cec784f39e1e157820375783a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值