用im4java区分两个图像,并给出不同像素的数量



我有两个图像,我想与ImageMagick Java包装器'im4java'进行比较。目前我有这段代码:

boolean compare (String picture1, String picture2) {
    boolean pdfsEqual;
    IMOperation imOperation = new IMOperation();
    imOperation.metric("ae");
    imOperation.addImage();
    imOperation.addImage();
    imOperation.addImage();
    CompareCmd compare = new CompareCmd();
    ArrayListOutputConsumer outputConsumer = new ArrayListOutputConsumer();
    compare.setOutputConsumer(outputConsumer);
    try{
        compare.run(imOperation, pathSample, pathResult, "null:");
        pdfsEqual = true;
    } catch (Exception e){
        pdfsEqual = false;
        ArrayList<String> stringArrayList = outputConsumer.getOutput();
        System.out.println(stringArrayList);
    }
    return pdfsEqual;
}

但是stringArrayList是空的。阅读im4java文档,我发现实际上OutputConsumer将输出存储在数组列表中,但正如已经说过的,没有任何东西。此外,imOperation.metric("ae")计算两个图像之间不同的像素,如果调用是从命令提示符本身完成的,则将其打印到控制台。我不知道如何在我的java代码中使用OutputConsumer获得这个数字的diff像素。

试试

ArrayListErrorConsumer and setErrorConsumer

代替

ArrayListOutputConsumer and setOutputConsumer
我不知道为什么它出现在错误的消费者身上。

相关内容

  • 没有找到相关文章

最新更新