Python——opencv的图像显示、视频采集、图像处理

这篇博客介绍了如何使用Python的OpenCV库进行图像显示、视频采集和二值化处理。示例代码演示了如何打开摄像头,但存在无法实时刷新的局限,用户可以通过ESC键关闭或空格键保存截图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

操作界面:
在这里插入图片描述
打开摄像头
这里插入图片描述](https://img-blog.csdnimg.cn/20181208172457497.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM4MjMzNjk2,size_16,color_FFFFFF,t_70)
二值化处理
在这里插入图片描述
此demo的缺点是只能通过单步打开关闭摄像头,而不能进行实时的刷新处理。ESC关闭,space保存截图图片。

代码如下:

import cv2
import tkinter as tk
from tkinter import filedialog#文件控件
from PIL import Image, ImageDraw, ImageFont,ImageTk#图像控件
import threading#多线程
#---------------创建窗口
window = tk.Tk()
window.title('摄像头')
sw = window.winfo_screenwidth()#获取屏幕宽
sh = window.winfo_screenheight()#获取屏幕高
wx = 500
wh = 400
window.geometry("%dx%d+%d+%d" %(wx,wh,(sw-wx)/2,(s
### 使用PythonOpenCV进行双目相机图像抓取 为了实现双目摄像头的图像采集,可以利用`cv2.VideoCapture()`函数分别初始化两个视频流对象来处理不同的摄像设备。通常情况下,计算机上的第一个可用摄像头会被分配索引0,第二个则可能是1或其他数值,这取决于系统的配置情况[^1]。 下面是一个简单的例子展示如何设置并读取来自一对立体视觉传感器的数据: ```python import cv2 # 初始化左、右两路摄像头捕捉对象 cap_left = cv2.VideoCapture(0) # 假设左侧相机连接至默认位置即index=0处 cap_right = cv2.VideoCapture(1) # 右侧相机可能位于index=1的位置上 while True: ret_left, frame_left = cap_left.read() # 获取左边帧数据 ret_right, frame_right = cap_right.read() # 获取右边帧数据 if not (ret_left and ret_right): break # 如果任一侧未能成功获取,则退出循环 # 显示左右两侧捕获的画面窗口 cv2.imshow('Left Camera', frame_left) cv2.imshow('Right Camera', frame_right) key = cv2.waitKey(1) if key & 0xFF == ord('q'): # 当按下'q'键时停止录制 break # 清理资源 cap_left.release() cap_right.release() cv2.destroyAllWindows() ``` 这段程序会持续不断地从每台相连的摄像头上提取最新的画面直到用户主动终止操作(通过按键盘上的‘Q’)。值得注意的是,在实际应用过程中还需要考虑诸如同步问题以及校准参数等因素以确保所获得视差图的有效性和准确性[^2]。 对于更复杂的场景下想要达到更好的效果,建议先完成对这两部装置之间相对位姿关系的学习过程——也就是所谓的“标定”,从而能够更加精确地计算物体距离等信息[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值