2014-12-02 55 views
0

我想將cv :: MAT圖像轉換爲CVD ::圖像,但我不知道該怎麼辦。原因是因爲以前我有一個CVD :: Image,並將其轉換爲cv :: MAT以便在圖像中設置ROI區域,現在,我需要CVD中的圖片。 代碼用於執行它,它的下面:將cv :: MAT圖像轉換爲CVD ::圖片

所有的
CVD::Image<CVD::byte> Imatge_a_modificar; 
Imatge_a_modificar.copy_from(mimFrameBW_workingCopy); //The image is copied from another one 

int x = frameWidth/2; 
int y = frameHeight/2; 

CvRect sROI = cvRect(x,y, frameWidth/2, frameHeight/2); 

    int xroi = sROI.x; 
    int yroi = sROI.y; 

cv::Mat image(frameWidth,frameHeight,CV_8UC4,Imatge_a_modificar.data()); 
cv::Mat imageROI(image, sROI); 
+0

爲什麼你不發表評論或接受我的回答? – Mikhail 2014-12-11 10:29:05

+0

對不起,我沒有時間直到現在!我會看看,但我有語法問題來定義基本圖像。 CVD :: BasicImage Image_2 = new BasicImage(Image1,CVD :: ImageRef(Width,High),Width); 但我有一個錯誤,我不知道哪一個! – RMG 2014-12-11 17:56:06

+0

這裏你不需要'new'。只需在堆棧中創建對象,就像問題中的原始代碼一樣。 – Mikhail 2014-12-12 08:27:16

回答

0

首先,使用cv::Rect,不CvRect。後者是來自OpenCV的版本1

過時的C類關於你的問題,你需要創建CVD::Image創建cv::Mat以同樣的方式 - 從給定的位圖緩存,你的實際像素值存儲。要訪問cv::Mat的位圖緩衝區,請使用ptr() method。要從緩衝區構建CVD::Image,請使用corresponding CVD::BasicImage constructor,然後使用CVD::Image::copy_from methodCVD::BasicImage轉換爲CVD::Image