gpt4 book ai didi

python - python opencv 函数 cvGetMat 中无法识别或不支持的数组类型

转载 作者:太空狗 更新时间:2023-10-30 00:36:43 26 4
gpt4 key购买 nike

我正在尝试在 python opencv-2.4.3 中编写代码,它给我一个错误,如下所示

Traceback (most recent call last):
File "/home/OpenCV-2.4.3/cam_try.py", line 6, in <module>
cv2.imshow('video test',im)
error: /home/OpenCV-2.4.3/modules/core/src/array.cpp:2482: error: (-206) Unrecognized or unsupported array type in function cvGetMat

我不明白这是什么意思,有人可以帮我吗?谢谢。

最佳答案

错误消息的相关片段是Unrecognized or unsupported array type in function cvGetMatcvGetMat() 函数将数组转换为 MatMat 是 OpenCV 在 C/C++ 世界中使用的矩阵数据类型(注意:您正在使用的 Python OpenCV 接口(interface)使用 Numpy 数组,然后在幕后将其转换为 Mat 数组)。考虑到这一背景,问题似乎是您传递给 cv2.imshow() 的数组 im 格式不正确。两个想法:

  1. 这可能是由您的网络摄像头的异常行为引起的...在某些摄像头上,有时会返回空帧。在将 im 数组传递给 imshow() 之前,请尝试确保它不为空。

  2. 如果错误发生在每一 帧上,则消除您正在执行的一些处理并在抓取图像后立即调用cv2.imshow()来自网络摄像头的帧。如果这仍然不起作用,那么您就会知道这是您的网络摄像头的问题。否则,逐行添加你的处理,直到你隔离问题。例如,从这个开始:

    while True:
    # Grab frame from webcam
    retVal, image = capture.read(); # note: ignore retVal

    # faces = cascade.detectMultiScale(image, scaleFactor=1.2, minNeighbors=2, minSize=(100,100),flags=cv.CV_HAAR_DO_CANNY_PRUNING);

    # Draw rectangles on image, and then show it
    # for (x,y,w,h) in faces:
    # cv2.rectangle(image, (x,y), (x+w,y+h), 255)
    cv2.imshow("Video", image)

    i += 1;

来源:Related Question: OpenCV C++ Video Capture does not seem to work

关于python - python opencv 函数 cvGetMat 中无法识别或不支持的数组类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14155081/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com