簡體   English   中英

Cv2 函數 imshow、imdecode 和 waitKey 不起作用

[英]Cv2 functions imshow, imdecode and waitKey don't work

我正在開發一個可以在電腦上顯示手機攝像頭的項目。 對於這個任務,我使用了臭名昭著的 python 模塊 Cv2 和 numpy。 但由於某種原因,Cv2 功能無法正常工作。 歡迎任何形式的幫助。 問候,奧德修斯

我的代碼:

import urllib.request
import numpy as np
# import time
from cv2 import __all__

cv2 = __all__
URL = "http://myip/shot.jpg"
while True:
    img_arr = np.array(bytearray(urllib.request.urlopen(URL).read()), dtype=np.uint8)
    img = cv2.imdecode(img_arr, -1)
    cv2.imshow('IPWebcam', img)
    q = cv2.waitKey(1)
    if q == ord("q"):
        break

cv2.destroyAllWindows()

錯誤:

Traceback (most recent call last):
File "C:\Users\name\PycharmProjects\cam\df.py", line 10, in <module>
     img = cv2.imdecode(img_arr, -1)
AttributeError: 'list' object has no attribute 'imdecode'

您嘗試使用以下命令導入 OpenCV:

from cv2 import __all__
cv2 = __all__

那是完全錯誤的。 __all__只不過是所有已定義函數的所有名稱的列表等等。 如果您想使用該庫,這本身是無用的。

只需這樣做:

import cv2 as cv

然后像這樣使用: cv.imdecode(...)

將您的 img 更改為:

img = cv2.imdecode(np.frombuffer(img_arr, dtype=np.uint8), cv2.IMREAD_COLOR)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM