matlab中此段代码运行后显示原始边缘图像和亚像素检测边缘轮廓轮廓一样是怎么回事? 读取图像img = imreadlenajpg;gray_img = im2grayimg; 阈值化图像threshold = graythreshgray_img;binary_img = imbinarizegray_img threshold; 提取边缘edge_img = edgebinary_imgca
这段代码中,首先读取图像并将其转换为灰度图像。然后,通过阈值化将灰度图像转换为二值图像。接下来,使用Canny算法提取边缘。然后,计算Zernike矩,其中order为Zernike矩的阶数。最后,使用亚像素检测方法对边缘轮廓进行亚像素级别的检测。
在显示结果时,subplot(1, 2, 1)显示原始边缘图像,subplot(1, 2, 2)显示亚像素检测边缘轮廓。
原始边缘图像和亚像素检测边缘轮廓相同是因为在亚像素检测函数中,只有当edge_img(y, x)为1(即边缘点)时,才会计算亚像素值。因此,只有原始边缘图像中的边缘点才会被赋予亚像素值,其他点仍保持为0。因此,原始边缘图像和亚像素检测边缘轮廓在边缘点上是相同的。
原文地址: http://www.cveoy.top/t/topic/hOkO 著作权归作者所有。请勿转载和采集!