【问题标题】:raspberry pi opencv video window dosen't show properly树莓派 opencv 视频窗口无法正确显示
【发布时间】:2019-01-20 12:08:47
【问题描述】:
from picamera.array import PiRGBArray
from picamera import PiCamera
import time
import cv2
import imutils

camera = PiCamera()
camera.resolution = (640, 480)
camera.framerate = 32
rawCapture = PiRGBArray(camera, size=(640,480))


time.sleep(0.1)

for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
    image = frame.array
    #cv2.imshow("frame", image)

    gray = cv2.cvtColor(frame.array, cv2.COLOR_BGR2GRAY)[1]
    #cv2.imshow("Gray", gray)

    thresh = cv2.threshold(gray, 225, 255, cv2.THRESH_BINARY)[1]
    #cv2.imshow("Thresh", thresh)

    cnts = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    cnts = cnts[0] if imutils.is_cv2() else cnts[1]
    output = thresh.copy()

    cv2.imshow("frame", image)
    cv2.imshow("Gray", gray)
    cv2.imshow("Thresh", thresh)

    key = cv2.waitKey(1) & 0xFF

    rawCapture.truncate(0)

    if key == ord("q"):
        break

大家好,我在运行 raspbian 的树莓派 3 b+ 上的 python 3.5.3 上运行 opencv 3.3.0,当我在使用 opencv 的虚拟环境中运行上述代码时,它可以编译并运行,但不能按预期工作。框架窗口显示并更新正常,但灰色和 thresh 框架打开,然后宽度接近 0。我附上了它的照片如果有人有任何见解会很棒。desktop

【问题讨论】:

  • 你可以试试waitKey(100)吗?

标签: python opencv video raspberry-pi video-processing


【解决方案1】:

尝试改变

gray = cv2.cvtColor(frame.array, cv2.COLOR_BGR2GRAY)[1]

简单

gray = cv2.cvtColor(frame.array, cv2.COLOR_BGR2GRAY)

【讨论】:

  • 谢谢你解决了一个问题。那 [1] 有什么作用?
  • 图像以数组的形式加载(Python 的情况下为列表)。当您在数组数组前面写[1] 时,仅使用第一个数组而不是整个系统。因此,它弄乱了你的代码。您可以通过键入print(gray) 来打印结果,无论有没有[1],然后自己查看结果。如果你喜欢我的回答并且如果它有帮助,请接受这个作为最佳答案,这样人们就可以知道这个问题已经得到了回答,它也可以帮助其他人:)
猜你喜欢
  • 1970-01-01
  • 2019-01-09
  • 2013-05-20
  • 2017-06-11
  • 1970-01-01
  • 1970-01-01
  • 2015-10-14
  • 1970-01-01
  • 2017-06-07
相关资源
最近更新 更多