今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi)
本人所用树莓派4B 装载的系统与版本如下:
版本可用命令 (lsb_release -a) 查询:
Opencv 版本是4.5.1:
今日学习一下如何降低视频帧像素
文章提供测试代码讲解,整体代码贴出、测试效果图
目录
调整视频帧大小:
编写代码:
效果展示:
解决motion视频流卡顿问题:
下载motion配置:
更改配置:
网上学习资料贴出:
调整视频帧大小:
编写代码:
# coding=utf-8 import cv2 # 打开摄像头,0通常是默认摄像头的索引 cap = cv2.VideoCapture(0) # 设置目标分辨率 target_resolution = (320, 240) # 创建VideoWriter对象,指定输出视频的文件名、编码器、帧率、帧大小等 fourcc = cv2.VideoWriter_fourcc(*'MJPG') # 使用MJPG编码器 out = cv2.VideoWriter('output_video.avi', fourcc, 20.0, target_resolution) if not cap.isOpened(): print("Error opening video stream or file") else: frame_count = 0 # 初始化帧计数器 while True: # 读取一帧图像 ret, frame = cap.read() # 检查帧是否正确读取 if not ret: print("Can't receive frame (stream end?). Exiting ...") break # 调整帧大小 resized_frame = cv2.resize(frame, target_resolution, interpolation = cv2.INTER_LINEAR) # 写入新的视频文件 out.write(resized_frame) # 显示图像 cv2.imshow('Video Stream_resized_frame', resized_frame) # 等待键盘输入,如果按下'q'则退出循环 key = cv2.waitKey(1) & 0xFF if key == ord('q'): break # 如果按下'c',则保存当前帧 elif key == ord('c'): # 定义保存图片的文件路径和名称,包含递增的编号 # 使用04d来确保编号是四位数,并填充前导零 file_path = f'/home/pi/Pictures/your_image_{frame_count:04d}.jpg' cv2.imwrite(file_path, frame) print(f"Image saved successfully: {file_path}") frame_count += 1 # 递增计数器 # 释放摄像头 cap.release() # 关闭所有OpenCV窗口 cv2.destroyAllWindows()
效果展示:
发现像素确实变小了:
解决motion视频流卡顿问题:
SSH传输视频卡顿取决于网络速度,这里的步骤解决不了SSH远程连接的视频流卡顿问题,只能连接显示器运行Python脚本
下载motion配置:
sudo apt-get update
sudo apt-get install motion
把文件中 "start_motion_daemon=no" 改为yes
sudo nano /etc/default/motion
更改配置:
sudo nano /etc/motion/motion.conf
按下ctrl+w进行搜索:
搜素 # Start in daemon (background) mode and release terminal (default: off)
将off改为on
搜素 # Image width (pixels). Valid range: Camera dependent, default: 320
根据需要更改摄像头宽度高度:
搜素 # Maximum number of frames to be captured per second.
根据需要更改帧率,50左右为佳,之前卡慢是因为帧率为2...
搜素 # Restrict stream connections to localhost only (default: on)
将on改为off
搜素 # Maximum framerate for stream streams (default: 1)
改为100或者其余较大的数
最后按下ctrl+o 然后回车 保存,ctrl+x退出!
网上学习资料贴出:
树莓派4B motion摄像头(解决卡顿)相关配置_树莓派摄像头拍照延时高-CSDN博客
【CV】树莓派+OpenCV-python解决摄像头分辨率及帧率过低无法调整问题_树莓派如何设置摄像头的分辨率-CSDN博客
Python+Opencv读取高帧率USB摄像头问题_树莓派4b摄像头帧率能不能到120帧-CSDN博客