图像处理基础基于matlab图像Harris角点检测含Matlab源码 1731期
Posted 紫极神光
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图像处理基础基于matlab图像Harris角点检测含Matlab源码 1731期相关的知识,希望对你有一定的参考价值。
一、获取代码方式
获取代码方式1:
完整代码已上传我的资源:【图像处理基础】基于matlab图像Harris角点检测【含Matlab源码 1731期】
获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。
备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);
二、数字图像处理简介
图像处理基础教程链接
1 【基础教程】基于matlab图像处理(表示方法+数据结构+基本格式+类型转换+读取+点运算+代数运算)【含Matlab源码 834期】
2 【基础教程】基于matlab图像处理(读写+显示+运算+转换+变换+增强+滤波+分析+统计)【含Matlab源码 144期】
3 【基础教程】基于matlab图像增强+复原+分割【含Matlab源码 056期】
三、部分源代码
clear;
filename = 'Lena.jpg';
X = imread(filename);
Info = imfinfo(filename);
if (Info.BitDepth > 8)
f = rgb2gray(X);
end
%计算图像亮度f(x,y)在点(x,y)处的梯度-----------------------------------------------
ori_im = double(f) / 255;
fx = [-2 -1 0 1 2]; % x方向梯度算子
Ix = filter2(fx, ori_im);
fy = [-2; -1; 0; 1; 2]; % y方向梯度算子
Iy = filter2(fy, ori_im); % y方向滤波
%构造自相关矩阵---------------------------------------------------------------
Ix2 = Ix .^ 2;
Iy2 = Iy .^ 2;
Ixy = Ix .* Iy;
clear Ix;
clear Iy;
h= fspecial('gaussian', [7 7], 2); % 产生7*7的高斯窗函数,sigma=2
Ix2 = filter2(h,Ix2);
Iy2 = filter2(h,Iy2);
Ixy = filter2(h,Ixy);
%提取特征点---------------------------------------------------------------
height = size(ori_im, 1);
width = size(ori_im, 2);
result = zeros(height, width); % 纪录角点位置,角点处值为1
R = zeros(height, width);
Rmax = 0; % 图像中最大的R值
k = 0.06;
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) - k * (trace(M)) ^ 2; % 计算R
if R(i,j) > Rmax
Rmax = R(i, j);
end
end
end
四、运行结果
五、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
以上是关于图像处理基础基于matlab图像Harris角点检测含Matlab源码 1731期的主要内容,如果未能解决你的问题,请参考以下文章