適応的2値化 (adaptive thresholding)
【概要】
適応的2値化(adaptive thresholding)は、画像を白と黒の2階調に変換する処理である。画像全体で1つのしきい値を使うのではなく、画素ごとにその周辺領域から個別にしきい値を求める。照明のむらがある画像でも、明るい部分と暗い部分の両方で適切に2値化できる。ここでは OpenCV の C++ プログラムを例に、適応的2値化の使い方を示す。
【関連する外部ページ】
- OpenCV の公式ページ: https://opencv.org
- GitHub の OpenCV のページ: https://github.com/opencv/opencv/releases
【サイト内の関連情報】
- OpenCV について [PDF] , [パワーポイント]
- OpenCV のインストール、画像表示を行う C++ プログラムの実行手順: 別ページ »で説明
- OpenCV と Python を活用した画像・ビデオ処理プログラム: 別ページ »にまとめ
- OpenCV 4 の C/C++ プログラム: 別ページ »にまとめている。
#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`