2014-12-02 99 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

相关问题