寫OpenCV相關程式,我會使用兩種IDE,一是為了簡單方便用Dev C++,二是為了測試高竿程式用Visual C++。前者我通常用C來寫,後者則以C++來寫,更有時候會把兩者兜在一起。
就如同string 和 char[]互轉這篇文章一樣,時常需要將字串來回轉換,在OpenCV中處理對象為影像,有時也需要來回轉換,於是我想記錄一下:P
比較專業的講法是:將IplImage圖形資料空間(imageData)轉成CvMat空間(data),或是將CvMat矩陣空間轉成IplImage的圖形空間。
程式碼相當簡單,如下:
// IplImage to Mat IplImage *img; cv::Mat mat(img, 0); // Mat to IplImage cv::Mat mat; IplImage *img = IplImage(mat);
需要注意的是,兩者互轉皆為共用記憶體位置!
Comments on: "[OpenCV] IplImage 和 Mat 互轉" (10)
[…] (Transform Image to Gray Level) https://blog.csdn.net/kuweicai/article/details/73414138 [OpenCV] IplImage 和 Mat 互轉 IplImage 和 Mat 互轉 // IplImage to Mat IplImage *img; cv::Mat mat(img, 0); // Mat to IplImage […]
讚讚
想請問一下我打了您這篇轉換的指令
但會出現如下錯誤訊息:
undefined reference to `cv::Mat::operator _IplImage() const’
不知道是不是有什麼函式庫沒include到
Thx
讚讚
您好:
請問一下
IplImage* 與 IplImage 該怎麼轉換
如下程式碼產生錯誤
IplImage* pImg_skin= IplImage(src);
一直試很久都無法解決@@
讚讚
IplImage* pImg_skin ;
pImg_skin = &IplImage(src);
這樣寫@@
讚讚
非常感謝你的回覆,終於可以執行了@@
讚讚
嗚嗚喔,呵呵~我代替他謝謝你!高手出現囉~ 😀
讚讚
請問一下有沒有CvMat 轉Mat的方法??
讚讚
嗨~我查到的語法是這樣:
請你自己試試看囉!
讚讚
你好再請問一下,我想把IplImage從函數回傳回來為什麼傳不回來,舉例如下:
int main()
{
…
IplImage *img = NULL;
load_image(img);
cvNamedWindow(“img");
cvShowImage(“img",img);
…
}
void load_image( IplImage *img )
{
img = cvLoadImage(“圖片路徑");
}
讚讚
剛試了一下,
應該是送過去的指標運作屬於「複製」,
你可以用return把資料回傳~
IplImage * loadImage(IplImage *img){
img = cvLoadImage(“night.jpg");
return img;
}
讚讚