亚像素边缘检测算法

时间:2013-11-07 18:17:58

标签: matlab image-processing computer-vision edge-detection

我正在进行边缘检测,我尝试了canny(matlab函数)的方法。但它只检测像素级别的边缘,我正在寻找高精度的亚像素边缘检测算法/代码。

4 个答案:

答案 0 :(得分:3)

AFAIK最先进的边缘检测算法以像素级精度(例如gPb)运行。

如果要获得子像素精度,可以将后处理阶段应用于canny或gPb获得的像素级结果。

您可以将参数曲线拟合到检测到的边缘的小邻域,从而获得子像素精度。

答案 1 :(得分:2)

在原始图像上运行edge()的问题是返回的黑白图像与原始图像的大小相同。你能用imresize()函数增加图像的大小并对其进行边缘检测吗?

答案 2 :(得分:2)

这些子像素边缘检测算法大多只涉及对图像进行上采样,通常采用双三次样条插值,然后对结果进行边缘检测,然后再次将图像下采样到原始分辨率。

您是否测试了这些简单算法?它们适合您的用途吗?

matlab重采样和边缘检测算法已经有很好的记录。

答案 3 :(得分:0)

如果需要子像素检测,可以在Matlab中尝试subpixelEdges()方法,基于“基于部分区域效应的精确亚像素边缘位置”一文。

http://es.mathworks.com/matlabcentral/fileexchange/48908-accurate-subpixel-edge-location