Конвертировать cv :: MAT изображение в CVD :: Image

Я хотел преобразовать изображение cv :: MAT в CVD :: Image, но я не знаю, как мне это сделать. Причина в том, что раньше у меня был CVD :: Image, и я преобразовал его в cv :: MAT, чтобы установить область ROI на изображении, а теперь мне нужно изображение в 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

Решение

Прежде всего, используйте cv::Rectне CvRect, Последний является устаревшим типом C из OpenCV версии 1.

Что касается вашего вопроса, вам нужно создать CVD::Image так же, как вы создали cv::Mat — из заданного буфера растровых изображений, где хранятся ваши фактические значения пикселей. Для доступа к растровому буферу cv::Mat использование ptr() метод. Строить CVD::Image из буфера, используйте соответствующий CVD::BasicImage конструктор, а затем конвертировать CVD::BasicImage в CVD::Image с помощью CVD::Image::copy_from метод.

0

Другие решения