python 调试USB摄像头记录

您所在的位置:网站首页 usb摄像头录像机 python 调试USB摄像头记录

python 调试USB摄像头记录

2023-06-26 19:40| 来源: 网络整理| 查看: 265

公司一款有一款模拟摄像头,一直以来以手持CVBS显示器查看图像,非常不便,于是网上找来CVBS转USB模组,连接起来实现在电脑端查看图像。因摄像头是定焦镜头,检测人员需对调整的焦距进行确认,人眼判别误差较大,既然数据可以通过USB在电脑端显示于是有了使用PYTHON+OPENCV实现图像质量简单的判别。

调试环境使用spyder3.10,在IDE内下载opencv库,调用摄像头,对每帧图像进行灰度处理及计算方差,把方差值显示在图像上。

import cv2 #设置摄像头的ID data = int(input("please enter the number 0 or 1 or 2: ")) capture=cv2.VideoCapture(data) while true: ret, frame = capture.read() img2gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) #转化为灰度图 imageVar = cv2.Laplacian(img2gray, cv2.CV_64F).var() #计算出方差,并最后返回。 cv2.putText(frame, 'IQA: %.2f' %imageVar, (20, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (55,255,155), 2) #在图像上设置文本格式; print('IQA: %.2f' %imageVar) #显示方差值 #设置显示分辨率 此分辨率是显示窗口的分辨率,不是摄像头输出的分辨率 frame = cv2.resize(frame, (1024, 768)) cv2.imshow("video",frame) if cv2.waitKey(100) == 27: #按ESC退出 break video_demo() cv2.destroyAllWindows()

以上为主要代码,测试后可行,需要在其他同事电脑上使用,需封装为exe 文件。

使用pyintaller

pip install pyinstaller

使用cmd 打开到编写的python程序文件夹,因需要在控制台输入参数,代码如下: 

pyinstaller -F temp.py #带控制台

打包成功,在python程序所在文件夹内生成2个文件夹和一个.spec文件,其中把dist内是生成的exe文件,复制到python程序同一目录下,运行闪退,网上查找方法,

使用cmd 运行exe文件,提示CV2引用错误,原来是电脑端没有安装OPENCV,以为spyder安装就行。

电脑下载安装opencv,安装,重新打包,运行exe ,功能正常。

把文件打包发给测试组同事测试,反馈缺少相关dll文件,同事电脑是win7,网上查找原因,python3.10不支持win7,只有python3.7及以前版本可以。

重新下载python3.7安装,设置环境变量

把..\python37及..\python37\scripts添加进用户变量 path,同时上移至最上(因系统已有python310)

 在系统变量同样操作;

在spyder 工具,偏好 ,python解释器设置为python3.7 

运行程序,可行,重新打包,发给同事,可以运行,因同事电脑是台式电脑,无摄像头,输入摄像头编号0,不行,1,不行,2~9都不行。。

查询资料,也没有搞懂摄像头ID是如何生成的,在设备管理器内查询的摄像头VID与PID和摄像头ID也对不上。

网上继续找资料,在本站 python获取所有可用摄像头(id + 名称)可用于opencv_python获取摄像头列表_babybin的博客-CSDN博客 一文中,博主封装了一个库,可以用来查询摄像头ID,在PyCameraList · PyPI 查询,pip 安装,无法安装,下载   PyCameraList-1.0.0-cp36-cp36m-win_amd64.whl   放入到..\python37\scripts文件夹内,

在cmd 打开到..\python37\scripts文件夹,运行以下代码

pip install PyCameraList-1.0.0-cp36-cp36m-win_amd64.whl 

又出错了,python3.7安装不了,总不能再安装个3.6环境吧。。。

注:2023年6.15日在以上连接下载,当时只有3.6版本,6.16日编写此博文,再访问时,已经有了3.6-3.10的所有本版本,上传日期正是2023.6.15日。。。

在网上继续找资料,在本站博主 提供的文章找到解决办法。python获取所有可用摄像头的库--pycameralist安装教程,解决 *** is not a supported wheel on this platform_python 查看摄像头列表_younger14的博客-CSDN博客

首先在本环境下安装cython:pip install cython 2.然后去下载pycameralist的源码,这里给出 pycameralist源码-gitee 3.找到下载下来的zip源码,名称应该是【py-camera-list-project-master.zip】 4.pip install D:\PyLib\py-camera-list-project-master.zip 5.等待安装完成

根据方法在第4步又有问题了,网上查找,原来是缺少VSC++相关文件,下载vs_BuildTools,安装时选择C++,完成后,再次运行安装上述库,终于成功。

运行代码测试,自己电脑可行,在同事电脑测试,又有问题

继续网上查资料, 在本站博主的博文中,找到解决方式

opencv打开摄像头报错:CvCapture_MSMF::initStream Failed to set mediaType (stream 0, (640x480 @ 30) 解决办法及相关内容_cvcapture_msmf::initstream failed to select stream_计算机刘老师的博客-CSDN博客d

在cv2.VideoCapture 函数加入cv2.CAP_DSHOW参数:

capture=cv2.VideoCapture(data,cv2.CAP_DSHOW)

然后重新打包,在同事电脑测试,终于可以看到图像。

 

 

 CVBS信号转USB摄像头模块,因摄像头是12V供电,JLC打样了一个5V转12V的小电路板背上去;



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3