出于某种原因,我无法使用OpenCV和Python 3读取摄像机视频数据。
以下是我正在使用的代码:
Traceback (most recent call last):
File "C:\Path\To\File\VideoTest.py", line 10, in <module>
cv2.imshow('frame',frame)
cv2.error: D:\Build\OpenCV\opencv-3.3.1\modules\highgui\src\window.cpp:339: error: (-215) size.width>0 && size.height>0 in function cv::imshow
此代码返回以下错误:
cap = cv2.VideoCapture(0)
计算机运行的是Windows Server 2012 R2,除了我尝试从中读取数据的新网络摄像头外,还有一个永久使用的USB网络摄像头。我尝试将行cap = cv2.VideoCapture(1)
更改为import numpy as np
import cv2
cap = cv2.VideoCapture(0)
print(cap.read())
cap = cv2.VideoCapture(1)
print(cap.read())
并出现相同的错误。
我尝试使用相同的代码和USB网络摄像头在我的笔记本电脑上复制错误,但它运行良好,我能够传输视频。
**编辑**
要进行调试,我在Python shell中逐行运行以下程序。
(False, None)
代码输出prediction_signature = (tf.saved_model.signature_def_utils.build_signature_def(
inputs={signature_constants.PREDICT_INPUTS: prediction_inputs},
outputs={signature_constants.PREDICT_OUTPUTS: prediction_outputs},
method_name=tf.saved_model.signature_constants.PREDICT_METHOD_NAME))
legacy_init_op = tf.group(tf.tables_initializer(), name='legacy_init_op')
#add the sigs to the servable
builder.add_meta_graph_and_variables(
sess, [tag_constants.SERVING],
signature_def_map={
signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY:
prediction_signature
},
# assets_collection=tf.get_collection(tf.GraphKeys.ASSET_FILEPATHS),
legacy_init_op=legacy_init_op)
两次。