打开cv错误:函数cvtC中的(-215)scn==3 | | scn==4

2024-04-19 05:06:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前在Ubuntu 14.04,使用python 2.7和cv2。

当我运行此代码时:

import numpy as np
import cv2

img = cv2.imread('2015-05-27-191152.jpg',0)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

它返回:

 File "face_detection.py", line 11, in <module>
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.error: /home/arthurckl/Desktop/opencv-3.0.0-rc1/modules/imgproc/src/color.cpp:7564: error: (-215) scn == 3 || scn == 4 in function cvtColor

我已经在这里搜索过了,有一个答案说我可能是以错误的方式加载我的照片,因为它应该有3个维度:行、列和深度。

当我打印img.shape时,它只返回两个数字,所以我一定是做错了。但我不知道该怎么装照片。


Tags: 代码inimportnumpyimgubuntuaserror
3条回答

请设置如下

img = cv2.imread('2015-05-27-191152.jpg',1)     // Change Flag As 1 For Color Image
                                                //or O for Gray Image So It image is 
                                                //already gray

用正斜杠给出图像的完整路径。它帮我解决了这个错误。

例如

import numpy as np
import cv2

img = cv2.imread('C:/Python34/images/2015-05-27-191152.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

另外,如果在使用cv2.imread加载图像时在第二个参数中给出0,而不需要使用cvtColor转换图像,则它已经作为灰度图像加载,例如

import numpy as np
import cv2

gray = cv2.imread('C:/Python34/images/2015-05-27-191152.jpg',0)
img = cv2.imread('2015-05-27-191152.jpg',0)

上面的代码行以灰度颜色模型读取图像,因为末尾附加了0。如果你再次尝试将一个已经是灰色的图像转换成灰色的图像,它会显示这个错误。

所以要么使用上面的样式,要么尝试下面提到的代码:

img = cv2.imread('2015-05-27-191152.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

相关问题 更多 >