... ... IplImage *imgA = cvLoadImage("test.jpg",CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR); if(imgA == NULL){ std::cerr << "Can't Load Image\n"; return -1; } //ウィンドウ作成と表示 cvNamedWindow("Hello OpenCV",CV_WINDOW_AUTOSIZE); cvShowImage("Hello OpenCV",imgA); ... ...▲「Hello OpenCV」という名前のウィンドウ上に画像を表示する
IplImage *cvLoadImage(const char *filename, int iscolor = 1)
トークン | 定義値 | 内容 |
CV_LOAD_IMAGE_UNCHANGED | -1 | 8ビット |
CV_LOAD_IMAGE_GRAYSCALE | 0 | 8bitのグレイスケール |
CV_LOAD_IMAGE_COLOR | 1 | デフォルト値 |
CV_LOAD_IMAGE_ANYDEPTH | 2 | 任意の深度 |
CV_LOAD_IMAGE_ANYCOLOR | 4 | 任意の色 |
CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLORのような使い方をしてもよい。
#include <iostream> #include <cv.h> #include <highgui.h> //------------- メイン関数 ---------------// int main( int argc, char **argv) { //画像読み込み IplImage *imgA = cvLoadImage("test.jpg",CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR); if(imgA == NULL){ std::cerr << "Can't Load Image\n"; return -1; } //ウィンドウ作成と表示 cvNamedWindow("Hello OpenCV",CV_WINDOW_AUTOSIZE); cvShowImage("Hello OpenCV",imgA); cvWaitKey(0); // 0秒待つ => ずっと入力待ち cvReleaseImage(& imgA); //メモリ解放 cvDestroyWindow("Hello openCV"); //ウィンドウの破棄 return 0; }
int cvSaveImage(const char *filename, const CvArr *image, const int *params = 0)【第1引数】
IplImage *imgA=... ... ... ... cvSaveImage("OutPut.png",imgA); //保存▲第1引数に出力ファイル名、第2引数に保存元を指定する。
IplImage *imgA = cvLoadImage("test2.jpg"); … … int param[]={CV_IMWRITE_JPEG_QUALITY,100}; cvSaveImage("save2.jpg",imgA,param); … …
定数 | 内容 |
CV_IMWRITE_JPEG_QUALITY | jpeg画像の品質を指定。0〜100の間で指定。高いほど高品質。デフォルトは95 |
CV_IMWRITE_PNG_COMPRESSION | png画像の圧縮率を指定。0〜9の間を指定。高いほど高圧縮。デフォルトは3 |
CV_IMWRITE_PXM_BINARY | バイナリ保存をするかどうかのフラグ。0か1を指定。デフォルトは1。つまりバイナリ形式で保存する |