私はAndroidでOpenCVライブラリを使用しています。私はPictureCallBack
を実装するクラスを持っています。以下に示すようにIは画像データが画像を保存し、リロードの代わりに画像処理でさらに使用したいよう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);
}
}
あります。
Matオブジェクトをバイト配列から取得する最も効率的な方法は何ですか? は、私はすでに、これらのアプローチを試してみました:
は、画像に何が起こったのか分かりません。この場合
bitmapToMat()
を使用するビットマップに変換Mat m=new Mat(); m.put(0,0,data);
、赤い色が青になります。
私はまた、将来の使用のために画像を保存するには問題ありませんが、私が以前に保存された画像を使用していたときに、ファイルは、まだ生成されていないので、これは私に例外をリードしています。
これが正しいもの –
する必要がありますが、データを定義してくださいできますか?それは何ですか? –
'data'は、一連のピクセルを適切な形式で含む' byte [] '配列です。それは、例えば、 – lukk