python - 如何使用python包装器在opencv中正确使用网络摄像头?

标签 python opencv

当前,我有这个工作示例:

import cv

capture = cv.CaptureFromCAM(0)

cv.NamedWindow('image')

while True:

    frame = cv.QueryFrame(capture)
    cv.ShowImage('image', frame)

    k = cv.WaitKey(10)

    if k % 256 == 27:
        break

cv.DestroyWindow('image');

但是,资源没有正确释放。此post建议使用del(capture),但在this中,其他建议使用cvReleaseCapute(但我找不到该函数)。

释放捕获的正确方法是哪种?

这是我的opencv版本:
In [4]: from cv2 import __version__
In [5]: __version__
Out[5]: '$Rev: 4557 $'

最佳答案

使用cv2.VideoCapturecapture.release()(用cv2代替cv)

import cv2, cv

capture = cv2.VideoCapture(0)   

flag, im_array = capture.read()

image = cv.fromarray(im_array)

cv.SaveImage('output.jpeg', image)

capture.release()                   # release it

关于python - 如何使用python包装器在opencv中正确使用网络摄像头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13003382/

相关文章:

ios - 将 cv::Mat 复制到 CMSampleBufferRef

windows - windows导入opencv

python - 如何将文件的所有 git 版本保存到磁盘?

python - 如何使用 Python 将文本添加到多个图像

python - python2 和 python3 中的字典的 __repr__()

python - Pandas 采样

python - 包含多个 JSON 文档的文件中的 JSONDecodeError "Expecting property name enclosed in double quotes"

opencv - 检测图像前景中的三角形网格围栏

c++ - 什么是本地峰值检测器skimage.feature.peak_local_max的C++实现或类似物?

c++ - 为什么 OpenCV Mat 对象在我在嵌套 for 循环中分配它们后不包含预期值?