現在地 >> メニュー >> サンプルコード::OpenCV >> 2値化して読み込む

問題


以下の画像を2値化して読み込む関数を作成せよ。

条件:
 
関数は

IplImage *CV_LOAD_WITH_THRESHOLD
(char *filename,int threshold_type= CV_THRESH_BINARY, double threshold=128,double max_value=255);

と定義。


使い方は、

IplImage *imgA = CV_LOAD_WITH_THRESHOLD("test2.jpg",CV_THRESH_BINARY);
if(imgA ==NULL)
{
cout<<"Can't Load Image ." << endl;
std::exit(0);
}

のようにcvLoadImageと同じ。


画像

答え


#include <cv.h>
#include <highgui.h>
#include <iostream>

using namespace std;

IplImage *CV_LOAD_WITH_THRESHOLD(char *filename,int threshold_type= CV_THRESH_BINARY, double threshold=128,double max_value=255);



int main( int argc, char **argv)
{

IplImage *imgA = CV_LOAD_WITH_THRESHOLD("test2.jpg");
if(imgA ==NULL)
{
cout<<"Can't Load Image ." << endl;
std::exit(0);
}

cvNamedWindow("window",CV_WINDOW_AUTOSIZE);
cvShowImage("window",imgA);

cvWaitKey(0);


cvReleaseImage( &imgA );

cvDestroyWindow("window");

return 0;
}



IplImage *CV_LOAD_WITH_THRESHOLD(char *filename,int threshold_type, double threshold,double max_value)
{

IplImage *img= cvLoadImage( filename, CV_LOAD_IMAGE_GRAYSCALE);
if(img ==NULL)
{
return NULL;
}

cvThreshold(img, img,threshold, max_value,threshold_type);

return (img);


}

メモ


デフォルトは、種類が「CV_THRESH_BINARY」、閾値128,最大値255。
×

この広告は60日間更新がないwikiに表示されております。

目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます