现在的位置: 首页 > 综合 > 正文

Opnecv如何读取图像倒序

2013年08月22日 ⁄ 综合 ⁄ 共 887字 ⁄ 字号 评论关闭

昨晚无意看到stackoverflow上一个人提问,说如何读取图像倒序,我心血来潮,就想了下,写的很搓,很简单的。

思路:

从图像的最后一帧开始读取, 依次向前一帧递减,直当前帧为0.

code :

//  Author   W.Qi //  Data      16/4/2013 //  How to read the image in reverse. #if !defined VK_ESCAPE     #define VK_ESCAPE 0x1B      // Escape character (27) #endif int main() {  VideoCapture cap("video.avi");  cap.set(CV_CAP_PROP_POS_AVI_RATIO,1); % 1表示 the end of frames  int number_of_frames=cap.get(CV_CAP_PROP_POS_FRAMES); % 获得图像的frames  Mat frame;  namedWindow("window");  while(number_of_frames>0)   {          number_of_frames--;    cap.set(CV_CAP_PROP_POS_FRAMES,number_of_frames);    %设置从哪一帧开始读取    cap>>frame;    if( frame.empty() ) {             cerr << "ERROR: Couldn't grab the next camera frame." << endl;             exit(1);         }    imshow("window",frame);   char cc=waitKey(33);   if(cc==VK_ESCAPE)   {    break;   }  }  return 0;

}

   另外,对于视频的编码好像有要求的,我试了试我的红外视频貌似不可以读的,可能因为编码问题, 然后换了opencv自带的视频,可以读了。具体什么原因我也不是很清晰的了。如果大家知道了可以告诉我下, 先谢谢拉~~~~~写的很搓。大家见谅。。。。。
 

 

抱歉!评论已关闭.