opencv4从avi视频中提取图片/opencv4从摄像头抓取图像_C++版本

2024-08-30 23:18

本文主要是介绍opencv4从avi视频中提取图片/opencv4从摄像头抓取图像_C++版本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.从视频提取图像

2.从摄像头提取图像

3.之前的opencv2老代码


1.从视频提取图像

opencv4使用如下代码读取视频数据:

cv::VideoCapture cap;
cap.open(video_name);cv::Mat frame;
cap >> frame;//读取方式1
cap.read(frame); //读取方式2int video_fps = cap.get(CAP_PROP_FPS); //获取帧率
int width  = cap.get(CAP_PROP_FRAME_WIDTH); 
int height = cap.get(CAP_PROP_FRAME_HEIGHT); 
//cv::VideoCapture::get(CAP_PROP_FPS)获取帧率

另外,makefile中需要链接的库有opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs opencv_video opencv_videoio,最开始没有加libopencv_videoio.so,报错undefined reference to `cv::VideoCapture::VideoCapture()',加上opencv_videoio之后就好了,

2.从摄像头提取图像

opencv4用下面代码从摄像头抓取图像

VideoCapture capture(0);//打开摄像头,获取图像。
while (capture.isOpened())
{Mat frame;capture >> frame;
}

3.之前的opencv2老代码

 opencv4不要用以下代码,opencv4中已经没有IplImage这种了,而且cvCaptureFromAVI也会提示没有声明。

//初始化一个视频文件捕捉器
CvCapture* capture = cvCaptureFromAVI(filename);
//获取视频信息
cvQueryFrame(capture);
frameH    = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT);
frameW    = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH);
fps       = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FPS);
numFrames = (int) cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_COUNT);while(1)
{        IplImage *frame  = cvQueryFrame(capture); //获取一帧图片if(i >=numFrames || i >= NUM_FRAME ) break;//这里判断视频文件是否读完,除了用帧数判断外,也可以直接用下面这行代码判断。// if(!frame) break ;                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 }                                                                                另外,将imlimage转换为Mat
Mat::Mat(const IplImage* img, bool copyData=false);

 

 

参考文献:

opencv3 opencv4读取视频并保存为视频以及图片    https://blog.csdn.net/mao_hui_fei/article/details/79969020

【OpenCV3】视频读写——cv::VideoCapture和cv::VideoWriter详解    https://blog.csdn.net/guduruyu/article/details/68486063

OpenCV读取视频、OpenCV提取视频每一帧、每一帧图片合成新的AVI视频  https://www.cnblogs.com/gune/articles/3374651.html

OPENCV读取AVI视频失败 视频帧提取以及图片合成视频    https://www.cnblogs.com/xubenben/archive/2012/12/01/2797689.html

 

这篇关于opencv4从avi视频中提取图片/opencv4从摄像头抓取图像_C++版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

C#如何调用C++库

《C#如何调用C++库》:本文主要介绍C#如何调用C++库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录方法一:使用P/Invoke1. 导出C++函数2. 定义P/Invoke签名3. 调用C++函数方法二:使用C++/CLI作为桥接1. 创建C++/CL

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

python实现svg图片转换为png和gif

《python实现svg图片转换为png和gif》这篇文章主要为大家详细介绍了python如何实现将svg图片格式转换为png和gif,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录python实现svg图片转换为png和gifpython实现图片格式之间的相互转换延展:基于Py

使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)

《使用Python从PPT文档中提取图片和图片信息(如坐标、宽度和高度等)》PPT是一种高效的信息展示工具,广泛应用于教育、商务和设计等多个领域,PPT文档中常常包含丰富的图片内容,这些图片不仅提升了... 目录一、引言二、环境与工具三、python 提取PPT背景图片3.1 提取幻灯片背景图片3.2 提取

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调