Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 无法在opencv python中读取彩色图像_Python 2.7_Opencv - Fatal编程技术网

Python 2.7 无法在opencv python中读取彩色图像

Python 2.7 无法在opencv python中读取彩色图像,python-2.7,opencv,Python 2.7,Opencv,我刚刚开始在windows中使用python(PyCharm IDE)使用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.destr

我刚刚开始在windows中使用python(PyCharm IDE)使用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。分割(img)值错误:需要超过1个值才能 “打开包装”

你们能帮帮我吗?
提前感谢。

根据,
0
值对应于
cv2.imread\u灰度,这就是您获得灰度图像的原因。如果要将其加载到RGB颜色空间中,则可能需要将其更改为
1
;如果要包括任何其他通道,如与图像一起编码的
alpha
通道,则可能需要将其更改为
-1

b,g,r=cv2。分割(img)
产生错误,因为此时的
img
是只有一个通道的灰度图像,不可能将一个通道图像分割为三个相应的通道

您的最后一个代码段可能如下所示:

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()
试试这个解决方案

读取图像并将其转换为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)

谢谢你的解释!我现在明白了!