Как обработать изображение с OpenCV OnPictureTaken?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как обработать изображение с OpenCV OnPictureTaken?

Сообщение Anonymous »

Я пытался обработать изображение, как только была сделана фотография, т.е. в обратном вызове OnPictureTaken () . Как это было, насколько я понимаю, я должен преобразовать матрицу байтов в матрицу OpenCV, но все приложение замораживает, когда я пытаюсь это сделать. В основном все, что я сделал, это это: < /p>

@Override
public void onPictureTaken(byte[] bytes, Camera camera) {
Log.w(TAG, "picture taken!");

if (bytes != null) {
Bitmap image = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
Mat matImage = new Mat();

// This is where my app freezes.
Utils.bitmapToMat(image, matImage);

Log.w(TAG, matImage.dump());
}

mCamera.startPreview();
mCamera.setPreviewCallback(this);
}
< /code>

Кто -нибудь знает, почему он замораживает и как его решить? < /p>

Обновление 1: < /strong> Я также попытался сорвать байты (без какого -либо успеха) следующим образом: < /p>

Mat mat = Imgcodecs.imdecode(
new MatOfByte(bytes),
Imgcodecs.CV_LOAD_IMAGE_UNCHANGED
);
< /code>

Обновление 2: < /strong> предположительно, это должно работать, это не для меня, хотя. < /p>

Mat mat = new Mat(1, bytes.length, CvType.CV_8UC3);
mat.put(0, 0, bytes);
< /code>

и не сделал этот вариант: < /p>

Bitmap image = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
Mat mat = new Mat(image.getHeight(), image.getWidth(), CvType.CV_8UC1);
mat.put(0, 0, bytes);
< /code>

Обновление 3: < /strong> Это также не сработало для меня: < /p>

Mat mat = new MatOfByte(bytes);


Подробнее здесь: https://stackoverflow.com/questions/367 ... cturetaken
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»