|
int val,para_min,para_max,trackbar_value,trackbar_value_index;
//画像データの読込
IplImage* src_img = cvLoadImage("d:\\img\\sample.jpg", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);
if (src_img == NULL){
return 0;
}
//表示ウィンドウの作成
cvNamedWindow("src");
cvNamedWindow("gray");
cvNamedWindow("dst");
// パラメータ値の最小・最大を取得
para_min = 5;
para_max = 12;
trackbar_value = para_min; //トラックバー作成
cv::createTrackbar("パラメータ", "src", &trackbar_value, para_max + 1);
trackbar_value_index = -1; // 初期値
if (trackbar_value_index != -1) {
val = para_min + trackbar_value_index;
}
//処理後画像データの確保
IplImage* dst_img = cvCreateImage(cvGetSize(src_img), src_img->depth, src_img->nChannels);
// グレースケール画像用にメモリを確保
IplImage* gray = cvCreateImage(cvGetSize(src_img), IPL_DEPTH_8U,1);
cvCvtColor(src_img, gray,CV_BGR2GRAY); //カラーからグレーへ変換
// モノクロ用にメモリ確保
IplImage* wb_img = cvCreateImage(cvGetSize(src_img), IPL_DEPTH_8U, 1);
cvAdaptiveThreshold(gray, wb_img, 255, CV_ADAPTIVE_THRESH_GAUSSIAN_C, CV_THRESH_BINARY, 7, 8);
//画像の表示
cvShowImage ("src", src_img);
cvShowImage ("gray", gray);
cvShowImage ("dst", wb_img);
//キー入力待ち
cvWaitKey (0);
//全てのウィンドウの削除
cvDestroyAllWindows();
//画像データの解放
cvReleaseImage(&src_img);
cvReleaseImage(&gray);
cvReleaseImage(&dst_img);
|