使用CvMat在Open CV中调整图像大小

时间:2015-04-24 06:28:19

标签: c opencv resize resize-image

我在Open CV中使用CvMatcvResize函数添加两张不同大小的图片。

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结构的另一个解决方案。请不要告诉MatIplImage结构的解决方案。

1 个答案:

答案 0 :(得分: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();