OpenCV-ValueError:太多值无法解包(预期2)

问题描述 投票:0回答:1

我是初次从事Opencv项目的初学者。我在下面编写了将RGB图像中的白色像素转换为黑色像素的程序,但出现了标题所示的错误。如果您能向我解释发生了什么问题以及如何使它起作用,那就太好了。任何帮助表示赞赏。

import cv2
import numpy as np

image = cv2.imread("MAP.png")
print ("Your image has been opened.")

cv2.imshow("Image", image)

x,y = image [0:500,0:500]

print (image[297,365])

e = image[:,:,0]
r = image[:,:,1]
t = image[:,:,2]


image = [e,r,t]

for i in range (x,y):
    if [e,r,t] == [255,255,255]:
        [e,r,t] = [0,0,0]

print (image[297,365])

cv2.waitKey(0)
cv2.destroyAllWindows()


python opencv image-processing rgb
1个回答
0
投票
但是因为cv使用numpy数组,所以您可以在图像的此部分中更改像素,而无需使用x,yfor -loop

part_of_image = image[0:500,0:500] part_of_image[ np.all(part_of_image == [255,255,255]) ] = [0,0,0]

顺便说一句:您必须记住,cvB,G,R而不是R,G,B的顺序使用颜色。

import cv2 import numpy as np image = cv2.imread("MAP.png") part_of_image = image[0:500,0:500] part_of_image[ np.all(part_of_image == [255,255,255]) ] = [0,0,0] cv2.imshow("Image", image) cv2.waitKey(0) cv2.destroyAllWindows()

© www.soinside.com 2019 - 2024. All rights reserved.