学习OpenCV的学习笔记系列(三)显示图片及视频
来源:互联网 发布:c语言心形图案代码 编辑:程序博客网 时间:2024/04/29 03:12
OpenCV是计算机视觉库,那么处理的对象无非两个:“图片”及“视频”(其实视频也是被解压成单帧图像来处理的,总的来说,还是处理图像)。
那么要想学习OpenCV,第一步必须知道OpenCV是怎么打开“图像”及“视频”文件然后显示的。
如果要想实现这些功能,其实很简单,步骤如下:
1. 新建工程
打开VS2010,新建一个项目,选择“Win32控制台应用程序”(使用控制台可以省掉很多麻烦),取名“HelloOpenCV”,点击“确定”按钮。
下一步
记得勾选“空项目”,然后点击“完成”
工程新建好了,工程有四个文件夹,分别为“外部依赖项”,“头文件”,“源文件”,“资源文件”
好了,工程新建好了,源码文件也新建好了,下面开始写代码了。
2. 编写代码
在“main.cpp”文件中输入以下代码:
//Created by JimmyGong20140903// main.cpp : 实现文件///*OpenCV相关头文件包含*/#include <stdio.h>#include <iostream>#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; using namespace std;//载入图片并显示void LoadImage_Display(){Mat myImage = imread("airplane.jpg");//载入指定图像namedWindow("单幅图像显示");//创建一个名为“单幅图像显示”的窗口imshow("单幅图像显示",myImage);//在指定窗口显示指定图像waitKey(0);}//载入视频并显示void LoadVideo_Display(){Mat myFrame;CvCapture* myCap;namedWindow("视频播放",WINDOW_AUTOSIZE);//创建一个名为“视频播放”的窗口myCap = cvCreateFileCapture("Megamind.avi");myFrame = cvQueryFrame(myCap);while (1){myFrame = cvQueryFrame(myCap);if ( myFrame.empty() )//判断是否帧为空{cout<<"视频文件播放完毕"<<endl;break;}char chKeyCode = cvWaitKey(20);if(chKeyCode == 27){break;}imshow("视频播放",myFrame);}cout<<"按任意键退出!"<<endl;waitKey(0);}int main(){int whichTypeFile = 0;char cstr;bool isGoodInput=false;cout<<"请输入需要显示的文件类型!\n输入“0”为图像文件,输入“1”为视频文件,其他无效!\n"<<endl;//cstr = cin.get();while(!isGoodInput){cin >> cstr;if (!isdigit(cstr)){cout << "请输入“0”或“1”,谢谢!"<<endl;}else{cout << "\n输入成功!" <<endl;isGoodInput = true;}}//whichTypeFile = atoi(cstr);whichTypeFile = int(cstr-'0');//char-->intif (0 == whichTypeFile){LoadImage_Display();} else if (1 == whichTypeFile){LoadVideo_Display();}else{cout << "输入无效!\n" << "请安任意键退出!" << endl;waitKey(0);}return 0;}
3. 放入资源文件
在完成编码后,必须要在工程目录里放入所需要显示的图片及视频文件,否则程序为因为读不到指定的图片及视频文件而出错。
本例拷贝了OpenCV2.4.9源码中的"airplane.jpg"和"Megamind.avi"文件放入工程目录("H:\Practice\HelloOpenCV\HelloOpenCV")中。
4. 调试及测试
在代码及资源文件无误的情况下,开始调试程序,顺利编译通过,运行画面如下:
好了,最简单的图片显示及视频播放功能已经实现了。是不是很简单呢?
下面给出本次演示的源码工程:
HelloOpenCV
OK,先到这里吧!下次文章再见!
20 0
- 学习OpenCV的学习笔记系列(三)显示图片及视频
- OpenCV学习笔记系列(三)
- OpenCV学习笔记之 ( 三 ) MFC显示Mat图片
- 【OpenCV学习笔记】三、图像读取、显示及保存
- opencv学习笔记(1):基于balser相机的视频流显示通过opencv实现
- OpenCV学习笔记01--图像和视频的显示
- OpenCV学习笔记之图像视频显示
- OpenCV学习笔记04--图片和视频的保存
- OpenCV学习笔记(三) 视频播放控制
- OpenCV学习笔记三:视频读取
- opencv视频学习第三课(显示图像)笔记整理
- OpenCV(学习笔记6)-视频读取与显示
- opencv学习笔记(五)-将图片写成视频
- opencv学习笔记(三)-读取视频与摄像头
- opencv学习笔记(三)视频播放控制
- opencv学习系列:视频读取及自定义视频类处理
- Opencv学习笔记_载入显示图片
- OpenCV学习笔记(基于OpenCV 2.4)二:图像的加载显示及简单变换
- HTTP 的keepalive模式
- POJ 2070 Filling Out the Team(水题)
- Oracle 11g Express在Linux下安装配置注意事项
- 数组与指针
- Android学习 图片折叠效果的实现
- 学习OpenCV的学习笔记系列(三)显示图片及视频
- 上传应用程序到App Store 的具体操作流程
- K2 BPM Activity 节点 规则属性
- pthread_cond_timedwait返回EINVAL
- java 集合补充
- TCP/IP详解学习笔记(7)-广播和多播,IGMP协议
- 关于Android SQLite3多线程并发问题,学习笔记。
- ios 自定义Button 不能点击问题
- Yii的URL管理