【问题标题】:opencv: image with grid and HIGHGUI erroropencv:带有网格和 HIGHGUI 错误的图像
【发布时间】:2018-12-01 13:41:05
【问题描述】:

您好,我是 opencv(2.4.7 版)的新手,并在 python 2.7.4 中使用它。我总是收到这个错误

HIGHGUI 错误:V4L/V4L2:VIDIOC_S_CROP

每当我使用命令时

cam = cv2.VideoCapture(cam_id)

即使出现错误,代码也可以正常工作。我正在尝试使用this wireless camera,它显示了一个具有洋红色和绿色网格结构的图像。我的问题是为什么我会收到错误和这个奇怪的图像。该代码在我的系统本身上也提供了其他系统上的漂亮图像。 gstreamer-properties 也有清晰的画面。代码:

from cv2 import cv
import cv2
import sys

def main(): 

cam_id = 0

# parameter
for i, arg in enumerate( sys.argv ):
    if i == 0: continue
    else: cam_id = arg

cam = cv2.VideoCapture(cam_id)

cv2.namedWindow("window", cv.CV_WINDOW_AUTOSIZE)

running = True

while running:
    try:
        flag, img = cam.read()
        if flag:
            cv2.imshow("window", img)
            cv2.waitKey(30)
    except KeyboardInterrupt:
        running = False

cv2.destroyWindow("window")

main()     

【问题讨论】:

    标签: python opencv


    【解决方案1】:

    很抱歉这么晚才更新,我早就想出了问题的解决方案,但忘了在这里回答。它需要在运行代码之前加载一个库。使用以下命令应该可以解决问题。

    对于 32 位系统:

    $ LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l2convert.so python filename.py

    对于 64 位系统:

    $ LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l2convert.so python filename.py

    如果这不起作用,请尝试使用命令找到文件 v4l2convert.so,

    $ locate v4l2convert.so

    作为输出,您将看到不同的路径,现在尝试使用不同路径的 LD_PRELOAD。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-10
      • 2014-04-07
      • 2014-03-31
      • 2013-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多