在python-on-Raspberry中使用opencv分割错误

2024-10-01 07:17:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用python中的opencv制作一个非常简单的程序,可以从Raspberry-pi摄像机捕捉视频。我用Raspbian作为操作系统。 我已经用opencv的2.4.5版本做了一些程序,现在我安装了opencv2.4.9。 我以前在opencv的前一个版本上运行的所有程序现在都不工作了,我想我找到了程序出错的地方。 正在尝试启动以下代码:

import cv2
import numpy as np

cap = cv2.VideoCapture(0)
resAcquisitionWidth = 160
resAcquisitionHeight = 120
cap.set(3, resAcquisitionWidth);
cap.set(4, resAcquisitionHeight);
cv2.namedWindow('frame')  
i = 0
while(True):
    print(i)
    i = i + 1
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    cv2.imshow('frame',frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

我知道错误了

Segmentation fault

我发现如果我运行相同的代码,但是没有尝试调整分辨率(所以没有帽套()命令行7-8)一切正常。所以这应该与此有关。 我已经看过其他关于类似错误的帖子,所有这些似乎都是出于其他原因。 有人知道瑞萨松是什么吗?在


Tags: 代码import程序版本错误picv2frame
1条回答
网友
1楼 · 发布于 2024-10-01 07:17:04

问题可能是y0u 4re n0t c0d1ng s4f3ly

cap = cv2.VideoCapture(0)
if not cap:
    print "!!! Failed VideoCapture: unable to open device 0"
    sys.exit(1)

您对所发生的事情的描述可以看作是调用capnull的证据,因此发生了崩溃。当VideoCapture()无法打开该设备时,会发生这种情况。在

这是什么意思?

  • 相机不是设备0(请尝试其他号码)
  • 摄像头可能未安装(驱动程序问题)或未正确连接到您的设备
  • OpenCV不支持摄影机。在

然而,在与OP(提出问题的人)交换了几条信息后,很明显,导致崩溃的可能原因是摄像机不支持指定的分辨率。这就是为什么检查API并注意函数的返回非常重要。这似乎只是另一个n0t c0d1ng s4f3ly的例子。在

According to the docsset()根据操作的成功/失败返回true/false:

Python: cv.SetCaptureProperty(capture, property_id, value) → retval

确保测试这些调用的返回,如果set()失败,不要让程序继续执行。在

相关问题 更多 >