2015-04-24 5 views
-1

Я использую функцию CvMat и cvResize в открывшемся CV, чтобы добавить два изображения разного размера.Изменение размера изображения с использованием CvMat In Open CV

CvMat *ob1 =cvLoadImageM("C:\\Users\\Public\\Pictures\\Sample Pictures\\Koala.jpg"); 
CvMat *ob2 = cvLoadImageM("C:\\Users\\tgupta\\Downloads\\len_std256.jpg"); 
cvResize(ob1,ob2,CV_INTER_LINEAR); 
CvMat *dst=NULL; 
dst = cvCreateMat(ob1->rows,ob1->cols,CV_8UC3); 
cvSetZero(dst); 
cvAdd(ob2,ob1,dst); 
cvShowImage("cv_src",dst); 

Но в этом, когда я использую cvResize функцию значения ob2 не изменяет размеры в ob1 и моя программа аварии на cvAdd из-за различных размеров изображения. Скажите, пожалуйста, где я ошибаюсь, или скажите мне другое решение, используя структуру CvMat. Пожалуйста, не сообщайте решения для Mat или IplImage.

+0

пожалуйста, используйте C OpenCV в апи ++, не осуждается с-один. – berak

+0

На самом деле мне нужно работать только с c-структурами вместо C++. –

+0

затем, do ** нет ** использование opencv. – berak

ответ

0

действительно, вы должны использовать C++ API:

Mat ob1 = imread("C:\\Users\\Public\\Pictures\\Sample Pictures\\Koala.jpg"); 
Mat ob2 = imread("C:\\Users\\tgupta\\Downloads\\len_std256.jpg"); 
resize(ob1, ob1, ob2.size()); // change size of ob1 to the one of ob2 

Mat dst; 
add(ob1,ob2,dst); 
imshow("cv_src",dst); 
waitKey(); 
+0

В моем проекте есть какие-то ограничения, над которыми я работаю. Мне нужно использовать только структуры C. Я знаю, что изменение размера Mat и IplImage можно сделать легко. Но, пожалуйста, скажите мне, как это сделать для структуры CvMat. –