MATLAB的Canny Filter的Python实现



在MATLAB中调用以下函数将Canny滤波器应用于图像:

edges = edge(image, 'Canny');
我知道有两个Python函数实现了Canny过滤器:
import cv2
edges = cv2.Canny(image)

from skimage import feature
edges = feature.canny(image)

然而,这两个Python函数都不能像MATLAB那样计算滤波器的高低阈值。根据这篇神经影像学论文,

…默认的MATLAB算法[生成]两个阈值,其中高阈值计算为不超过30%的像素被检测为边缘的最低值,低阈值定义为高阈值的40%。

是否有Python实现可以做到这一点?

您应该首先将Canny参数传递给canny(),然后在Python代码中运行它

im:图片名称
下阈值:
上限阈值:

import cv2
import matplotlib.pyplot as plt
img = cv2.imread('lena.png')
edges = cv2.Canny(img,....,....,L2gradient=False/True)
plt.imshow(edges,cmap='gray')
plt.show()

相关内容

  • 没有找到相关文章

最新更新