最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python實現(xiàn)獲取所有可用攝像頭(id+名稱)可用于opencv

 更新時間:2026年01月21日 14:24:30   作者:babybin  
本文介紹了PyCameraListProject,這是一個用于解決OpenCV庫中VideoCapture調(diào)用攝像頭時無法直接通過名稱選擇攝像頭問題的庫,它支持Python?3.6至3.10的64位Windows版本,并提供測試代碼

緣起

python下使用opencv庫使用VideoCapture調(diào)用攝像頭時,只能傳入枚舉號,而不知道相應(yīng)的相機名稱。電腦有多個攝像頭時,選擇攝像頭就會很不方便;電腦只有一個攝像頭 時有時攝像頭的ID也不一定是0。

我們希望能夠獲取所有CV可以使用的攝像頭信號源。

這個庫的目的就是為解決這個問題而生。當(dāng)前python3.6, 3.7, 3.8, 3.9, 3.10的64位win版本可以直接pip安裝。

pip install pycameralist

有需要源碼的也可以從我的gitee項目拉取。PyCameraListProject

測試代碼1

#!/usr/bin/env python
# coding=utf-8

from PyCameraList.camera_device import test_list_cameras, list_video_devices, list_audio_devices

cameras = list_video_devices()
print(dict(cameras))
#return: {0: 'Intel(R) RealSense(TM) 3D Camera (Front F200) RGB', 1: 'NewTek NDI Video', 2: 'Intel(R) RealSense(TM) 3D Camera Virtual Driver', 3: 'Intel(R) RealSense(TM) 3D Camera (Front F200) Depth', 4: 'OBS-Camera', 5: 'OBS-Camera2', 6: 'OBS-Camera3', 7: 'OBS-Camera4', 8: 'OBS Virtual Camera'}
 
audios = list_audio_devices()
print(dict(audios))
#return:  {0: '麥克風(fēng)陣列 (Creative VF0800)', 1: 'OBS-Audio', 2: '線路 (NewTek NDI Audio)'}

測試代碼2

#!/usr/bin/env python
# coding=utf-8

from PyCameraList.camera_device import test_list_cameras, list_video_devices, list_audio_devices
import cv2 as cv


def show_in_cv(camera_id):
    cap = cv.VideoCapture(camera_id, cv.CAP_DSHOW)
    cap.set(cv.CAP_PROP_FRAME_WIDTH, 960)
    cap.set(cv.CAP_PROP_FRAME_HEIGHT, 540)
    cap.set(cv.CAP_PROP_FPS, 30)
    i = 0
    while True:
        suc, frame = cap.read()
        if not suc:
            break
        cv.imshow("preview camera", frame)
        cv.waitKey(30)
        i += 1
    return


def main():
    cameras = list_video_devices()
    print(f'\n\n===========================\ncamera_list: {cameras}')
    idx = 1
    camera_id = cameras[idx][0]
    camera_name = cameras[idx][1]
    print(f'\n\n===========================\npreview camera: camera_id={camera_id} camera_name={camera_name}')
    show_in_cv(camera_id)


if __name__ == '__main__':
    main()

 效果:

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

会宁县| 大兴区| 溆浦县| 淄博市| 松原市| 获嘉县| 措勤县| 五原县| 平定县| 汤原县| 溧水县| 潞城市| 永胜县| 霍州市| 富宁县| 融水| 昌图县| 繁昌县| 桦甸市| 甘泉县| 河西区| 昭觉县| 松潘县| 蕉岭县| 揭西县| 阳曲县| 介休市| 南宫市| 楚雄市| 五河县| 元谋县| 衡阳县| 陵水| 纳雍县| 广宗县| 鹿邑县| 延长县| 蛟河市| 甘南县| 桃江县| 巴中市|