树莓派4B_OpenCv学习笔记10:调整视频帧大小

2024-06-16 22:12

本文主要是介绍树莓派4B_OpenCv学习笔记10:调整视频帧大小,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今日继续学习树莓派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博客

 

这篇关于树莓派4B_OpenCv学习笔记10:调整视频帧大小的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1067692

相关文章

深入理解C++ 空类大小

《深入理解C++空类大小》本文主要介绍了C++空类大小,规定空类大小为1字节,主要是为了保证对象的唯一性和可区分性,满足数组元素地址连续的要求,下面就来了解一下... 目录1. 保证对象的唯一性和可区分性2. 满足数组元素地址连续的要求3. 与C++的对象模型和内存管理机制相适配查看类对象内存在C++中,规

opencv实现像素统计的示例代码

《opencv实现像素统计的示例代码》本文介绍了OpenCV中统计图像像素信息的常用方法和函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 统计像素值的基本信息2. 统计像素值的直方图3. 统计像素值的总和4. 统计非零像素的数量

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time