最終更新: mikk_ni3_92 2007年10月05日(金) 09:48:53履歴
現在地 >> メニュー >> サンプルコード::OpenCV >> 2値化とトラックバー
関連: OpenCV::基本編04
関連: OpenCV::基本編04
#include <iostream> #include <string> #include <cv.h> #include <highgui.h> //----------- 各種外部変数 -------------------// const std::string filename("file2.jpg"); IplImage *imgA; IplImage *clone; //---------- プロトタイプ宣言 ------------// void TrackBarFunc(int val); //--------- 各種データ構造 --------------// //トラックバー struct _TrackBarData { char *Name; //名前 int Pos; // スライダの位置 int MaxValue; //上限値 }; _TrackBarData TBData={"TrackBar",127,255}; //------------ ここからメイン関数 --------------// int main( int argc, char **argv) { imgA = cvLoadImage( filename.c_str(), CV_LOAD_IMAGE_GRAYSCALE);//グレイスケールで読み込み if(imgA == NULL){ std::cerr << filename.c_str() <<" : Can't Load Image\n"; return -1; } clone = cvCloneImage(imgA); //クローンを作成 cvThreshold(clone,clone,TBData.Pos,TBData.MaxValue,CV_THRESH_BINARY); cvNamedWindow("OpenCV",CV_WINDOW_AUTOSIZE); cvShowImage("OpenCV",clone); cvCreateTrackbar( TBData.Name, "OpenCV", &TBData.Pos, TBData.MaxValue , TrackBarFunc); cvWaitKey(0); cvReleaseImage(& imgA); cvReleaseImage(& clone); cvDestroyAllWindows(); return 0; } //------------ ここから各種コールバック --------------// void TrackBarFunc(int val) { cvCopy(imgA,clone); cvThreshold(clone,clone,static_cast<double>(val),static_cast<double>(TBData.MaxValue),CV_THRESH_BINARY); cvShowImage("OpenCV",clone); }