资源简介
Harris算子 Matlab源代码 直接可以运行

代码片段和文件信息
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Harris角点提取算法 %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear;
%filename=‘487_r.png‘;
%X= imread(‘Circle.bmp‘); % 读取图像
X= imread(‘001.jpg‘); % 读取图像
%imshow(X);
%Info=imfinfo(filename);
% if Info.BitDepth>8
% f=rgb2gray(X);
f=X;
%end
%
% fx = [5 0 -5;8 0 -8;5 0 -5]; % 高斯函数一阶微分,x方向(用于改进的Harris角点提取算法)
ori_im=double(f)/255; %unit8转化为64为双精度double64
fx = [-2 -1 0 1 2]; % x方向梯度算子(用于Harris角点提取算法)
Ix = filter2(fxori_im); % x方向滤波
% fy = [5 8 5;0 0 0;-5 -8 -5]; % 高斯函数一阶微分,y方向(用于改进的Harris角点提取算法)
fy = [-2;-1;0;1;2]; % y方向梯度算子(用于Harris角点提取算法)
Iy = filter2(fyori_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(hIx2);
Iy2 = filter2(hIy2);
Ixy = filter2(hIxy);
height = size(ori_im1);
width = size(ori_im2);
result = zeros(heightwidth); % 纪录角点位置,角点处值为1
R = zeros(heightwidth);
Rmax = 0; % 图像中最大的R值
for i = 1:height
for j = 1:width
M = [Ix2(ij) Ixy(ij);Ixy(ij) Iy2(ij)]; % auto correlation matrix
R(ij) = det(M)-0.06*(trace(M))^2; % 计算R
if R(ij) > Rmax
Rmax = R(ij);
end;
end;
end;
cnt = 0;
for i = 2:height-1
for j = 2:width-1
% 进行非极大抑制,窗口大小3*3
if R(ij) > 0.01*Rmax && R(ij) > R(i-1j-1) && R(ij) > R(i-1j) && R(ij) > R(i-1j+1) && R(ij) > R(ij-1) && R(ij) > R(ij+1) && R(ij) > R(i+1j-1) && R(ij) > R(i+1j) && R(ij) > R(i+1j+1)
result(ij) = 1;
cnt = cnt+1;
end;
end;
end;
i=1;
for j=1:height
for k=1:width
if result(jk)==1;
corners1(i1)=j;
corners1(i2)=k;
i=i+1;
end;
end;
end;
[posc posr] = find(result == 1);
cnt % 角点个数
imshow(ori_im)
hold on;
plot(posrposc‘r+‘);
a=ginput(1);
b=ginput(1);
j=1;
for i=1:cnt
if corners1(i1)>a(12) && corners1(i1) if corners1(i2)>a(11) && corners1(i2) B(j1)=corners1(i1);
B(j2)=corners1(i2);
j=j+1;
end
end
end
xlswrite(‘C:\Documents and Settings\ipsuser\桌面\Harris\ceshidata.xls‘B‘Sheet1‘‘C1‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 26163 2010-01-21 19:35 001.jpg
文件 2783 2011-01-08 21:53 HarrisJiaoDianJianCe.m
----------- --------- ---------- ----- ----
28946 2
相关资源
- 算术编码解码matlab源代码
- 图像小波变换MatLab源代码
- 用MATLAB(BPSK仿真 直接扩频)
- 数字信号处理 理论算法与实现 胡广书
- BP神经网络解决手写数字识别问题 m
- 数字识别matlab源代码
- 条纹投影轮廓术中的快速光栅预校准
- Split bregman 算法MATLAB源代码
- 字符识别matlab源代码
- 图像超分辨重建MATLAB源代码迭代步长
- 深度学习和matlab源代码
- matlab直接调用R语言
- MATLAB43案例
- RMSHE的MATLAB源代码
- 纹理图像分割Matlab源代码 PDF PPT
- Random Walks 标准程序,MATLAB程序,调试
- Random Walk Model Matlab源代码
- 贝叶斯网络Matlab源代码
- Vibe背景建模的方法检测运动物体mat
- 贝叶斯压缩感知matlab源代码
- matlab生成动态gif 可直接运行
- 暗影通道去雾matlab代码直接可用
- 指纹识别系统matlab源代码
- 基于颜色的图像检索 matlab源代码
- 系统辨识理论及Matlab仿真-刘金琨 [程
- 人工神经网络原理及仿真书及 matlab源
- 可直接运行国外的seam carving matlab源码
- 数字信号处理实验报告内含matlab源代
- PID控制MATLAB仿真第2版含MATLAB源代码
- 图像处理-边缘检测和特征提取MATLAB源
评论
共有 条评论