繁体   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