Sunday, May 31, 2009

im4javaで画像のヒストグラムを出力する

im4javaで画像のヒストグラムを出力するには、以下のコードを実行します。


import java.util.*;
import org.im4java.core.*;
import org.im4java.process.*;

// im4java-0.97.0-bin.tar.bz2を解凍してim4java-0.97.0.jarはclasspathに通す
public class Im4java20
{
public static void main(String args[])
throws Exception
{
try
{
// ConvertCmd convert = new ConvertCmd();
ImageCommand convert = new WindowsConvertCmd();

IMOperation op = new IMOperation();
op.addImage("sf.jpg");
op.addImage("histogram:sample1086a.png");
convert.run(op);

op = new IMOperation();
op.addImage("sf.jpg");
op.channel("b");
op.addImage("histogram:sample1086b.png");
convert.run(op);
}
catch(CommandException cex)
{
System.out.println(cex.getErrorText());
cex.printStackTrace();
}
}

// im4java 0.97
static class WindowsConvertCmd extends ImageCommand
{
public WindowsConvertCmd()
{
setCommand("cmd");
setCommand("/c");
setCommand("convert");
/* another way
setCommand("C:\\Program Files\\ImageMagick-6.4.9-Q16\\convert");
*/
}
}
}


元画像(sf.jpg)


出力画像1(sample1086a.png):RGBヒストグラム
im4javaで出力したヒストグラム

出力画像2(sample1086b.png):青チャンネルのヒストグラム
im4javaで出力した青チャンネルのヒストグラム

関連情報
im4javaのまとめ

ImageMagickで、画像のヒストグラムを生成する (convertコマンドでの同様の処理)

1 comment:

aaa said...

これをim4java-0.97.0-bin.tar.bz2を使わずに
普通にjavaで動かせれるようなソースをお願いいたします