当前位置: 首页 > news >正文

Python 双目摄像机控制(windows + linux)

一、Windows

下载 Download libusb-win32-devel-filter-1.2.6.0.exe (libusb-win32)

安装,在弹出框中选择摄像机usb设备

pip install pyusb

pip install libusb

代码如下,注意如果报错要以管理员权限运行: 

import cv2
import usb.corecam = cv2.VideoCapture(1)dev = usb.core.find(idVendor=0x18e3, idProduct=0x5031)dev.set_configuration()# simulate the SET_CUR sequence
dev.ctrl_transfer(0x21, 0x01, 0x0800, 0x0600, [0x50, 0xff])
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')):ret, frame = cam.read()cv2.imshow("cam_test", frame)k = cv2.waitKey(18) & 0xFFkv = k - ord('0')#  print(kv)#  if press 1,2,3 or 4, change the 3d camera mode# 1右2左3红蓝4双目if kv in [1, 2, 3, 4]:dev.ctrl_transfer(0x21, 0x01, 0x0a00, 0x0600, [kv, 0x00])

 参考文章链接:

hack一个3D摄像头来解闷 - 简书

20220305CHUSEI双目摄像头windows驱动+python+openCV - 简书

二、Linux

需要安装libwebcam库,debian 系可以通过apt安装,centos的安装方法如下

Centos安装libwebcam库运行 uvcdynctrl 命令_Gaoithe的博客-CSDN博客

代码如下:

import timeimport cv2
import numpy as np
import socket
import struct
import subprocess# 打开摄像头,注意,执行命令之前摄像头必须read()一次,否则命令不生效
cap = cv2.VideoCapture(1)
ret, frame = cap.read()camera_device = "/dev/video1"# 1右2左3红蓝4双目
mode = "3"commands = [f'uvcdynctrl -d {camera_device} -S 6:8  "(LE)0x50ff"',f'uvcdynctrl -d {camera_device} -S 6:15 "(LE)0x00f6"',f'uvcdynctrl -d {camera_device} -S 6:8  "(LE)0x2500"',f'uvcdynctrl -d {camera_device} -S 6:8  "(LE)0x5ffe"',f'uvcdynctrl -d {camera_device} -S 6:15 "(LE)0x0003"',f'uvcdynctrl -d {camera_device} -S 6:15 "(LE)0x0002"',f'uvcdynctrl -d {camera_device} -S 6:15 "(LE)0x0012"',f'uvcdynctrl -d {camera_device} -S 6:15 "(LE)0x0004"',f'uvcdynctrl -d {camera_device} -S 6:8  "(LE)0x76c3"',f'uvcdynctrl -d {camera_device} -S 6:10 "(LE)0x0{mode}00"',
]# 执行每个命令
for command in commands:subprocess.run(command, shell=True)while True:# 读取摄像头画面ret, frame = cap.read().....#省略

参考文章:ros学习最便宜的双目Chusei 3d webcam在linux下用 uvcdynctrl命令控制 结贴_qq_278667286的博客-CSDN博客

http://www.lryc.cn/news/108750.html

相关文章:

  • mybatisplus实现自动填充 时间
  • P5732 【深基5.习7】杨辉三角
  • ubuntu调整路由顺序
  • 集成学习算法是什么?如何理解集成学习?
  • npm配置最新淘宝镜像
  • 网络基础1
  • 2023年电赛---运动目标控制与自动追踪系统(E题)发挥题思路
  • 61 # http 数据处理
  • 模版下载和Excel文件导入
  • Datax 数据同步-使用总结(一)
  • 代码随想录算法训练营第九天| 232.用栈实现队列,225.用队列实现栈
  • 求解二次方程
  • 【hive 运维】hive注释/数据支持中文
  • 架构,性能和游戏 《游戏编程模式》学习笔记
  • Spring Bean的生命周期
  • 基于量子同态的安全多方量子求和加密
  • 前端自动化测试:确保质量和稳定性的关键步骤
  • 《Ansible自动化工具篇:Centos操作系统基于ansible工具一键远程离线部署之K8S1.24.12二进制版集群》
  • Java实现十大经典排序算法之快速排序
  • 【0803作业】创建两个线程:其中一个线程拷贝图片的前半部分,另一个线程拷贝后半部分(4种方法)
  • php运算符的短路特性
  • C语言假期作业 DAY 13
  • 以产品经理的角度去讲解原型图---会议OA项目
  • C++ 外部变量和外部函数
  • C# Onnx Paddle模型 OCR识别服务
  • MCUXpresso for VS Code -- 基于VSCode开发RT1176
  • MySQL的使用——【初识MySQL】第二节
  • MySQL最终弹-并发(脏读,不可重复读,幻读及区别),JDBC的使用和安装,最全万字
  • ⌈C++⌋从无到有了解并掌握C++面向对象三大特性——封装、继承、多态
  • Element的el-select下拉框多选添加全选功能