#include <opencv2 / opencv.hpp> の#include <iostreamの> する#include <math.h>の 使用 名前空間品種; 使用して 名前空間はstdを、 マットSRC、DST、DST2、gray_src。 CHAR * INPUT_WIN = " 入力画像" 。 CHAR * OUTPUT_WIN = " 二値画像" 。 INT threshold_valueに= 127 。 int型 threshold_max = 255 ; int型 type_value = 2 ; INT type_max = 4 。 int型のmain() { SRC =関数imread(" .//pic//kate.png " ); namedWindow(INPUT_WIN、CV_WINDOW_AUTOSIZE); namedWindow(OUTPUT_WIN、CV_WINDOW_AUTOSIZE); 関数imshow(INPUT_WIN、SRC); ガウスぼかし(SRC、DST、サイズ(3、3)、0、0 ); マットgray_src; cvtColor(DST、gray_src、CV_BGR2GRAY); 関数imshow(OUTPUT_WIN、gray_src)は、 マットは、ygradをxgrad; // 出力画像の深さcv_16sは // 誘導体、Y方向にシークしないX方向ガイド // 。カーネルサイズは、3 / * ソーベル(gray_src、xgrad、CV_16S、1,0 ,. 3)。 ソーベル(gray_src、ygrad、CV_16S、0 ,. 1 ,. 3); * / // マットのres;Scharrオペレーター:会計中心要素重い重量、補強大きいエッジ Scharr(gray_src、xgrad、CV_16S、1、0、3 ); Scharr(gray_src、ygrad、CV_16S、0、1、3 ); // イメージ強化 convertScaleAbs(xgrad、xgrad、1.5、10 ); convertScaleAbs(ygrad、ygrad); 関数imshow(" xgrad " 、xgrad); 関数imshow(" ygrad " 、ygrad); // X、Y方向はミックスに追加 addWeighted(xgrad、0.5、ygrad、0.5、0、RES)。 (imshowを" RES " 、RES)を、 waitKey(0 )。 リターン 0 ; }