//package com.xypower.camera2raw; // //import android.hardware.camera2.params.TonemapCurve; // //import org.opencv.android.OpenCVLoader; //import org.opencv.core.Core; //import org.opencv.core.Mat; //import org.opencv.imgcodecs.Imgcodecs; //import org.opencv.photo.MergeDebevec; //import org.opencv.photo.Photo; //import org.opencv.photo.Tonemap; //import org.opencv.photo.MergeExposures; // //public class HdrMergeExample { // // static { // if (!OpenCVLoader.initDebug()) { // // Handle initialization error // } // } // //// public Mat createHdrImage(Mat[] mats) { //// Mat hdrImage = new Mat(); //// Exposure.createHDRmergeMertens(mats, hdrImage); //// return hdrImage; //// } //// //// public void saveHdrImage(Mat hdrImage, String filePath) { //// Imgcodecs.imwrite(filePath, hdrImage); //// } //// //// // 使用示例 //// public void processHdr() { //// // 假设你有一个Mat数组,包含了多张需要合成HDR的图片 //// Mat[] images = ...; //// //// Mat hdrImage = createHdrImage(images); //// //// // 保存HDR图片到设备存储 //// saveHdrImage(hdrImage, "/path/to/save/hdrImage.jpg"); //// //// // 释放资源 //// hdrImage.release(); //// for (Mat mat : images) { //// mat.release(); //// } //// } // // public Mat sdrToHdr(String inputPaths) { // Mat image = Imgcodecs.imread(inputPaths); // Mat hdr = new Mat(); // MergeDebevec mergeDebevec = Photo.createMergeDebevec(); // mergeDebevec.process(image, hdr, image.ge); // // } // // public Mat mergeHdrImages(Mat[] hdrImages) { // Mat mergedImage = new Mat(); // Core.merge(hdrImages, mergedImage); // return mergedImage; // } // // public Mat toneMap(Mat hdrImage) { // Mat ldrImage = new Mat(); // TonemapCurve.CHANNEL_BLUE(2); // Use the Gamma Tone Mapping // Tonemap.process(hdrImage, ldrImage); // return ldrImage; // } // // public void saveMergedImage(Mat mergedImage, String filePath) { // boolean result = Imgcodecs.imwrite(filePath, mergedImage); // if (result) { // // Image saved successfully // } else { // // Handle save error // } // } // // // Example usage // public void mergeHdrAndSave(String[] inputPaths, String outputPath) { // Mat[] hdrImages = new Mat[inputPaths.length]; // for (int i = 0; i < inputPaths.length; i++) { // hdrImages[i] = Imgcodecs.imread(inputPaths[i]); // } // // Mat mergedImage = mergeHdrImages(hdrImages); // Mat ldrImage = toneMap(mergedImage); // // saveMergedImage(ldrImage, outputPath); // // // Release the images to avoid memory leaks // for (Mat image : hdrImages) { // image.release(); // } // mergedImage.release(); // ldrImage.release(); // } //}