0

我想把我的彩色图像变成黑白。基本上,我想调用这个 ImageMagick 命令:

convert input.png -threshold 80% output.png

但使用 im4java 库。我知道 IMOperation.threshold() 方法,但我不知道如何使用该方法编写上述命令的等效项。该方法被重载:

threshold() 

threshold(java.lang.Integer red) 

threshold(java.lang.Integer red, java.lang.Integer green) 

threshold(java.lang.Integer red, java.lang.Integer green, java.lang.Integer blue)

threshold(java.lang.Integer red, java.lang.Integer green, java.lang.Integer blue,
  java.lang.Integer opacity) 

threshold(java.lang.Integer red, java.lang.Integer green, java.lang.Integer blue,
  java.lang.Integer opacity, java.lang.Boolean percent) 

我尝试使用不同的值作为参数调用方法的不同重载,但它们都没有产生好的结果(我通常得到全白图像或全黑图像)。

那么“阈值 80%”的 im4java 等价物是什么?

4

2 回答 2

0

以防万一您正在考虑使用其他 Java 框架。使用 Marvin 图像处理框架:

MarvinImage image = MarvinImageIO.loadImage('image.jpg');
blackAndWhite(image, 30);

关于不同 BW 级别的输出示例:

在此处输入图像描述

于 2014-09-04T14:50:35.260 回答
0

显然,我需要使用blackThreshold

op.blackThreshold(80.0, true);

我不确定它是否等同于我指定的 ImageMagick 命令,输出似乎有点不同,但出于所有实际目的,它给了我我需要的东西。

于 2014-09-08T13:49:18.633 回答