2012-06-07 64 views
1

我在本地代碼中使用cv :: VideoCapture,我遇到了問題: 在android java代碼中,Videocapture提供了一個Yuv420框架,在本機代碼中它是一個BGR框架。由於我需要一個灰色的圖像,有一個Yuv圖像會更好(我讀了沒有成本轉換Yuv灰色)。cv :: VideoCapture在Android的本機代碼

這裏是我的問題:

使用華碩TF201一個IM中,獲得一個幀約需26ms這是很多......作爲標準的Android相機API爲YUV確實VideoCapture的原生版本進行轉換, ? (這將解釋時間成本)

是否可以使用CV_CAP_PROP_FORMAT更改格式?每當我嘗試mycapture.get(CV_CAP_PROP_FORMAT)我的應用程序崩潰...

編輯:安德烈Kamaev回答了這一個。我必須用搶/檢索方法在第二個加一的說法:

capture.retrieve(frame, CV_CAP_ANDROID_GRAY_FRAME); 

感謝

回答

1

看看OpenCV的樣品爲Android。他們大多是從VideoCapture對象獲取灰度圖像:

capture.retrieve(mGray, Highgui.CV_CAP_ANDROID_GREY_FRAME); 

內部這個灰色的圖像是最有效的方式從YUV420幀「轉換」 - 即使沒有額外的複製。