我刚开始在windows(PyCharm IDE)中使用python使用Opencv。 我试着读一个彩色图像。但它以灰度显示。所以我试着把它转换成如下:
import cv2
img = cv2.imread('C:\Ai.jpg', 0)
b,g,r = cv2.split(img)
rgb = cv2.merge([r,g,b])
cv2.imshow('image', img)
cv2.imshow('rgb image',rgb)
cv2.waitKey(0)
cv2.destroyAllWindows()
但是我收到了一个错误:
你能帮帮我吗? 提前谢谢。" b,g,r = cv2.split(img)ValueError:需要多于1个值才能 解压"
答案 0 :(得分:1)
代码的第二行img = cv2.imread('C:\Ai.jpg', 0)
存在问题,根据documentation,0
值对应cv2.IMREAD_GRAYSCALE
,这就是您的原因获得灰度图像。如果要将其加载到RGB颜色空间,可以将其更改为1
,如果要包含与-1
频道一起编码的任何其他频道,则可以将其更改为alpha
并且b,g,r = cv2.split(img)
引发了错误,因为此时img
是只有一个通道的灰度图像,并且无法将1通道图像分割为3个相应的通道。 / p>
您的最终片段可能如下所示:
import cv2
# Reading the image in RGB mode
img = cv2.imread('C:\Ai.jpg', 1)
# No need of following lines:
# b,g,r = cv2.split(img)
# rgb = cv2.merge([r,g,b])
# cv2.imshow('rgb image',rgb)
# Displaying the image
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
答案 1 :(得分:0)
尝试此解决方案
读取图像并将其转换为RGB格式:
如果您有彩色图像并使用OpenCV读取。首先,将其转换为RGB颜色格式
image = cv2.imread(C:\Ai.jpg') #cv2 reading image in BGR
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) #convert it into RGB format
要显示它,我们可以使用cv2.imshow,matplotlib或PIL,如下所示
import matplotlib.pyplot as plt
%matplotlib inline
from PIL import Image
现在使用matplotlib打印:
plt.imshow(image)
使用PIL打印
Image.fromarray(image)