1

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

4

4 回答 4

3

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

如果您想获得亚像素精度,您可以对通过 canny 或 gPb 获得的像素级结果应用后处理阶段。

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

于 2013-11-07T18:25:50.030 回答
2

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

于 2013-11-07T18:27:22.173 回答
2

这些亚像素边缘检测算法中的大多数只是简单地对图像进行上采样,通常使用双三次样条插值,然后对结果执行边缘检测,然后再次将图像下采样到原始分辨率。

你测试过这些简单的算法吗?它们适合您的目的吗?

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

于 2013-11-07T18:32:12.723 回答
0

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

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

于 2015-01-01T18:25:46.570 回答