擅长:python、mysql、java
<p>我不是很精通<code>cv2</code>,但我确实看到你的计时技巧有点不太靠谱。在</p>
<p>查看您使用<code>cv2.getTickCount()</code>测量的代码部分:</p>
<pre><code>e1 = cv2.getTickCount() # start
ret, frame = cap.read()
cv2.imshow("cam",frame)
e2 = cv2.getTickCount() # stop
</code></pre>
<p>现在,看看您使用<code>time.time()</code>测量的内容:</p>
^{pr2}$
<p>你显然是在虐待可怜的ol'<code>time</code>在这里计算不同的东西。不幸的是,我无法验证实际的运行时,因为我没有OpenCV,但是,您可能希望将您的<code>time</code>调用与<code>getTickCount()</code>并驾齐驱。简而言之,使用类似的方法:</p>
<pre><code>time1=0
while True:
t_start = time.time() # start
ret, frame = cap.read()
cv2.imshow("cam",frame)
elapsedTime= time.time()-t_start # stop
</code></pre>
<p>重新评估你的结果,很可能<code>getTickCount()</code>会比<code>time</code>得到更准确的结果,因为它的实现方式,我真的不知道。在</p>
<hr/>
<p>至于你应该用哪一种呢?</em><code>cv2</code>的内部定时模块。在</p>
<p>为什么?</em>因为,在不做奇怪的声明的情况下,它是一个经过测试的模块,它可能是由比我们更精通<code>Python</code>的人开发的。你自己掌握时间可能是一件棘手的事情,给小错误留下了很大的空间,尤其是当你刚开始的时候。在</p>
<p>所以,简而言之,使用<code>getTickCount()</code>,它是有原因的。在</p>