[英]Saving Array as Image in cv2
我正在嘗試使用 python cv2 修改圖像。 因此,我將圖像導入 python 並將其表示為數組。 然后我將圖像的紅色通道更改為全0,然后將更改后的數組保存到圖像中。 在這里我發現了問題,當我加載更改后的圖像時,更改后的圖像的紅色通道不全為 0(但它必須全為 0 對嗎?因為我已經做了這個過程)。 我感到很困惑。 我做錯什么了嗎?
這是代碼:
im = cv2.imread("original.jpg",1)
[h,w,c] = im.shape
//print(im[:,:,0])
img2 = im.copy()
for i in range(0,h):
for j in range(0,w):
img2[i,j,0] = 0
cv2.imwrite("changed.jpg", img2)
這是原始的紅色通道
[[ 41 17 40 ... 61 82 104]
[ 48 31 27 ... 76 51 38]
[ 61 58 29 ... 57 53 109]
...
[123 140 147 ... 95 88 74]
[133 160 155 ... 85 83 89]
[ 96 78 84 ... 43 47 38]]
這是更改后的紅色通道(它必須全為 0,但不是)
[[ 9 0 10 ... 0 9 30]
[10 0 0 ... 7 0 0]
[15 14 0 ... 0 0 19]
...
[ 0 1 5 ... 13 4 0]
[ 9 31 21 ... 13 12 15]
[ 0 0 0 ... 0 0 0]]
我在代碼中看到了幾個需要解決的問題:
#
開頭,而不是附加代碼段中的//
。修復問題后,您的代碼可能如下所示:
im = cv2.imread("original.jpg",1)
im[:,:,2] = 0
cv2.imwrite("changed.jpg", im)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.