2013-05-31 40 views
-1

我試圖匹配來自VideoGrabber的一個圖像和磁盤上的另一個圖像。我是this tutorial使用VideoCrabber與OpenCV匹配兩個圖像

問題是它使用函數imread,它接受一個字符串(文件的路徑),與VideGrabber類型不兼容。

如何將VideoGrabber從openframeworks數據類型轉換爲opencv mat類型?

+0

現在的問題很不清楚。 VideoGrabber對象來自哪裏?將VideoGrabber對象轉換爲字符串或圖像意味着什麼?你是說圖像,VideoGrabber對象和字符串是相似的數據類型,你可以將它們從一種類型轉換爲另一種類型? – Alexey

+1

如果我有標籤openframeworks,我不明白這是多麼模棱兩可。這是一個關於工具openframeworks的問題。 VideoGrabber是一個對象,用於從相機捕獲一系列圖像。 http://www.openframeworks.cc/documentation/video/ofVideoGrabber.html –

+1

你的問題非常模糊,沒有多大意義。爲什麼我應該從你寫得不好的問題中猜出一些東西?如果你想將一個圖像從openframeworks數據類型轉換成opencv mat類型,就這麼說吧。再次,我只是猜測,我不是一個心靈讀者,仍然不知道你想達到什麼。您可以編輯自己的問題以使其更清楚。否則你不會在這裏得到很多幫助。 – Alexey

回答

0

不完全確定你與字符串array char[]有什麼困難。字符數組可以像這樣轉換爲字符串:

​​
+0

根據鏈接http://opencv.willowgarage.com/documentation/cpp/reading_and_writing_images_and_video.html字符串是文件名,那麼VideoGrabber將不得不不斷地將圖像保存到磁盤,這似乎不是非常有效。 –

+0

什麼是VideoGrabber對象,它來自哪裏? – Alexey

+0

我想我不明白你的問題。 – Alexey

1

這是你想要的嗎?

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

我不確定用什麼格式打包像素,OpenCV使用BGR交錯通道,你可能必須交換像素。

1

好吧,它似乎是一個關於openframworks的具體問題。你可以使用Kyle的精彩插件ofxCv,它專門用於openframeworks內的opencv庫的替代使用。

inxCv你可以找到諸如toCv的方法,用於將openframeworks類型轉換爲opencv,以及toOf,用於逆過程。看一看,它是有據可查的,有很多的例子,並且設計得很好。