资源简介
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源代码
- 单神经元PID控制,可以直接运行
- FIR带通滤波器源代码
- 基于matlab的直接序列扩频通信
- 信息隐藏,LSB隐写 matlab源代码
- 基本粒子群算法MATLAB源代码
- RVM相关向量机matlab源代码
- 遗传算法 网络图的路径规划 MATLAB代码
- 机器人路径规划 人工势场法 MATLAB 可
- 二分法、牛顿法、割线法、简易牛顿
- 26TDOA定位的Chan算法MATLAB源代码
- HBV模型matlab源代码
- Mie散射Matlab源代码
- 车牌号识别程序,基于matlab可直接运
- 车辆ABS系统滑移率Bang-Bang、PID控制模
-
buck电路simuli
nk仿真(参数调好直接 - 盲反卷积算法复原图像
- 基于直接驱动永磁同步电机的 1.5 mw
- 粒子群优化的支持向量机matlab源代码
- 目标跟踪算法KCF加入APCE评价标准的
- 选择性搜索的matlab源代码
- 数字图像处理matlab源代码
- 滚动时域优化RHCMATLAB源代码
- 投影寻踪优化模型Matlab源代码
- 基于粒子群算法的无功优化MATLAB源代
- MATLAB画三维球体、半球体、圆柱、山
- 空间后方交会matlab源代码
- 神经网络滑模控制器设计的matlab源代
评论
共有 条评论