繁体   English   中英

python如何修复OpenCV cvtColor错误?

[英]python How can I fix OpenCV cvtColor error?

这是错误的代码:

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

我不确定如何解决此问题。 你能帮助我吗?

错误消息说的是,您输入到cvtColor(帧)的图像应具有三个(R,G,B)或四个(R,G,B,A)通道,才能将其转换为灰度,而没有。

发生这种情况是因为:

  1. 您的相机根本无法捕获图像
  2. 它捕获灰度图像

首先,注释行

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

cv2.imshow('gray', gray)

并测试您是否可以看到捕获的帧。 您很可能看不到彩色图像,而这可能是问题所在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM