MATLAB亚像素定位,亚像素精准边缘定位

1.http://download.csdn.net/detail/pkma75/925394

pkma75 资源积分:1分

备注:pdf格式,用曲线拟合的方法计算亚像素,编程易实现,具有较强的实用价值

2.http://download.csdn.net/detail/kuailechengzi/4408229

上 传 者:kuailechengzi  资源积分:1分

备注:亚像素边缘检测方法,此种方法先经过传统模板算子确定边缘的大致位置,然后用曲线拟合方法求出边缘的精确位置,经过粗、精两次定位,在不牺牲速度的情况下,就可获得亚像素级的定位精度。由于B样条函数所具有的优越性能,该方法采用它作拟合函数。

3.http://download.csdn.net/detail/alf_caisdn/4743179

上 传 者:alf_caisdn 资源积分:5分

备注:利用opencv的亚像素级别的边缘检测和获取,添加了原有程序的包含文件和库,可以直接调试运行,个边参数可以根据实际情形修改

4.http://download.csdn.net/download/zhang0908/4059102

上 传 者:zhang0908 资源积分:5分、

备注:这个是我编写的图像亚像素边缘提取的程序,可以直接应用不用修改

5.http://download.csdn.net/detail/luwei_2009/3082190

上 传 者:luwei_2009 资源积分:10分

备注:自己总结的亚像素的方法,有很强的实用性。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的定位matlab代码示例: % 读取图像 I = imread('image.jpg'); % 提取图像边缘 E = edge(I, 'canny'); % 定义一个5x5的Sobel算子 Sx = [-1 -2 -1; 0 0 0; 1 2 1]; Sy = [-1 0 1; -2 0 2; -1 0 1]; % 使用Sobel算子计算图像中的梯度 Gx = conv2(double(I), Sx, 'same'); Gy = conv2(double(I), Sy, 'same'); Gmag = sqrt(Gx.^2 + Gy.^2); % 使用非极大值抑制算法来抑制梯度的非峰值部分 Gdir = atan2(Gy, Gx); Gdir(Gdir < 0) = Gdir(Gdir < 0) + pi; Gdir = Gdir * 180 / pi; Gdir(Gdir < 22.5 | Gdir >= 157.5) = 0; Gdir(Gdir >= 22.5 & Gdir < 67.5) = 45; Gdir(Gdir >= 67.5 & Gdir < 112.5) = 90; Gdir(Gdir >= 112.5 & Gdir < 157.5) = 135; for i = 2:size(Gmag,1)-1 for j = 2:size(Gmag,2)-1 switch Gdir(i,j) case 0 if Gmag(i,j) <= Gmag(i,j-1) || Gmag(i,j) <= Gmag(i,j+1) Gmag(i,j) = 0; end case 45 if Gmag(i,j) <= Gmag(i-1,j+1) || Gmag(i,j) <= Gmag(i+1,j-1) Gmag(i,j) = 0; end case 90 if Gmag(i,j) <= Gmag(i-1,j) || Gmag(i,j) <= Gmag(i+1,j) Gmag(i,j) = 0; end case 135 if Gmag(i,j) <= Gmag(i-1,j-1) || Gmag(i,j) <= Gmag(i+1,j+1) Gmag(i,j) = 0; end end end end % 使用Harris角点检测算法来检测图像中的角点 C = cornermetric(Gmag); C = C .* E; C(C < max(max(C))/10) = 0; C = imdilate(C, strel('disk', 5)); % 对角点进行定位 corners = cornerpoints(C); for i = 1:size(corners,1) r = corners(i,1); c = corners(i,2); Ix = Gx(r-1:r+1,c-1:c+1); Iy = Gy(r-1:r+1,c-1:c+1); It = Gmag(r-1:r+1,c-1:c+1); [u, v] = subpixel(Ix, Iy, It); corners(i,:) = corners(i,:) + [u v]; end % 显示结果 imshow(I); hold on; plot(corners(:,2), corners(:,1), 'r*'); hold off;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值