ubuntu22.04中python读取四个摄像头并拼接显示,当按下s字母时弹出对话框输入文件名保存图片
时间: 2024-04-19 12:23:51 浏览: 13
在Ubuntu 22.04中,使用Python读取四个摄像头并拼接显示,并在按下"s"键时弹出一个对话框以输入文件名保存图片,可以使用`tkinter`库来创建对话框。下面是一个示例代码:
```python
import cv2
import tkinter as tk
from tkinter import filedialog
# 摄像头索引号,根据实际情况调整
camera_indexes = [0, 1, 2, 3]
# 创建摄像头对象
cameras = [cv2.VideoCapture(index) for index in camera_indexes]
# 检查摄像头是否打开成功
for camera in cameras:
if not camera.isOpened():
print(f"无法打开摄像头 {camera_indexes[cameras.index(camera)]}")
exit()
# 创建显示窗口
cv2.namedWindow("Camera Feed", cv2.WINDOW_NORMAL)
# 获取摄像头图像并拼接显示
while True:
frames = []
for camera in cameras:
ret, frame = camera.read()
frames.append(frame)
# 拼接图像
combined_frame = cv2.hconcat(frames)
# 显示图像
cv2.imshow("Camera Feed", combined_frame)
# 检测按键
key = cv2.waitKey(1) & 0xFF
if key == ord('s'):
# 弹出对话框获取文件名
root = tk.Tk()
root.withdraw()
file_path = filedialog.asksaveasfilename(defaultextension=".jpg")
root.destroy()
if file_path:
# 保存图像
cv2.imwrite(file_path, combined_frame)
print("图片保存成功!")
elif key == ord('q'):
# 退出循环
break
# 释放摄像头和关闭窗口
for camera in cameras:
camera.release()
cv2.destroyAllWindows()
```
请确保您已安装`python3-tk`软件包,以便使用`tkinter`库。您可以使用`sudo apt-get install python3-tk`命令来安装它。
运行代码后,将显示一个窗口,其中包含四个摄像头的实时图像拼接。按下"s"键时,将弹出一个对话框,您可以在其中选择保存图像的文件名和位置。按下"q"键将退出程序。
希望能对您有所帮助!如有任何疑问,请随时提问。