我正在使用Android中的OpenCV庫。我有一個實施PictureCallBack
的課程。如何從openCV android中的Byte []獲取Mat對象?
覆蓋方法onPictureTaken()
是如下面給出的,
@Override
public void onPictureTaken(byte[] data, Camera camera) {
Log.i(TAG, "Saving a bitmap to file");
// The camera preview was automatically stopped. Start it again.
mCamera.startPreview();
mCamera.setPreviewCallback(this);
// Write the image in a file (in jpeg format)
try {
FileOutputStream fos = new FileOutputStream(mPictureFileName);
fos.write(data);
fos.close();
} catch (java.io.IOException e) {
Log.e("PictureDemo", "Exception in photoCallback", e);
}
}
正如我想圖像數據,以在保存和重新加載圖像的代替來在圖像處理進一步使用。
從Byte數組中獲取Mat對象的最有效方法是什麼? 我已經試過這些方法:
不知道圖像發生了什麼。
Mat m=new Mat(); m.put(0,0,data);
轉換爲位圖,則使用
bitmapToMat()
在這種情況下,紅色變成藍色。
我也沒有拯救以備將來使用圖像的任何問題,但是這將導致我,因爲尚未生成的文件然而,當我使用的是先前存儲的圖像異常。
這應該是一個正確 –
可以請你定義的數據?這是什麼? –
'data'是'byte []'數組,其中包含適當格式的一系列像素。它可以從例如。 ''BufferedImage' - 'byte [] data =((DataBufferByte)image.getRaster()。getDataBuffer())。getData();' – lukk