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

电子商务网站设计html网站开发实用技术

电子商务网站设计,html网站开发实用技术,wordpress 博客网站是免费的么,成都网站优化页面0.我想做什么? 想做这样一个功能的原型:用网络摄像头做一个尺寸测量的仪器,好吧,就称它为一键测量仪远古版。 原型开发,目的是验证可行性。所以准备不用工业相机和镜头,而是选择便宜的网络摄像头&#xff1…

0.我想做什么?

想做这样一个功能的原型:用网络摄像头做一个尺寸测量的仪器,好吧,就称它为一键测量仪远古版。
原型开发,目的是验证可行性。所以准备不用工业相机和镜头,而是选择便宜的网络摄像头;开发工具使用OpenCV,当然是python版。

1.打开摄像头并预览

本文完成第一步,打开摄像头并预览。
先介绍OpenCV中两个重要的方法: VideoCapture和waitKey。

1.1 VideoCapture

cv2.VideoCapture是OpenCV中处理视频输入的核心类,负责从摄像头、视频文件或网络流中捕获帧数据。

capture = cv2.VideoCapture(source, apiPreference=None)

参数说明:

  1. source
  • 0:默认摄像头(通常为内置摄像头)
  • 1, 2, 3...:USB外接摄像头(按连接顺序递增)
  • "video.mp4":视频文件路径(支持MP4/AVI/MOV等)
  • "rtsp://192.168.1.1:554/stream":RTSP网络视频流
  • "http://ip:port/video":HTTP视频流
  1. apiPreference(可选):
    指定底层视频捕获API,常用选项:
cv2.CAP_ANY# 自动选择(默认)
cv2.CAP_DSHOW# DirectShow(Windows)
cv2.CAP_V4L2# Video4Linux2(Linux)
cv2.CAP_FFMPEG# FFmpeg解码

示例:cv2.VideoCapture(0, cv2.CAP_DSHOW)
还记得在写播放器那篇文章,传入的是视频文件路径。

常用方法

1. 设备状态检查:isOpened()
if not capture.isOpened():
print("错误:无法打开视频源")
exit()
  • 返回值:布尔值
  • 必须调用:在访问帧数据前验证连接状态
2. 帧捕获:read()
ret, frame = capture.read()
  • 返回值:
  • ret:布尔值,帧是否成功读取
  • frame:NumPy数组(三维BGR格式)
  • 特性
  • 阻塞调用:等待下一帧可用
  • 自动解码:处理压缩视频流
3. 属性访问:get(propId)

获取视频流的元数据和设备参数:

width = capture.get(cv2.CAP_PROP_FRAME_WIDTH)
height = capture.get(cv2.CAP_PROP_FRAME_HEIGHT)
fps = capture.get(cv2.CAP_PROP_FPS)

常用属性ID:

属性ID说明值类型
cv2.CAP_PROP_FRAME_WIDTH帧宽度float
cv2.CAP_PROP_FRAME_HEIGHT帧高度float
cv2.CAP_PROP_FPS帧率(视频文件)float
cv2.CAP_PROP_POS_MSEC当前位置(毫秒)float
cv2.CAP_PROP_FRAME_COUNT总帧数(视频文件)float
cv2.CAP_PROP_AUTOFOCUS自动对焦状态0/1
cv2.CAP_PROP_EXPOSURE曝光值float
4. 参数设置:set(propId, value)
# 设置分辨率
capture.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)# 关闭自动对焦
capture.set(cv2.CAP_PROP_AUTOFOCUS, 0)# 设置曝光(-1到1之间)
capture.set(cv2.CAP_PROP_EXPOSURE, -0.5)

重要注意事项

  1. 分辨率设置需设备支持
  2. 设置后需验证是否成功:
if capture.get(cv2.CAP_PROP_FRAME_WIDTH) != 1280:
print("不支持该分辨率")
5. 资源释放:release()
capture.release()
  • 必须调用:释放硬件/网络资源
  • 未释放后果:
  • 摄像头锁定(其他程序无法访问)
  • 内存泄漏
  • 网络连接残留

1.2 waitKey

waitKey()是OpenCV HighGUI库中的工具包,它在OpenCV窗口显示期间负责刷新图像帧并监听键盘事件。

retval = cv2.waitKey([delay])  # → 返回整数 (ASCII 键值)

参数delay

取值行为典型场景
delay > 0等待指定毫秒(如waitKey(30)表示每帧显示30ms)视频播放控制(控制帧率)
delay = 0无限等待按键,阻塞后续代码执行静态图像显示(按任意键继续)
delay < 0默认行为,等价于delay=0(无限等待)需主动按键退出的场景

返回值

有按键触发,返回值就是按键的ASCII码;没有按键触发,就等待超时吧。
简单的ASCII码有:

按键ASCII 值按键ASCII 值
ESC27回车 (Enter)13
空格32方向键↑38
字母 A65字母 a97
数字 048功能键 F1112

2.编写代码

有了上面两个重要的知识点,结合我们的需求,就可以写代码了。
很简单,找到我的USB网络摄像头,用VideoCapture(1)即可。
不断的读取摄像头的帧,read方法即可。
不断的显示出来,用imshow即可。
完整代码很少,如下:

import cv2def camera_video():capture = cv2.VideoCapture(1)  # 0为电脑内置摄像头if not capture.isOpened():returnwhile True:ret, frame = capture.read()cv2.imshow("video", frame)c = cv2.waitKey(10)if c == 27:breakif c == 13:  # 回车,处理图像cv2.imwrite("test.png", frame)camera_video()
cv2.destroyAllWindows()

至此,借着这个机会梳理了VideoCapture和waitKey两个重要接口,坚持、积累,我们下期再见!

http://www.dtcms.com/a/543002.html

相关文章:

  • 旅游电子商务网站策划书大气学校网站
  • 特效很好的网站网站正在建设中 html代码
  • 南京做网站建设的公司哪家好html模板在哪找
  • 浙江城乡建设部网站首页汕头第一网e京网
  • 个人做电影网站服务器放国外安全吗沂水网站设计
  • 沧州做网站价格seo赚钱
  • 河南大学学科建设处网站幼儿活动设计方案模板
  • 黄冈市住房和城乡建设厅网站搜索电影免费观看播放
  • 自己能够做投票网站吗做网站流量
  • 网站开发培训时间诚信网站 互联网建站
  • 自己做的网站外网访问wordpress精简版下载地址
  • 好网站建设因素个人主页网页设计教程
  • 照片做视频的网站WordPress不关站备案插件
  • 关于建设招商网站的通知百度小游戏小程序入口
  • dw做网站一般是多大的尺寸商城网站开发案例
  • 为学校建设网站如何在百度上找网站
  • 制作网站需要的技术杭州桐庐网站建设
  • 评价一个网站的好坏免费高清视频下载
  • 手机做网站视频用华为云建立Wordpress网站
  • 一般网站栏目结构wordpress添加访客统计
  • 做设计用的素材下载网站兖矿东华建设有限公司网站
  • 简述建设电子商务网站步骤成都网站建设四川推来客网络
  • 学年论文网站建设中国建设银行总行官方网站
  • 建设部资质网站做株洲网站需要多少钱
  • 了解一下kernel6.12中cpu_util_cfs_boost函数的逻辑
  • 2018年网站开发技术建设论坛网站
  • 北京红酒网站建设徐汇企业网站建设
  • 网站策划编辑专业的南昌网站建设
  • 南宁网站设计vs网站开发平台
  • php本地建站工具网站优化知识