C++ OpenCV IOS调整垫子的大小

C++ OpenCV IOS调整垫子的大小,c++,ios,opencv,image-processing,opencv-mat,C++,Ios,Opencv,Image Processing,Opencv Mat,我试图在飞行中调整一个垫子的大小,我将其覆盖到另一个图像上。图像存储在IOS设备的Assets.xcsets文件夹中,我将其传递给我的函数,然后使用UIImageToMat将其转换为cv::Mat 作为一个测试,我希望能够调整它的大小,使其大小的一半,但我遇到了问题 当我尝试overlay->resize(overlay->rows/2)时结果覆盖仅显示其上半部分 然后,当我尝试cvResize(覆盖、destPointer、CV_INTER_LINEAR)时 我得到一个错误: 错误:(-5)函

我试图在飞行中调整一个垫子的大小,我将其覆盖到另一个图像上。图像存储在IOS设备的Assets.xcsets文件夹中,我将其传递给我的函数,然后使用UIImageToMat将其转换为cv::Mat

作为一个测试,我希望能够调整它的大小,使其大小的一半,但我遇到了问题

当我尝试
overlay->resize(overlay->rows/2)时结果覆盖仅显示其上半部分

然后,当我尝试
cvResize(覆盖、destPointer、CV_INTER_LINEAR)时
我得到一个错误:

错误:(-5)函数cvarrToMat中的数组类型未知

C++:

cv::点中心;
整数半径;
双半径;
简历:Mat原创照片;
UIImageToMat(叠加,原始照片,1);
cv::Mat*叠加=&originphoto;
center.x=cv::饱和_铸造((r->x+r->宽度*0.5)-覆盖->尺寸().宽度*0.5);
center.y=cv::saturate_cast((r->y+r->height*0.5-叠加->size().height*0.5));
半径=cv::饱和浇注((r->宽度+r->高度)/2);
printf(“%d”,半径);
新半径=半径/1;
cv::Mat目的地(叠加->行/2,叠加->列/2,1);
cv::Mat*destPointer=&destination;
cvResize(叠加、去目标指针、CV_内部线性);
覆盖=dest指针;
非常感谢您提供的任何帮助,因为这些cv::Mats是矩阵,对于图像处理来说还是一个新手,不知道如何处理它们。

使用以下工具可以正常工作:

cv::resize(*overlay, destination, cv::Size(), 0.5, 0.5);

如果其他任何人遇到此问题,您可以这样做:)

如何在第5行中不出现错误。请张贴MVCE。此外,我建议您使用opencv 3 api,不要使用cvResize之类的C函数,除非您必须这样做(resize(mat,mat,type)是另一种选择)
cv::resize(*overlay, destination, cv::Size(), 0.5, 0.5);