1

AdaptiveThreshold メソッドを使用して RGB 画像を 2 値化しようとしています。私のコードは次のとおりです。

public byte[] filter(byte[] buff, int width, int height) {

    Mat img_rgb = new Mat(width, height, CvType.CV_8UC3);
    Mat img_gray = new Mat(width, height, CvType.CV_8U);
    Mat img_bin = new Mat(width, height, CvType.CV_8U);     

    img_rgb.put(0, 0, buff);        
    Imgproc.cvtColor(img_rgb, img_gray, Imgproc.COLOR_RGB2GRAY);                
    Imgproc.adaptiveThreshold(img_gray, img_bin, 255, 
               Imgproc.ADAPTIVE_THRESH_GAUSSIAN_C, Imgproc.THRESH_BINARY, 5, 2);

    int size = (int) img_bin.total() * img_bin.channels();
    byte[] bin_buff = new byte[size];
    img_bin.get(0, 0, bin_buff);

    return bin_buff;

}

img_binAdaptiveThreshold を適用した後のデータの最大値は255 である必要がありますが、代わりに -1 です。なぜこうなった?私はOpenCVが初めてで、説明が見つかりません。

前もって感謝します。

4

1 に答える 1