opencv 调用cv2.imshow()函数时没有显示任何内容

llmtgqce  于 2022-11-15  发布在  其他
关注(0)|答案(3)|浏览(339)

我正在按照openCV python教程中的一个教程来显示摄像头的实时视频。当我运行程序时,摄像头的绿色亮了(就像我在Mac上一样),而且没有任何错误。我的dock中也出现了一个python火箭飞船的东西,但它没有显示任何窗口或任何东西。当我尝试显示一张图片时也会发生这种情况。

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()

    # Our operations on the frame come here
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # Display the resulting frame
    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

这是我正在使用的代码。任何帮助将不胜感激。谢谢

fae0ux8s

fae0ux8s1#

尝试使用cv.named Window command打开一个新窗口:

cv2.namedWindow('frame', cv2.WINDOW_AUTOSIZE)
cv2.imshow('frame',gray)
cv2.WaitKey(1)
cv2.destroyAllWindows()

我希望这对你有用

46qrfjad

46qrfjad2#

我在here中找到了一个解决方案。请尝试在顶部添加下面的行。

import cv2.
cv2.startWindowThread()

在for循环中运行这个

cv2.namedWindow("frame")
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
    break
polkgigr

polkgigr3#

我通过visual studio代码在我的mac上使用conda解释器。改变解释器使它工作。还有一件事你可以尝试改变python解释器的版本,因为我从使用3.10.xx降级到3.9.xx,它对我工作。

相关问题