2015-04-24 3 views
-1

J'utilise CvMat et cvResize fonction dans Open CV pour ajouter deux images de taille différente.Redimensionnement de l'image en utilisant CvMat Dans 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); 

Mais quand je suis en utilisant la fonction cvResize les valeurs de ob2 ne redimensionnez pas ob1 et plantage de mon programme à cvAdd en raison des différentes tailles d'image. S'il vous plaît dites-moi où je me trompe ou dites-moi une autre solution en utilisant la structure CvMat. S'il vous plaît ne dites pas de solutions pour Mat ou IplImage structure.

+0

s'il vous plaît utiliser le C++ de OpenCV api, pas le c-un dépréciée. – berak

+0

En fait, je dois travailler sur des structures c seulement au lieu de C++. –

+0

alors, ne ** pas ** utiliser opencv. – berak

Répondre

0

vraiment, vous devez utiliser le 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

Il ya une certaine restriction dans mon projet sur lequel je travaille. Je dois utiliser uniquement les structures C. Je sais que l'utilisation de Mat et du redimensionnement IplImage peut se faire facilement. Mais dites-moi comment le faire pour la structure CvMat. –