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

edges = edge(image, 'Canny');

我知道有两个实现Canny过滤器的Python函数:
import cv2

edges = cv2.Canny(image)


from skimage import feature

edges = feature.canny(image)

但是,这些Python函数均不能以MATLAB相同的方式来计算滤波器的高低阈值。根据this neuroimaging paper



是否有可以实现此目的的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()

07-28 02:55