【发布时间】:2015-10-04 14:44:27
【问题描述】:
我想在 python-pillow 中使用简单的卷积核过滤图像。但是,为了达到最佳效果,我需要一个 9x9 内核。这是枕头中的not possible,至少在使用ImageFilter.Kernel 和内置的filter() 方法时,它们仅限于5x5 内核。
没有实现我自己的卷积代码,有没有办法过滤/卷积内核大小大于 5x5 的图像?
【问题讨论】:
-
你能说明为什么不可能吗? - 只是为了完整性?或者一些代码尝试出错?
-
您是否仅限于使用 PIL?您是否考虑过使用 OpenCV 或
scipy? -
@User:文档中明确说明了这一点。此外,使用更大的内核调用
filter()会引发“错误的内核大小”ValueError。 -
@rayryeng 不,我更喜欢使用 PIL 的解决方案,因为它非常简单和干净,并且完全符合我的需求。但我目前正在研究 scipy。
-
我在 PIL 方面没有经验,但我很惊讶地发现您不能与任何 > 5 x 5 的东西进行卷积。在这种情况下,如果您正在查看
scipy,看看convolve这是ndimage包的一部分:docs.scipy.org/doc/scipy-0.15.1/reference/generated/…。您可以使用scipy.imread加载图像,进行卷积,然后使用Image.fromArray转换为PILImage对象
标签: python image-processing filtering convolution pillow