[英]Convolve an RGB image with a custon neighbout kernel using Python and Numpy
[英]Convolve an image several times using for loop opencv python
下面是對圖像執行 10 次卷積的 python 代碼
import cv2
import numpy as np
from skimage.exposure import rescale_intensity
kernel = np.ones((5,5),np.float32)/25
img = cv2.imread(r"C:/Users/engjb/.spyder-py3/examples/1.jpeg")
opencvOutput1 = cv2.filter2D(img, -1, kernel)
opencvOutput2 = cv2.filter2D(opencvOutput1, -1, kernel)
opencvOutput3 = cv2.filter2D(opencvOutput2, -1, kernel)
opencvOutput4 = cv2.filter2D(opencvOutput3, -1, kernel)
opencvOutput5 = cv2.filter2D(opencvOutput4, -1, kernel)
opencvOutput6 = cv2.filter2D(opencvOutput5, -1, kernel)
opencvOutput7 = cv2.filter2D(opencvOutput6, -1, kernel)
opencvOutput8 = cv2.filter2D(opencvOutput7, -1, kernel)
opencvOutput9 = cv2.filter2D(opencvOutput8, -1, kernel)
opencvOutput10 = cv2.filter2D(opencvOutput9, -1, kernel)
cv2.imshow("res",opencvOutput10)
cv2.waitKey(0)
cv2.destroyAllWindows()
我如何使用一個 for 循環來做到這一點。 (我是 python 新手)我知道這一定很容易,但我就是不能開箱即用
我的概念代碼:
for i in rage(0,11):
output = cv2.filter2D(img, -1, kernel)
但是,這在每次迭代中對同一源圖像執行卷積,而我希望在每次迭代的 output 上執行卷積
img = cv2.imread( ... )
for i in range(10):
print(i)
img = cv2.filter2D(img, -1, kernel)
請注意,這與分配完全不同
output = cv2.filter2D(img, ... )
因為我們希望下一次迭代使用 output。 如果不將 output 作為下一個輸入返回,您將只進行一次卷積。 而且你會做它慢 10 倍,無用地計算相同的結果另外 9 次,丟棄(覆蓋)每次都有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.