Java Exposure Fusion通过Android上的OpenCV返回蓝色图像
我正在尝试使用MergeMertens类在Android上实现与OpenCV 3.0.0的曝光融合。 问题是图像返回为蓝色。以下是它的屏幕截图: 我想问题在于文件的RGB/BGR表示。在应用合并之前和之后,我试着从RGB转换到BGR,反之亦然,但无论如何都遇到了颜色问题 如果我使用的是灰度图像,那么一切都正常 以下是我正在使用的代码: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) {
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,谢谢!这就是问题所在!