所以,我想要做的是拍攝一張圖片(比如說 100x100)并在圖片上做一個 5x5 的內核:
kernel = np.ones((5, 5), np.float32)/25
然后為內核的每次迭代輸出一個陣列(如在 cv2.filter2D 中),如:
kernel_vals.append(np.array([[indexOfKernelIteration], [newArrayOfEditedKernelValues]]))
我缺少的是如何讓它遍歷影像并輸出將由以下方式生成的新“影像”的像素值:
img = cv2.filter2D(image, -1, kernel)
對于每個內核,我只想將顯示在新影像上的輸出放入“kernel_vals”陣列中。

^不是影像
附上圖片供視覺參考。
uj5u.com熱心網友回復:
imread回傳一個np.array,所以如果我明白你想做什么,你就有了問題的解決方案。為了完整起見,請參閱下面的代碼。
import cv2
img = cv2.imread("image.png", cv2.IMREAD_GRAYSCALE)
print(type(img))
print(img[:10, :10])
kernel = np.ones((5, 5), np.float32)/25
kernel_vals = cv2.filter2D(img, -1, kernel)
print(kernel_vals[:10, :10])
輸出是(為了可讀性添加了換行符)
<class 'numpy.ndarray'>
[[255 255 255 255 255 255 255 255 255 255]
[255 255 255 255 255 255 255 255 255 255]
[255 255 255 255 255 255 255 255 255 255]
[255 255 255 0 255 255 255 0 255 255]
[255 255 255 0 255 255 255 0 255 255]
[255 255 255 0 255 255 255 0 255 255]
[255 255 255 0 255 255 255 0 255 255]
[255 255 255 0 255 255 255 0 255 255]
[255 255 255 0 255 255 255 0 255 255]
[255 255 255 0 255 255 255 0 255 255]]
[[255 255 255 255 255 255 255 255 255 255]
[255 245 245 245 245 235 245 245 245 235]
[255 235 235 235 235 214 235 235 235 214]
[255 224 224 224 224 194 224 224 224 194]
[255 214 214 214 214 173 214 214 214 173]
[255 204 204 204 204 153 204 204 204 153]
[255 204 204 204 204 153 204 204 204 153]
[255 204 204 204 204 153 204 204 204 153]
[255 204 204 204 204 153 204 204 204 153]
[255 204 204 204 204 153 204 204 204 153]]
現在,由于kernel_vals是np.array,您可以將其展平,將其變成串列,或以您想要的任何其他方式對其進行操作
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/535509.html
標籤:Python打开简历
