[解决]open cv error: (-215) scn == 3 || scn == 4 in function cvtColor

提供两种解决方案

跑CV的时候出现这个错误的解决方案:open cv error: (-215) scn == 3 || scn == 4 in function cvtColor

File "cv.py", line 11, in 
    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

第一种:代码重复导致的

先上错误代码

import numpy as np
import cv2

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

这种情况由于imread()函数第二个参数0代表自动把图片转为灰度图了,而“从cv2.cvtColor()”函数再次转变,引起歧义发生错误

修正为

import numpy as np
import cv2

img = cv2.imread('2015-05-27-191152.jpg')#除去第二个参数
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

第二种:路径设置错误导致的

先上错误代码

import cv2
import numpy

img = cv2.imread('C:/photos/img/test.png')
#或者  img = cv2.imread('C://photos/img/test.png')
#又或者img = cv2.imread('C://photos//img//test.png')

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

这种情况是由于路径出错引起报错,必须写在根目录下的局部路径,而不能写全局路径

修正为

import cv2
import numpy

img = cv2.imread('./img/test.png')#从py文件根目录下载入

img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

以上就是我给大家分享的两种解决方案,如果对你有用别忘了给我点赞!

你可能感兴趣的:(综合性问题)