2値化

 

Openで扱う画像は,横軸x,縦軸yで,原点は左上,y軸は上から下方向である.

カラー画像は3チャンネル,モノクロ画像は1チャンネル(それぞれ8bit=256階調)

画像は,Mat型変数に読み込む.(名前空間に注意)

モノクロ画像の読み込み

  Mat gray_img = imread("ファイル名.jpg", 0);

(画像のファイル形式により,拡張子はpng, jpg, bmpなどをとる)

カラー画像の読み込み

 Mat color_img = imread("ファイル名.jpg", 1);
 
【画像2値化の例】

#include <pragma230.h>

#include <opencv2/core/core.hpp>

#include <opencv2/imgproc/imgproc.hpp>

#include <opencv2/highgui/highgui.hpp>

using namespace cv;

 

int main(int argc, char *argv[])

{

  Mat gray_img = imread("lena.jpg", 0);//モノクロで読み込む

  if(gray_img.empty()) return -1;

 

  // 固定の閾値処理

  Mat bin_img;

  // 入力画像出力画像閾値maxVal閾値処理手法

  threshold(gray_img, bin_img, 150, 255, THRESH_BINARY);

 

  // 結果画像表示

  namedWindow("Binary", WINDOW_AUTOSIZE);

  imshow("Binary", bin_img);

  waitKey(0);

 

}

 

画素値を閾値処理して,画像の2値化を行う.閾値処理の手法には,これを含めて以下のものがある:

詳細はマニュアル参照のこと.