Python OpenCV-ValueError:要解压缩的值太多(预期为2个)

Python OpenCV-ValueError:要解压缩的值太多(预期为2个),python,opencv,image-processing,rgb,Python,Opencv,Image Processing,Rgb,我是第一次从事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

我是第一次从事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()



Codeimage[0:500,0:500]提供单个数组(图像的一部分),而不是两个可以分配给两个变量的值x,y

但由于
cv
使用numpy数组,因此您可以更改图像这一部分中的像素,而无需使用
x,y
for
-loop

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

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



你需要包括图像和完整的回溯。我打赌它在
x,y=image[0:500,0:500]
。。。不太清楚作者在写这篇文章时的想法,这是没有意义的。总是把完整的错误信息(从单词“Traceback”开始)作为文本(而不是截图)放在问题中(不是评论)。还有其他有用的信息。
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()