!_src.empty() 在函数 'cv::cvtColor' imgproc\src\color.cpp:182

Posted

技术标签:

【中文标题】!_src.empty() 在函数 \'cv::cvtColor\' imgproc\\src\\color.cpp:182【英文标题】:!_src.empty() in function 'cv::cvtColor' imgproc\src\color.cpp:182!_src.empty() 在函数 'cv::cvtColor' imgproc\src\color.cpp:182 【发布时间】:2021-10-06 04:48:05 【问题描述】:

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

【问题讨论】:

这能回答你的问题吗? (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor' 【参考方案1】:

先检查视频采集帧是否检索成功,例如:

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

【讨论】:

这个程序显示“检索帧错误”,所以它没有成功。代码是错误的还是别的什么?例如 Python 的版本,或者我必须在 Python 解释器上添加一些东西。感谢您的宝贵时间! 您的系统上有多少个摄像头?目前您正试图打开索引 1 处的那个,这意味着至少有两个摄像头设置?如果你print(cap.isOpened()),你会得到什么?什么样的相机? 我有一个摄像头,它是 Logitech C920 USB HD Pro 网络摄像头,带有自动对焦和黑色麦克风。我得到 False 与 print(cap.isOpened()) ,所以相机没有打开?我该怎么做才能使用 Python 的 OpenCV 打开相机。 好的,看起来更大的问题:OpenCV 无法打开您的网络摄像头。通常它应该:我过去使用 OpenCV(C++ 和 Python)多次使用过这个精确模型。这是您系统上唯一的网络摄像头吗?你试过cap = cv2.VideoCapture(0) 吗?你在什么操作系统上使用它,你是如何安装 OpenCV Python 的?

以上是关于!_src.empty() 在函数 'cv::cvtColor' imgproc\src\color.cpp:182的主要内容,如果未能解决你的问题,请参考以下文章

opencv图片倾斜度检测

OPEN CV系列二:图像处理

使用 Sobel 边缘检测方法时出错

opencv 分水岭分割图像

自定义收藏视图单元格在点击时消失

OpenCV矩阵与Eigen矩阵相互转换