OpenCV和iPhone

时间:2010-05-13 14:20:59

标签: opencv

我正在编写一个应用程序,用于从iPhone上的一堆图像创建电影文件。我正在使用OpenCv。我下载了ARM的OpenCv静态库(iPhone的本机指令架构),并且生成的库很好。链接到它们库没有问题。

作为第一步,我尝试使用一个图像创建一个.avi文件,看它是否有效。但是cvCreateVideoWriter总是返回一个NULL值。我做了一些搜索,我相信它是由于编解码器不存在。我在iPhone模拟器上尝试这个。这就是我的所作所为:

- (void)viewDidLoad {
 [super viewDidLoad];
 UIImage *anImage = [UIImage imageNamed:@"1.jpg"];
 IplImage *img_color = [self CreateIplImageFromUIImage:anImage];
 //The image gets created just fine

 CvVideoWriter *writer = 
   cvCreateVideoWriter("out.avi",CV_FOURCC('P','I','M','1'),
                       25,cvSize(320,480),1);
 //writer is always null

 int result = cvWriteFrame(writer, img_color);
 NSLog(@"\n%d",result);
 //hence this is also 0 all the time
 cvReleaseVideoWriter(&writer);
}

我不确定第二个参数。什么样的编解码器或它究竟做了什么...... 我是一个n00B。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

在* nix版本中,OpenCV使用ffmpeg来编码视频文件,因此您需要确保使用ffmpeg支持构建静态库。第二个参数CV_FOURCC('P','I','M','1')是描述您请求的视频格式/编解码器的FOURCC代码,在本例中是MPEG1编解码器。查看fourcc.org以获取完整列表(并非所有列表都在ffmpeg中工作)。