OpenCV - сжатие JPEG на телефоне / Android не приводит к правильному изображению

0

Я написал приложение для Android, которое использует OpenCV для управления изображениями. Я использую приведенный ниже код для записи объекта cv :: Mat в файл JPG.

cv::imwrite("<sd card path>/img.jpg", <some mat object>);

Я вижу, что изображение сохраняется на моей SD-карте, однако цвета неправильные. Он имеет синеватый цвет по всему изображению.

Кто-нибудь знает, что мне здесь не хватает?

  • 2
    Вероятно, цветовое пространство изменилось на RGB, OpenCV по умолчанию - BGR. Просто используйте cvtColor и попробуйте снова
Теги:
opencv
android-ndk

1 ответ

0
Лучший ответ

Вышеупомянутый комментарий Хариса разрешил эту проблему. Я изменил код, чтобы изменить цветовое пространство, как показано ниже:

cv::Mat mat;

// Initialize mat
cv::cvtColor(mat, mat, CV_BGR2RGB);
cv::imwrite("<sd card path>/img.jpg", mat);

Я смог увидеть, как правильно с этим сохраняется изображение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню