首页 > 解决方案 > !_src.empty() 在函数 'cv::cvtColor' imgproc\src\color.cpp:182

问题描述

PyCharm 中的相机错误。在这种情况下我能做什么?

import cv2
import numpy as np
frameWidth = 640
frameHeight = 480
cap = cv2.VideoCapture(1)
cap.set(3, frameWidth)
cap.set(4, frameHeight)
cap.set(10,150)
while True:
    success, img = cap.read()
    cv2.imshow("Result", img)
    if cv2.waitKey(1) and 0xFF == ord('q'):
     break
C:\Users\user\PycharmProjects\OpenCvPython\venv\Scripts\python.exe C:/Users/user/PycharmProjects/OpenCvPython/chapter7.py
[ WARN:0] global C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-ep71p_ws\opencv\modules\videoio\src\cap_msmf.cpp (438) `anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback
Traceback (most recent call last):
  File "C:/Users/user/PycharmProjects/OpenCvPython/chapter7.py", line 11, in <module>
    cv2.imshow("Result", img)
cv2.error: OpenCV(4.5.3) C:\Users\runneradmin\AppData\Local\Temp\pip-req-build-ep71p_ws\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'


Process finished with exit code 1

标签: pythonimageopencvpycharmcamera

解决方案


先检查视频捕获帧是否成功检索,例如:

import cv2
import numpy as np
frameWidth = 640
frameHeight = 480
cap = cv2.VideoCapture(1)
cap.set(3, frameWidth)
cap.set(4, frameHeight)
cap.set(10,150)
while True:
    success, img = cap.read()

    if not success:
      print('error retrieving frame')
      continue

    cv2.imshow("Result", img)
    if cv2.waitKey(1) and 0xFF == ord('q'):
     break

推荐阅读