资源简介
matlab亚像素边缘提取代码,供学习!

代码片段和文件信息
clear
clc
II=imread(‘Sample_BW.jpg‘);
figure(1)imshow(II)
I=double(II);
[mn]=size(I);
%用Canny算子进行像素边缘检测,判别阈值为0.1
ff=edge(I‘canny‘0.1);
figure(2)imshow(ff)
f=double(ff);
%求原函数梯度函数
R=zeros(mn);
for xi=2:1:m-1
for yi=2:1:n-1
R(xiyi)=abs(I(xi+1yi+1)+2*I(xiyi+1)+I(xi-1yi+1)-I(xi-1yi-1)-2*I(xiyi-1)-I(xi+1yi-1))+abs(I(xi-1yi-1)+2*I(xi-1yi)+I(xi-1yi+1)-I(xi+1yi+1)-2*I(xi+1yi)-I(xi+1yi-1));
end
end
%开始求坐标
nn=1;
W=zeros(mn);
for x=2:1:m-1
for y=2:1:n-1
if f(xy)==0
W(xy)=0;
else
i=[R(x-1y)R(xy)R(x+1y)];
j=[R(xy-1)R(xy)R(xy+1)];
if (i(2)>i(1))&(i(2)>i(3))&(j(2)>j(1))&(j(2)>j(3))
Xe=x+(i(1)-i(3))/((i(1)-2*i(2)+i(3))+eps);%求亚像素边缘坐标[XeYe]
Ye=y+(j(1)-j(3))/((j(1)-2*j(2)+j(3))+eps);
if (Xe0)&(Ye0)
Xe1(nn)=Xe; %得到的亚像素边缘点
Ye1(nn)=Ye;
Xe2(nn)=round(Xe); %得到的逼近的边缘点
Ye2(nn)=round(Ye);
W(Xe2(nn)Ye2(nn))=1; %把检测到的边缘点直观的表示出来
nn=nn+1; %设置循环,用数组的形势表示Xe2,Ye2,方便后期查看处理亚像素边缘点坐标
end
end
end
end
end
figure(3)imshow(W)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1474 2009-05-18 09:24 yaxiangsu.m
文件 7378 2005-11-22 10:20 Sample_BW.jpg
----------- --------- ---------- ----- ----
8852 2
相关资源
- harris角点检测并精确到亚像素级
- matlab下亚像素提取算法
- 亚像素棋盘格角点获取
- 基于MATLAB的Harris角点检测并精确到亚
- 亚像素harris角点检测
- 亚像素边缘检测的matlab代码,比一般
- 亚像素定位
- matlab实现亚像素
- 有效地亚像素配准方法matlab
- 基于Zernike矩的亚像素边缘检测
- 亚像素边缘提取
- 亚像素边缘检测matlab代码
- 亚像素提取边缘
- MATLAB实现基于互相关的亚像素级图像
- matlab平台实现平移的亚像素配准
- Zernike 亚像素边缘检测的matlab代码
- subpixel
- Image 圆形
- Zernike_code 经典亚像素边缘检测算法
- 基于Zernike正交矩的图像亚像素边缘检
- 曲面拟合法实现图像亚像素位移matl
- 亚像素边缘提取算法
评论
共有 条评论