是否有以下每个的等效python函数(可能在PIL ??):
edge(图片,'canny')
strel( '线',..)
strel( '钻石',1)
imdilate(...)
imfil(...)
imerode(...)
medfilt2(...)
我的所有模拟代码都在python中,但不是IC代!我想把我的IC生成到python中,所以每次运行sim时我都不必运行matlab。
谢谢,
tylerthemiler
答案 0 :(得分:5)
Python有很多图像处理库,但它们分布在许多软件包中:
只需浏览文档页面,查找与您列出的每个功能相同的内容。我认为你会发现OpenCV中可用的边缘检测,形态学操作,洪水填充和过滤功能(这是迄今为止最全面的)
注意:它们并非完全相互兼容(有些使用NumPy存储图像,有些则不使用)。
答案 1 :(得分:1)
阅读PIL,看起来它有一些对实现精确过滤器有用的函数。形态学侵蚀/扩张功能显然不可用。
这应该让您开始实现自己的canny过滤器。它在垂直和水平方向上执行索贝尔滤波器。这让你大约在算法的一半。从那里,您需要在(宽度,高度)上迭代(x,y)并抑制非最大边缘。维基百科有一个很好的解释http://en.wikipedia.org/wiki/Canny_edge_detector
import ImageFilter
filtHorizontal = [1, 0, -1, 2, 0, -2, 1, 0, -1]
filtVertical = [1, 2, 1, 0, 0, 0, -1, -2, -1]
im = im.filter(ImageFilter.BLUR)
edgeHorizontal = im.filter((3,3), filtHorizontal)
edgeVertical = im.filter((3,3), filtVertical)
PIL是python的首选图像处理工具包吗?看起来它可以使用一些贡献