我知道边缘检测问题以前已经发布过(在Java:Count the number of objects in an Image,语言无关:Image edge detection中),但我想知道如何在Python语言中实现它。
我在一些简单的形状(带有一些噪声的二进制形状)的边缘周围做边缘检测和曲率计算。我知道有一些OpenCV的包装器,但不确定哪一个更好: pyopencv,pycv,pycvf?
由于我基本上只做这两个任务,我也不确定自己实现它是否比使用库更快。
发布于 2012-02-07 17:42:05
我们在积极开发的scikit-image中有分割和边缘检测算法,您可能会发现这些算法很有用:
Scikit Images Examples
发布于 2015-08-31 04:53:55
您可以在python中使用scipy轻松实现边缘检测。
from scipy import ndimage
edge_horizont = ndimage.sobel(greyscale, 0)
edge_vertical = ndimage.sobel(greyscale, 1)
magnitude = np.hypot(edge_horizont, edge_vertical)这里是原始图像和边缘检测后的图像的示例。

在scikit image中,有一个关于如何进行边缘检测的special page with explanations。
发布于 2013-07-22 03:51:45
有一种非常简单的方法可以在python中使用scikit图像来查找轮廓。它实际上只有几行代码,如下所示:
from skimage import measure
contours = measure.find_contours(gimg, 0.8)这将返回轮廓线的矢量表示。在每一行的单独数组中。也很容易通过计算近似值来减少直线上的点数。这里有一个更长的源代码描述:image vectorization with python
https://stackoverflow.com/questions/9137216
复制相似问题