python - cv2.error : OpenCV(4. 5.2) 👎 错误: (-5:Bad argument) 在函数 'cvtColor' 中

标签 python numpy opencv screen-resolution pyautogui

这是我的代码,我有一个问题。请问有什么解决办法吗? 我尝试制作一个屏幕录像机:

import numpy as np
import cv2
import pyautogui

codec = cv2.VideoWriter_fourcc(*"XVID")
out = cv2.VideoWriter("Recorded.avi", codec, 60, (1366,768))
cv2.namedWindow("Recording", cv2.WINDOW_NORMAL)
cv2.resizeWindow("Recording", 480, 270)

while True:
     img = pyautogui.screenshot #capturing screenshot
     frame = np.array(img) # converting the image into numpy array representation
     frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # converting the BGR image into RGB image
     out.write(frame) # writing the RBG image to file
     cv2.imshow('Recording', frame) # display screen/frame being recorded
     if cv2.waitKey(1) == ord('q'): # Wait for the user to press 'q' key to stop the recording
          break

 out.release() # closing the video file
 cv2.destroyAllWindows() # destroying the recording window

这里的问题:

回溯(最近一次调用最后一次): 文件“C:\Users\mhmdj\PycharmProjects\learn\main.py”,第 13 行,位于 frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # 将BGR图像转换为RGB图像 cv2.error:OpenCV(4.5.2)👎错误:(-5:错误参数)在函数“cvtColor”中

重载解析失败:

不支持 src 数据类型 = 17 参数“src”的预期 Ptrcv::UMat

最佳答案

您可以尝试使用 cv2.imread() 而不是 np.array() 加载图像,看看是否有效,因为示例使用了此方法:

img = cv2.imread(imagePath)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

关于python - cv2.error : OpenCV(4. 5.2) 👎 错误: (-5:Bad argument) 在函数 'cvtColor' 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68144185/

相关文章:

python - 调试睡衣python代码

python - Python opencv和dicom文件

python - opencv保存过滤图像

c++ - OpenCV 视频编辑?

python - 在 Python 中对字符串进行 URL 编码和解码

python - 如何自动为python中的类添加属性?

python - 测试模块中的所有函数是否有错误

python - 从 numba 创建一个由 njit 装饰的 numpy 数组

python - 为 NN 混洗两个 numpy 数组

opencv - 无法在 OpenCV for python 中获取双击事件