OpenCV_IplImage 型から Mat への変換

IplImage → System::Drawing::Bitmap^ 変換の過程メモ的な。

cvLoadImage を使う。

第一引数のファイル名の型は const char* 。

第二引数のパラメータは、( 読込:読み込まれる )
CV_LOAD_IMAGE_COLOR         :強制的に3チャンネルカラー画像として読込。
CV_LOAD_IMAGE_GRAYSCALE  :強制的にグレースケール画像として読込。
CV_LOAD_IMAGE_UNCHANGED:そのままの画像として読込。

以下のフォーマットがサポートされている。
BMP, JPEG, PNG, PBM, PPM SR, TIFF など。

※アルファチャンネルは取り除かれる。RGBA 画像は RGB として読み込まれる。

ex )

    cv::Ptr<IplImage> ipImag
        = cvLoadImage(filePath, CV_LOAD_IMAGE_UNCHANGED);
    Mat matImg = cvarrToMat(ipImag);
   
    // Mat → IpImag
    IplImage ipImag = matImg;

他のサイトでは以下のようにも書いてあった。
IplImage* ipImag = cvLoadImage ( ~

 

 

他の方法

 

    cv::Mat mat(ipImag); //コピーコンストラク
    // or
    cv::Mat mat1;
    mat1 = ipImag // ポインタ代入
   
    cvReleaseImage(&ipImag); // 元画像は開放すべき

 

 

Memo

std::string を const char* に変換するには c_str を使用。
    std::string str = "hoge";
    const char*  cStr = str.c_str();
ダングリングポインタ を回避するには std::char_traits<char>::copy も使用する。

 

 

こちらから。
http://www.cellstat.net/cvarrtomat/
http://bicycle.life.coocan.jp/takamints/index.php/doc/opencv/doc/Mat_conversion
http://marycore.jp/prog/cpp/convert-string-to-char/#std%3A%3Astring%20%E2%86%92%20const%20char%2A
http://opencv.jp/opencv-2svn/c/reading_and_writing_images_and_video.html?highlight=cvloadimage

以上。