嗚嗚喔學習筆記: OPENCV[IplImage* to Mat][Mat to IplImage*]

搜尋此網誌

2013年10月2日 星期三

OPENCV[IplImage* to Mat][Mat to IplImage*]



網路上的文章 常常只有 IplImage   <-> Mat 的型別互換 
但是實際應用 發現需要 IplImage* <-> Mat 的互換
概念大概是先用指標跟位置的關係來寫





程式碼:


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

using namespace cv ;
int main()
{
     //IplImage*  -> 轉換 Mat
     IplImage* img01 = cvLoadImage("apple.jpg",1);//IplImage*讀取圖片
     Mat Mimg01(img01, 0);//丟給MAT

     cvNamedWindow("img01",0);
     imshow("img01", Mimg01);
     
     //*****************************************



     //Mat -> 轉換 IplImage*
     Mat Mimg02 = imread("lena.jpg", 1);//Mat型別讀取圖片
     IplImage* img02 ;                  //先宣告 IplImage* 型別的img02
     img02 = &IplImage(Mimg02);         //Matimg的位置丟給img02

     cvNamedWindow("img02",0);
     cvShowImage("img02",img02);
      


     cvWaitKey(0);

}

結果:
參考:

4 則留言:

  1. 您好,
    在使用vs2015,opencv3.2.0時發生以下問題
    OPENCVTest.exe' (Win32): 已載入 'C:\Windows\System32\opencv_world320d.dll'。找不到或無法開啟 PDB 檔案。
    但資料夾內確定已有這個dll檔
    也確定環境變數路徑設定無誤
    不知道能否得到您的解答
    感謝:)

    回覆刪除
    回覆
    1. Project的Configuration properties->Linker->Input中的Additional Dependencies把"opencv_world320d.lib"加進去試試。

      刪除
  2. 想問一下
    在3.2版本這個轉換還可用嗎
    要怎麼修改呢

    回覆刪除
    回覆
    1. 應該還可以吧 你試過有什麼問題嗎

      刪除