Exposure Fusion возвращает голубое изображение с OpenCV на Android

Я пытаюсь реализовать Exposure Fusion с OpenCV 3.0.0 на Android, используя класс MergeMertens. Проблема в том, что изображение возвращается синим цветом. Вот скриншот того, как это выглядит: http://take.ms/agYSD

Я полагаю, проблема в представлении файлов в RGB/BGR. Я пытался конвертировать из RGB в BGR и наоборот до и после применения слияния, в любом случае получил проблему с цветом.

Если я использую изображение в градациях серого, то все в порядке.

Вот код, который я использую:

    public void process(String[] InFiles, float[] InTimes, String OutImage) {
        List<Mat> images = new ArrayList<Mat>();
        String path = Environment.getExternalStorageDirectory().toString() + "/" + _App.getPackageName() + "/";
        Mat hdrImage = new Mat();
        Mat ldrImage = new Mat();

        Mat times = new MatOfFloat(InTimes);

        for(int i = 0; i < InFiles.length; i++) {
            Mat m = Imgcodecs.imread(path + InFiles[i]);
            images.add(m);
        }


        Photo.createMergeMertens().process(images,  hdrImage);
        Core.multiply(hdrImage, new Scalar(255.0), ldrImage);
        Imgcodecs.imwrite(path + OutImage, ldrImage);
}

0 ответов

Другие вопросы по тегам