替代.dilate()OpenCV

时间:2017-07-03 14:20:40

标签: python opencv pillow

我在我的脚本中使用cv2Pillow

image = Image.open("img1.png")
#do some stuff to the image
image.save("result1.png")

image = cv2.imread("result1.png")
kernel = np.ones((5, 5), np.uint8)
dilated_image = cv2.dilate(image, kernel, iterations=3)
cv2.imwrite("result2.png", dilated_image)

final_image = Image.open("result2.png")
#do some other stuff to the image
final_image.save("final_result.png")

如您所见,我必须在OpenCVPillow之间切换,并保存三张图片。我想要的是仅保存一个结果,而不是三个

有没有办法,我可以继续使用枕头,用几乎相同的执行速度扩大图像,而不使用cv2?

我已经尝试了image.filter(ImageFilter.MaxFilter(size=3)),但是需要太多的CPU时间。花费太多时间的原因是,为了与cv2.dilate(image, kernel, iterations=5)具有相同的效果,我应该至少使用image.filter(ImageFilter.MaxFilter(size=15))

1 个答案:

答案 0 :(得分:1)

如果您只是在为标准库中的函数寻找OpenCV替代品,那么您可以尝试SciPy的功能(SO问题here