使用VideoGrabber和OpenCV匹配两个图像

时间:2013-05-31 20:38:00

标签: opencv openframeworks

我正在尝试匹配VideoGrabber中的一个图像和磁盘上的另一个图像。

我正在关注this tutorial

问题是它使用函数imread,它接受​​一个字符串(文件的路径),与VideGrabber类型不兼容。

如何将VideoGrabber从openframeworks数据类型转换为opencv mat类型?

3 个答案:

答案 0 :(得分:1)

这是你想要的吗?

ofVideoGrabber vidGrabber;
...
cv::Mat frame(vidGrabber.getHeight(), vidGrabber.getWidth(), CV_8UC3, vidGrabber.getPixels());

我不确定用于打包像素的格式,OpenCV使用BGR交错通道,您可能需要交换像素。

答案 1 :(得分:1)

好吧,这似乎是关于openframworks的一个具体问题。您可以使用来自Kyle的精彩插件ofxCv,它专门用于在openframeworks中替代使用opencv库。

在ofxCv中,您可以找到toCv等方法,用于将openframeworks类型转换为opencv,以及toOf,用于反向过程。看看,它有很好的文档记录,有很多例子,而且设计得很好。

答案 2 :(得分:0)

不完全确定字符串与array char[]有什么困难。可以将字符数组转换为字符串,如下所示:

char myarray[ ] = "my_file_name";
string str(myarray);