Java Exposure Fusion通过Android上的OpenCV返回蓝色图像

Java Exposure Fusion通过Android上的OpenCV返回蓝色图像,java,android,opencv,hdr,Java,Android,Opencv,Hdr,我正在尝试使用MergeMertens类在Android上实现与OpenCV 3.0.0的曝光融合。 问题是图像返回为蓝色。以下是它的屏幕截图: 我想问题在于文件的RGB/BGR表示。在应用合并之前和之后,我试着从RGB转换到BGR,反之亦然,但无论如何都遇到了颜色问题 如果我使用的是灰度图像,那么一切都正常 以下是我正在使用的代码: public void process(String[] InFiles, float[] InTimes, String OutImage) {

我正在尝试使用MergeMertens类在Android上实现与OpenCV 3.0.0的曝光融合。 问题是图像返回为蓝色。以下是它的屏幕截图:

我想问题在于文件的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);
}
public void进程(字符串[]填充、浮点[]初始化、字符串OutImage){
列表图像=新的ArrayList();
字符串路径=Environment.getExternalStorageDirectory().toString()+“/”+_App.getPackageName()+“/”;
Mat hdrImage=新Mat();
Mat ldrImage=新Mat();
Mat时间=新的MatOfFloat(初始时间);
对于(int i=0;i
你能试试吗:
Core.multiply(hdrImage,新标量(255.0,255.0,255.0),ldrImage)?Miki,谢谢!这就是问题所在!你能试试:
Core.multiply(hdrImage,新标量(255.02555.0),ldrImage)?Miki,谢谢!这就是问题所在!