【问题标题】:OpenCV error on Raspberry Pi in fuction cvtColor功能 cvtColor 中 Raspberry Pi 上的 OpenCV 错误
【发布时间】:2015-05-31 21:45:12
【问题描述】:

我正在使用带有全新安装的 Raspbian 和 raspberry pi 摄像头的 Raspberry Pi Model B+。我正在玩一些 OpenCV 代码,特别是用于对象跟踪。我找到了一段代码,它最初是有效的。

这是有问题的代码。

import cv2
import numpy as np

cap = cv2.VideoCapture(0)

while(1):

# Take each frame
_, frame = cap.read()

# Convert BGR to HSV
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

# define range of blue color in HSV
lower_blue = np.array([110, 50, 50], dtype=np.uint8)
upper_blue = np.array([130,255,255], dtype=np.uint8)

# Threshold the HSV image to get only blue colors
mask = cv2.inRange(hsv, lower_blue, upper_blue)

# Bitwise-AND mask and original image
res = cv2.bitwise_and(frame,frame, mask= mask)

cv2.imshow('frame',frame)
cv2.imshow('mask',mask)
cv2.imshow('res',res)
k = cv2.waitKey(5) & 0xFF
if k == 27:
    break

cv2.destroyAllWindows()

但是当我再次尝试运行它时,我遇到了这个错误:

Traceback (most recent call last):
File "/home/pi/Desktop/Alpha/object.py", line 50, in <module>
hsv = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
error: /usr/src/packages/BUILD/opencv-2.4.1+dfsg/modules/imgproc/src/color.cpp:3344: error: (-215) (scn == 3 || scn == 4) && (depth == CV_8U || depth == CV_32F) in function cvtColor

有什么帮助吗?它第一次工作,但后来它就不起作用了。我几乎什么都试过了。

【问题讨论】:

  • while的正文里不应该有什么东西吗?
  • 请在.read 之后测试图像是否为空(在这种情况下,关闭程序或跳过该循环迭代)可能您的相机没有正确“关闭”并且您的程序不允许再次访问它.尝试拔下摄像头
  • 关于一会儿,下面有东西。我想当我在这里复制并粘贴时,它的代码格式不同。
  • 您没有在代码末尾释放捕获。您提供的解决方案不是正确的答案,即使它暂时解决了您的问题。正如 Micka 所说,您需要在每次读取操作后检查 frame 是否为空,如果 frame 不为空,则继续执行后面的代码。希望对您有所帮助。

标签: python opencv raspberry-pi


【解决方案1】:

所以我找到了答案。我所要做的就是在我的树莓派上运行这段代码:

sudo modprobe bcm2835-v4l2

感谢您的所有帮助。

【讨论】:

    猜你喜欢
    • 2014-04-07
    • 2019-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多