Ich habe eine App. Sie können damit Bilder machen. Wenn ein Bild erfasst wird, wird onPictureTaken()
aufgerufen. In dieser Methode wird es in eine Bitmap umgewandelt und danach auf dem lokalen Speicher gespeichert.Android Mat zu JPEG konvertieren zu invertierten Farben
@Override
public void onPictureTaken(byte[] data, Camera camera) {
MatOfByte raw=new MatOfByte(data);
Mat mat = Imgcodecs.imdecode(raw,Imgcodecs.CV_LOAD_IMAGE_UNCHANGED);
Mat tmp = new Mat();
Imgproc.cvtColor(mat, tmp, Imgproc.COLOR_BGRA2BGR);
Bitmap bmp = Bitmap.createBitmap(mat.cols(), mat.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(mat, bmp);
storeBitMap(bmp);
}
Ich weiß nicht, warum, aber wenn ich das Bild auf meinem Dateimanager öffnen hat es Farben invertiert. Was mache ich falsch?
Haben Sie ohne die cvtColor-Methode versucht? –