擅长:python、mysql、java
<p>我认为你的代码中有一些东西可能需要注意。</p>
<ol>
<li><p>如<a href="http://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture" rel="nofollow noreferrer">OpenCV documentation</a>for <code>VideoCapture</code>中所述,如果要访问默认网络摄像头,则需要按如下方式初始化类:</p>
<pre><code>cap = cv2.VideoCapture('file')
</code></pre>
<p>如果你想改变相机的分辨率,我建议把这两条<code>set</code>线移到<code>cap</code>初始化的正下方,并且只执行一次,而不是每次读取帧时。还可以使用常量访问正确的属性:</p>
<pre><code>cap = cv2.VideoCapture('file')
cap.set(cv2.CAP_PROP_FRAME_WIDTH, width)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, height)
# Your while loop and the rest of the code...
</code></pre></li>
<li><p>如果试图从文件中读取帧并更改其分辨率,则可能需要使用<code>resize</code>方法,如<a href="http://docs.opencv.org/2.4/modules/imgproc/doc/geometric_transformations.html#resize" rel="nofollow noreferrer">here</a>所述。这需要在循环内完成,就在您读入帧之后。可能是这样的:</p>
<pre><code>resize(ret, ret, Size(800, 600), 0, 0, INTER_CUBIC);
</code></pre></li>
</ol>
<p>我希望这能有帮助。</p>