我使用cv2
和Pillow
在我的腳本:替代.dilate()OpenCV的
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")
正如你所看到的,我必須OpenCV
和Pillow
之間進行切換,並保存三個圖像。我想要的是,只保存一個的結果,而不是三個。
有沒有一種方法,我可以繼續枕頭,幾乎與相同的執行速度擴大圖像,而不使用cv2?
我已經嘗試過image.filter(ImageFilter.MaxFilter(size=3))
,但CPU時間過長。花費太多時間的原因是,爲了達到與cv2.dilate(image, kernel, iterations=5)
相同的效果,我應該至少使用image.filter(ImageFilter.MaxFilter(size=15))
這個函數['PIL.ImageFilter.MaxFilter'](http://pillow.readthedocs.io/en/4.2.x/reference/ImageFilter.html#PIL。 ImageFilter.MaxFilter)? – ikkuh
@ikkuh我已經嘗試過了,速度要慢很多,因爲迭代次數應該比cv2更大 –
爲什麼不手動實現形態操作? –