Imagemagick 使用imagemagic-im4java比较两幅图像,并显示与原始图像的差异

Imagemagick 使用imagemagic-im4java比较两幅图像,并显示与原始图像的差异,imagemagick,im4java,Imagemagick,Im4java,我试图使用im4java比较两个jpg图像,并显示它们之间的差异。 我已经成功地做到了这一点,但是差分图像对比度的输出降低了。但是我需要显示输出图像与原始对比度的差异。 我需要在不改变对比度的情况下得到diff的结果 public static void compareImageswithdifferenceimage (String expected, String actual, String difference) throws Exception { try {

我试图使用im4java比较两个jpg图像,并显示它们之间的差异。 我已经成功地做到了这一点,但是差分图像对比度的输出降低了。但是我需要显示输出图像与原始对比度的差异。 我需要在不改变对比度的情况下得到diff的结果

public static void compareImageswithdifferenceimage (String expected, String actual, String difference) throws Exception {
        try {
            String Ipath="jars\\ImageMagick-7.0.10-Q16-HDRI";
            ProcessStarter.setGlobalSearchPath(Ipath);
            CompareCmd compare = new CompareCmd();
            //compare.setErrorConsumer(StandardStream.STDERR);
            IMOperation compareoperation = new IMOperation();
            //compareoperation.addRawArgs("compare");
            compareoperation.addImage(expected);
            compareoperation.addImage(actual);
            
            compareoperation.fuzz(1.0);
            //compareoperation.channel("red");
            compareoperation.metric("AE");
            compareoperation.transparentColor("Black");
           // compareoperation.fill("rgba(255, 215, 0, 0.1");
            //compareoperation.opaque("red");
           compareoperation.addImage(difference);
            try {
                System.out.println ("*******Comparison has Started********");
                compare.run(compareoperation);
                System.out.println ("*******Comparison has Finished*******");
                }
                catch (Exception e) {
                     System.out.println ("##### Comparison has Failed #######");
                     e.printStackTrace();
                }
            }
            catch(Exception exc) {
                System.out.println("Exception while executing compareImageswithdifferenceimage function");
                exc.printStackTrace();
    
        }
    }

注意:我无法在此处发布图像

请将您的实际图像发布到某个免费托管服务,并将URL放在此处,以便我们了解问题所在。您可以尝试java等效的
convert image1.jpg image2.jpg-compose difference-composite-auto-level diff.png
thanks@fmw42我无法发布图像。我粘贴了代码,它正在工作,这里比较方法结果原始图像对比度的变化,并显示差异。但我需要diff图像仅显示图像1或图像2上的差异。我看到下面的页面,差异显示为下划线,但对于我的用例,我需要通过克隆一张真实的图片来显示这些行下的图片。如果你的图片是专有的,你能发布一些代表性的图片来显示你的差异吗?图像是真实场景还是图形?