我正在嘗試創建一個可以實時處理相機幀的Android應用程序。首先,我只想顯示相機看到的灰度版本。我設法從onPreviewFrame
方法的字節數組中提取適當的值。下面僅僅是一個我的代碼片斷:實時處理Android相機幀
byte[] pic;
int pic_size;
Bitmap picframe;
public void onPreviewFrame(byte[] frame, Camera c)
{
pic_size = mCamera.getParameters().getPreviewSize().height * mCamera.getParameters().getPreviewSize().width;
pic = new byte[pic_size];
for(int i = 0; i < pic_size; i++)
{
pic[i] = frame[i];
}
picframe = BitmapFactory.decodeByteArray(pic, 0, pic_size);
}
的byte[]
幀陣列的第一[width*height]
值是亮度(灰度)值。一旦我提取了它們,我如何將它們作爲圖像顯示在屏幕上?它不是一個二維數組,所以如何指定寬度和高度?
這是否發生將YUV圖像轉換爲帶中介JPEG的位圖?幾乎沒有一個可行的實時解決方案 – Rekin 2014-01-03 19:58:15
我強烈建議不要這樣做。 android上的OpenCV會增加項目的複雜性,並且還需要大小約爲10mb的本地庫。 Android確實擁有完成OP所需要的所有功能。 OpenCV是一個偉大的圖書館,但對這種情況矯枉過正。 – protectedmember 2015-09-29 18:37:08