を使用して画像を CS_GRAY に変換できることを知っています
public static BufferedImage getGrayBufferedImage(BufferedImage image) {
BufferedImageOp op = new ColorConvertOp(ColorSpace
.getInstance(ColorSpace.CS_GRAY), null);
BufferedImage sourceImgGray = op.filter(image, null);
return sourceImgGray;
}
ただし、これは私のプログラム全体のチョークポイントです。800x600 ピクセルの画像でこれを頻繁に行う必要があり、この操作が完了するまでに平均で約 200 ~ 300 ミリ秒かかります。1 つの for ループを使用して画像データをループし、すぐに設定することで、これをはるかに高速に実行できることがわかっています。一方、上記のコードは、グレースケールの新しい 800x600 BufferedImage を構築します。むしろ、渡した画像を変換したいだけです。
for ループを使用してこれを行う方法を知っている人はいますか?画像が RGB 色空間であるとすれば?