Jak uzyskać obiekt Mat z Byte [] w openCV android?

Pracuję z biblioteką OpenCV w Androidzie. Mam klasę, która implementujePictureCallBack.

Metoda przesłonięciaonPictureTaken() jest jak podano poniżej,

     @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);
    }
}

Ponieważ chcę, aby dane obrazu były dalej wykorzystywane w przetwarzaniu obrazu zamiast zapisywania i ponownego ładowania obrazu.

Jaki jest najskuteczniejszy sposób uzyskania obiektu Mat z tablicy Byte? Próbowałem już tych podejść:

Nie wiem, co stało się z obrazem.

Mat m=new Mat(); m.put(0,0,data);

Konwersja na mapę bitową, a następnie użyjbitmapToMat() W tym przypadku czerwony kolor staje się niebieski.

Nie mam też problemu z zapisaniem obrazu do wykorzystania w przyszłości, ale prowadzi to do wyjątku, ponieważ plik nie został jeszcze wygenerowany, gdy używam wcześniej zapisanego obrazu.

questionAnswers(4)

yourAnswerToTheQuestion