適応的2値化 (adaptive thresholding)

概要

適応的2値化(adaptive thresholding)は、画像を白と黒の2階調に変換する処理である。画像全体で1つのしきい値を使うのではなく、画素ごとにその周辺領域から個別にしきい値を求める。照明のむらがある画像でも、明るい部分と暗い部分の両方で適切に2値化できる。ここでは OpenCV の C++ プログラムを例に、適応的2値化の使い方を示す。

関連する外部ページ

サイト内の関連情報

#include 

using namespace cv;

int
main(int argc, char **argv)
{
  const char *imagename = argv[1];
  Mat src_img = imread(imagename);
  if(!src_img.data)
    return -1;
  Mat gray_img;
  cvtColor(src_img, gray_img, COLOR_BGR2GRAY);

  Mat adaptive_img;
  adaptiveThreshold(gray_img, adaptive_img, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY, 7, 8);

  namedWindow("Source", WINDOW_AUTOSIZE);
  namedWindow("Adaptive", WINDOW_AUTOSIZE);
  imshow("Source", src_img);
  imshow("Adaptive", adaptive_img);
  waitKey(0);

  return 0;
}
g++ -o a.out hoge.cc `pkg-config --cflags --libs opencv4`