如何修复OpenCV cvtColor错误?

时间:2018-03-21 20:55:58

标签: python opencv

这是错误的代码:

import numpy as np
import cv2

cap = cv2.VideoCapture(0)
cap.set(3,640) 
cap.set(4,480) 
while(True):
    ret, frame = cap.read()
    frame = cv2.flip(frame, -1) 
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2.imshow('frame', frame)
    cv2.imshow('gray', gray)
   k = cv2.waitKey(30) & 0xff
    if k == 27: 
    break

cap.release()
cv2.destroyAllWindows()

这是我得到的错误:

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.error: /home/piwheels/opencv-python/opencv/modules/imgproc/src/color.cpp:10638: error: (-215) scn == 3 || scn == 4 in function cvtColor

我不知道如何解决这个问题。你能救我吗?

1 个答案:

答案 0 :(得分:0)

错误信息说的是你的cvtColor(帧)输入图像应该有三个(R,G,B)或四个(R,G,B,A)通道将它转换为灰度,它确实不

这可能是因为:

  1. 您的相机根本无法捕捉图像
  2. 以灰度拍摄图像
  3. 首先,注释行

    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    

    cv2.imshow('gray', gray)
    

    并测试您是否可以看到捕获的帧。很可能你不会看到彩色图像,并且(图像捕获)可能是问题所在。