我正在尝试使用 MergeMertens 类在 Android 上使用 OpenCV 3.0.0 实现 Exposure Fusion。问题是图像以蓝色返回。这是它的截图: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);
}