美文网首页
20220305CHUSEI双目摄像头windows驱动+pyt

20220305CHUSEI双目摄像头windows驱动+pyt

作者: hydro | 来源:发表于2022-03-05 14:55 被阅读0次

    1,环境:

    win7 64位,

    python3.8(anaconda),

    opencv-python(pip install opencv-python)

    pyusb(pip install pyusb)

     libusb(pip install libusb)

    另外在windows下,必须安装 libusb-win32-devel-filter-1.2.6.0.exe。仅 解压缩 libusb-win32-bin-1.2.6.0.zip,并安装压缩包里的2个软件,install-filter-win.exe, inf-wizard.exe 是不可以的。 

    2,硬件,

    插入双目摄像头,到lenovo x220笔记本usb口

    3,程序

    程序使用方法:默认是右摄像头画面,按1是左面图,按2是右面图,按3是红蓝滤光片眼镜立体图,按4是双目立体图。下图是双目立体图。

    # for硬件--CHUSEI 双目摄像头

    # from  https://www.jianshu.com/p/2ce302d588a0, 原程序端口不对cv2.VideoCapture(0)   

    # edit for linux and windows

    import cv2

    import usb.core

    cam=cv2.VideoCapture(700)                              #  不一定是700,需要枚举法,暴力测试端口

    dev = usb.core.find(idVendor=0x18e3, idProduct=0x5031)

    dev.set_configuration()                              ####  去除这个语句也可以使用??

    dev.ctrl_transfer(0x21,0x01,0x0800,0x0600,[0x50,0xff])  # simulate the SET_CUR sequence 

    dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0xf6])

    dev.ctrl_transfer(0x21,0x01,0x0800,0x0600,[0x25,0x00])

    dev.ctrl_transfer(0x21,0x01,0x0800,0x0600,[0x5f,0xfe])

    dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0x03])

    dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0x02])

    dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0x12])

    dev.ctrl_transfer(0x21,0x01,0x0f00,0x0600,[0x00,0x04])

    dev.ctrl_transfer(0x21,0x01,0x0800,0x0600,[0x76,0xc3])

    k=0

    while (k!=ord('q')):                                      #  按下q键后退出

        ret,frame=cam.read()

        cv2.imshow("1-left / 2-right(default) / 3-RB / 4-stero",frame)

        if k == ord('q'):

            break

        k=cv2.waitKey(18)&0xFF                              # 等待18毫秒,并非仅仅是等待键盘输入,是窗口显示的必要语句

        kv=k-ord('0')                           

        #  print(kv)

        #  if press 1,2,3 or 4, change the 3d camera mode

        if kv in [1,2,3,4]:

            dev.ctrl_transfer(0x21,0x01,0x0a00,0x0600,[kv,0x00])

    cam.release()                                    #  如果放在wihle循环中,程序强行从 循环中退出后,不能释放资源。再次打开将发生各种错误。

    cv2.destroyAllWindows()       

    如果上面的程序不能正常运行,可以枚举CHUSEI双目摄像头 USB 端口

    ## xxx 暴力枚举CHUSEI双目摄像头 USB 端口

    ##原文链接:https://blog.csdn.net/hushaoqiqimingxing/article/details/96888775 

    import cv2

    ID = 0

    while(1):

        cam = cv2.VideoCapture(ID)

        # get a frame

        ret, frame = cam.read()

        if ret == False:

            ID += 1

            # print(ID)

            # print("X")

        else:

            print(ID)

            print("V")

            break

    各种debug报错

    error: ......libusb_claim_interface_ ......     usb设备资源被占用,上次运行后未能释放

    error: ......could not claim interface 0  usb......设备资源被占用,上次运行后未能释放

    error: OpenCV(4.5.5) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'  usb     设备资源被占用,上次运行后未能释放 

    error: ....._src.empty() in function 'cv::cvtColor' ......            设备资源被占用,上次运行后未能释放


    参考资料:usb 细节和定义

    https://www.keil.com/pack/doc/mw/USB/html/_u_s_b__endpoints.html

    相关文章

      网友评论

          本文标题:20220305CHUSEI双目摄像头windows驱动+pyt

          本文链接:https://www.haomeiwen.com/subject/jbfbrrtx.html