Opencv Tips

来源:互联网 发布:淘宝店如何引流 编辑:程序博客网 时间:2024/06/06 07:37

 1. 视频文件读写

最常用的就是cvCaptureFromFile和cvCaptureFromCAM了,还有一个cvCaptureFromAVI, 其实真正有用的是如下两个:

defined in highgui.h

#define cvCaptureFromFile cvCreateFileCapture

#define cvCaptureFromCAM cvCreateCameraCapture

#define cvCaptureFromAVI cvCaptureFromFile

 

抓帧用cvQueryFrame就好了,就是cvGrabFrame和cvRetrieveFrame的组合。另外如果

IplImage* pFrame = cvQueryFrame( capture );

pFrame会在releaseCapture的时候同时释放图像指针,不用再自己释放。

 

注意: cvQueryFrame返回的指针总是指向同一块内存。建议cvQueryFrame后拷贝一份。而且返回的帧需要FLIP后才符合OPENCV的坐标系。 若返回值为NULL,说明到了视频的最后一帧。

 

2. cvGet*D, cvSet*D 参数传递的是行序号和列序号!在以width, height作for loop时,注意对应关系!

 

3. 经常被一些愚蠢的简单错误耽误半天时间,上次是cvShowImage 不能与Windows中的Sleep(miliseconds)一起用。总之似乎cvShowImage一定要配合cvWaitKey()来用才行。

 

这次更绝,cvShowImage怎么都不显示,原来是和cvNamedWindow(win_name, ...)中的win_name不一样!!! cvShowImage显示在一个不存在的窗口上,居然也不检查一下。。。

 

4. video-tracker: A openCV video tracker using Condensation and Kalman filter

http://code.google.com/p/video-tracker/wiki/Overview

 

hmm, saved for furture reading....