一、批量有序读取图片

 #include<opencv2/opencv.hpp>

 using namespace cv;

 void main()
{
//批量读取图片(有序)
char filename[];
char winName[];
Mat srcImg;
for (int i = ; i < ; i++)
{
sprintf(filename,"%d.bmp",i);
sprintf(winName,"NO--%d",i);
srcImg=imread(filename);
if (srcImg.empty())
break;
imshow(winName,srcImg);
}
waitKey();
destroyAllWindows();
}

二、视频分解成图片

需要提前在E盘创建pic文件夹

 #include<opencv2/opencv.hpp>

 using namespace cv;

 void main()
{
Mat frame;
char outfile[];
VideoCapture cap("E:\\2.avi");
if (!cap.isOpened())//打开失败
return;
int totalFrame=cap.get(CV_CAP_PROP_FRAME_COUNT);//获取视频总帧数
for (int i = ; i <=totalFrame; i++)
{
cap>>frame;
if (frame.empty())
break;
sprintf(outfile,"E:\\pic\\%d.bmp",i);
imwrite(outfile,frame);
imshow("video",frame);
waitKey();
}
cap.release();
destroyAllWindows();
}

三、图片合成视频

 #include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std; void main()
{
VideoWriter writer("E:\\out.avi",CV_FOURCC('X','V','I','D'),,Size(,),true);//Size要和图片尺寸保持一致
char filename[];
Mat frame;
for (int i = ; i < ; i++)
{
sprintf(filename,"E:\\pic\\%d.bmp",i);
frame=imread(filename);
if(frame.empty()) break;
writer<<frame;
}
cout<<"write end!"<<endl;
destroyAllWindows();
}

opencv学习之路(3)、批量读取图片、视频分解、视频合成的更多相关文章

  1. opencv图像处理时使用stringstream批量读取图片,处理后并保存

    简介: 同文件输入输出流一样,使用stringstream可以批量读取图片,处理后并进行保存.因为C++中头文件 stringstream既可以从string读数据也可向string写数据,利于其这个 ...

  2. opencv图像处理时使用文件输入流ifstream批量读取图片

    简介: 在利用opencv进行图像处理时,通常需要批量读取图片,然后做相应的处理,我们可以用C++文件的输入流来进行图片的读取,这要求我们应该事先,将图片图片名生成txt文件,具体请参见之前的博文[u ...

  3. Opencv学习之路—Opencv下基于HOG特征的KNN算法分类训练

    在计算机视觉研究当中,HOG算法和LBP算法算是基础算法,但是却十分重要.后期很多图像特征提取的算法都是基于HOG和LBP,所以了解和掌握HOG,是学习计算机视觉的前提和基础. HOG算法的原理很多资 ...

  4. opencv学习之路(2)、读取视频,读取摄像头

    一.介绍 视频读取本质上就是读取图像,因为视频是由一帧一帧图像组成的.1秒24帧基本就能流畅的读取视频了. ①读取视频有两种方法: A. VideoCapture cap; cap.open(“1.a ...

  5. opencv批量读取图片

    #include<opencv2/opencv.hpp>using namespace cv;using namespace std;int main(){    int num=4;// ...

  6. opencv用imread( argv[1], 1)读取图片

    显示一幅图:主要是运用功能:imread namedWindow imshowimread:从字面意思我们就可以看懂,用来读取图片的:namedWindow:显然,我们也可以看到这是用来命名窗口名称的 ...

  7. opencv学习之路(32)、角点检测

    一.角点检测的相关概念 二.Harris角点检测——cornerHarris() 参考网址: http://www.cnblogs.com/ronny/p/4009425.html #include ...

  8. opencv学习之路(31)、GrabCut & FloodFill图像分割

    一.GrabCut 1.利用Rect做分割 #include "opencv2/opencv.hpp" using namespace cv; void main() { Mat ...

  9. opencv学习之路(30)、分水岭算法及图像修补

    一.简介 二.分水岭算法 #include "opencv2/opencv.hpp" using namespace cv; void main() { Mat srcImg = ...

随机推荐

  1. Appium基础(三)对象抓取

    一.启动Android模拟器 二.打开App应用,这里以计算器为例子 三.打开uiautomatorviewer.bat 这个文件在Android SDK-->Tool目录下 双击uiautom ...

  2. 纯css瀑布流布局

    由于公司的项目需要才用到瀑布流布局 因为后台返回的json直接循环出来的,所以不能做左右浮动的那种,所以才用到了瀑布流布局 16年之前的瀑布流布局基本都时基于js或者直接用jq插件的,但是随着技术的进 ...

  3. 008-副文本编辑器UEditor

    <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8& ...

  4. 函数max()优化

    函数max的优化 用途:查询最后支付时间-优化max函数 语句: select max(payment_date)from payment 执行计划:

  5. mongodb对数组元素及内嵌文档进行增删改查操作(转)

    from:https://my.oschina.net/132722/blog/168274 比如我有一个user类,他包含一个标签属性,这个标签是一个数组,数组里面的元素是内嵌文档,格式如下: &l ...

  6. msyql 移动某一列数据到某列 & 字段加前缀

    #移动数据 UPDATE dcs_organize_user AS a, dcs_organize_user AS b SET a.SHORTTELNO=b.USERTELNO WHERE a.id= ...

  7. caffe在Linux下生成均值文件

    参照博客:https://blog.csdn.net/sinat_28519535/article/details/78533319

  8. Unity shader学习之阴影

    Unity阴影采用的是 shadow map 的技术,即把摄像机放到光源位置上,看不到的地方就有阴影. 前向渲染中,若一光源开启了阴影,Unity会计算它的阴影映射纹理(shadow map),它其实 ...

  9. UVa437 The Tower of Babylon(巴比伦塔)

    题目 有n(n<=30)种立方体,每种有无穷多个,摞成尽量高的柱子,要求上面的立方体要严格小于下面的立方体. 原题链接 分析 顶面的大小会影响后续的决策,但不能直接用d[a][b]来表示,因为可 ...

  10. 7.线程id,优先级讲解

    1.线程id可以通过Thread对象的getId()方法得到,在线程出了问题,为什么CPU占用这么高的时候,查的时候我们可以在堆栈信息中找到对应线程,然后干掉该线程就好! 2.而线程对象的getNam ...