[learning opencv] 学习笔记一
来源:互联网 发布:数据分析师有前途吗 编辑:程序博客网 时间:2024/06/10 07:27
这篇笔记记录的是 <<learning opencv>>中的前几个样例.
环境为:Win 10 64位 + vs 2015 社区版 + opencv2.4.9
Demo 0. 读入一张图片并显示在屏幕中.
#include "highgui.h"int main(int argc, char ** argv){IplImage * img = cvLoadImage(argv[1]); // 载入图片cvNamedWindow("Demo_0", CV_WINDOW_AUTOSIZE); /*建立一个名为"Demo_0"的窗口并自动设置大小the image will be scaled tofit within the window */cvShowImage("Demo_0", img);// 在"Demo_0"中显示图片cvWaitKey(0);// 等待输入(本示例中按下任意键退出程序cvReleaseImage(&img); // 释放内存cvDestroyWindow("Demo_0"); // 关闭窗口释放内存return 0;}属性要这样配置一下~argv[1] 就是 "D:\Test.jpg"这个文件
运行结果:
Demo_1. 播放avi视频
可以参考这篇博客一些opencv中的数据结构#include "highgui.h"int main(int argc, char ** argv){cvNamedWindow("Demo_1",CV_WINDOW_AUTOSIZE);CvCapture * cp = cvCreateFileCapture(argv[1]); /* 目前只知道这是一个结构体,包含将要载入的avi所有信息.This structure contains all of the information about the AVI file being read,including state information. *//*CvCapture * cp = cvCaptureFromAVI(argv[1]);*/IplImage * fr;while (1) {fr = cvQueryFrame(cp); // 抓取cvcapture中的一帖图像if (!fr) break;cvShowImage("Demo_1", fr);char c = cvWaitKey(33);if (c == 27) break;// ESC 键}cvReleaseCapture(&cp);cvDestroyWindow("Demo_1");return 0;}Demo 2.为demo 1 添加进度条
书上的代码是这样的~效果看起来和常见的进度条区别很大~囧~_~// 书上的代码#include "cv.h"#include "highgui.h"int g_slider_position = 0;CvCapture * g_capture = NULL;void onTrackbarSlide(int pos) {cvSetCaptureProperty(g_capture,CV_CAP_PROP_POS_FRAMES,pos);}int main(int argc, char** argv) {cvNamedWindow("Example3", CV_WINDOW_AUTOSIZE);g_capture = cvCreateFileCapture(argv[1]);int frames = (int)cvGetCaptureProperty(g_capture,CV_CAP_PROP_FRAME_COUNT);if (frames != 0) {cvCreateTrackbar("Position","Example3",&g_slider_position,frames,onTrackbarSlide);}IplImage* frame;while (1) {frame = cvQueryFrame(g_capture);if (!frame) break;cvShowImage("Example2", frame);char c = cvWaitKey(33);if (c == 27) break;}cvReleaseCapture(&g_capture);cvDestroyWindow("Demo_2");return 0;}
效果是这样的~~~如果不手动改变进度条的位置的话,它就一直待在那不动~点了一下它跑到新的位置又不动了~也就是说进度条的位置只有在刚开始和自己改变位置的时候才能和视频同步我自己瞎写了一下~以后再回来改吧#include "cv.h"#include "highgui.h"CvCapture * g_cp = NULL;int g_slider_pos = 0;// 开始位置void onTrackbarSlide(int pos){//std::cout << "此函数执行了" << std::endl;cvSetCaptureProperty(g_cp, CV_CAP_PROP_POS_FRAMES, pos);}int main(int argc, char ** argv){cvNamedWindow("Demo_2", CV_WINDOW_AUTOSIZE);g_cp = cvCreateFileCapture(argv[1]);int totframes = cvGetCaptureProperty(g_cp, CV_CAP_PROP_FRAME_COUNT);if (totframes != 0) {cvCreateTrackbar("pos", "Demo_2", &g_slider_pos,totframes,onTrackbarSlide);}IplImage * img;int cur_pos;while (1) {img = cvQueryFrame(g_cp);if (!img) break;cvShowImage("Demo_2", img);cur_pos = (int)cvGetCaptureProperty(g_cp, CV_CAP_PROP_POS_FRAMES);cvSetTrackbarPos("pos","Demo_2",cur_pos);char c = cvWaitKey(33);if (c == 27) break;}cvReleaseCapture(&g_cp);cvDestroyWindow("Demo_2");return 0;}
0 0
- [learning opencv] 学习笔记一
- learning opencv学习笔记
- Deep Learning 学习笔记一
- machine learning 学习笔记<一>
- learning opencv学习笔记目录及安装
- Machine learning for openCV 学习笔记 day1
- Machine learning for OpenCV 学习笔记 day2
- Mechine learning for OpenCV 学习笔记 day3
- Machine learning for OpenCV 学习笔记 day4
- Machine learning for OpenCV 学习笔记 day5
- Machine learning for OpenCV 学习笔记 day6
- OpenCV学习笔记一
- Opencv学习笔记【一】
- opencv学习笔记一
- Opencv学习笔记(一)
- openCV学习笔记(一)---初始openCV
- OpenCV学习笔记(一)
- opencv学习笔记(一)
- Failed to load JavaHL Library.
- uva 1025 democrazy in danger
- linux ssh
- 使用模板方法模式实现选择题答题 C++
- windows 内存分配尝试(AWE相关API编译器没找到库,所以全部注释)
- [learning opencv] 学习笔记一
- C++怎样把第三方库隐藏在实现下面
- uvalive4987
- Java并发编程:线程间协作的两种方式:wait、notify、notifyAll和Condition
- 【图像处理】图形图像中术语
- RxSwift(一)
- A*算法
- poj1477 box of bricks
- angularjs,ng-include引入html代码片段