0

デバイスから指紋画像データを取得する指紋スキャナーアプリケーションがあります。

今、私は画像を二値化しようとしています。

大津のアルゴリズムを使用して画像を二値化しています。つまり、ピクセルの値は 0 または 255 です。

しきい値は、同じアルゴリズムを使用して 160 前後で計算されます。これが私のコードです:

public static byte[][] binarizeImage(BufferedImage bfImage){
    final int THRESHOLD = 160;
    int height = bfImage.getHeight();
    int width = bfImage.getWidth();
    byte[][] image = new byte[width][height];

    for(int i=0; i<width; i++){
        for(int j=0; j<height; j++){
            Color c = new Color(bfImage.getRGB(i,j));
            int red = c.getRed();
            int green = c.getGreen();
            int blue = c.getBlue();
            if(red<THRESHOLD && green<THRESHOLD && blue<THRESHOLD){
                image[i][j] = 1;
            }else{
                image[i][j] = 0;
            }
        }
    }
    return image;
}

しかし、結果の画像は目的の出力ではありません。

ここに画像の説明を入力

誰でもこれで私を助けてくれますか?

4

1 に答える 1