当我在open cv中传递newSize参数时,resize()失败

时间:2013-11-07 15:16:21

标签: android opencv

在android中我试图使用以下代码扩展我的垫子。

Mat destMat = new Mat(); 
Size newSize=new Size(output.width()/6.0f, output.height()/6.0f); 
Imgproc.resize(output, destMat, newSize, 0, 0, Imgproc.INTER_CUBIC);

当它尝试执行resize方法时,我得到以下异常。我的代码在onCameraFrame()。

  

MatToBitmap catched cv :: Exception:   /home/reports/ci/slave_desktop/50-SDK/opencv/modules/java/generator/src/cpp/utils.cpp:97:   错误:(-215)src.dims == 2&& info.height ==(uint32_t)src.rows&&   函数void中的info.width ==(uint32_t)src.cols   Java_org_opencv_android_Utils_nMatToBitmap2(JNIEnv *,jclass,jlong​​,   jobject,jboolean)

1 个答案:

答案 0 :(得分:0)

变量' newSize'是的,你实际上想要destMat的原始大小。您可以使用fx和fy参数缩小它。来自javadocs:

  

函数resize将图像src调整到或向上调整大小   指定大小。注意不采用初始dst类型或大小   考虑到了。相反,大小和类型来自   src,dsize,fx和fy。

后来:

  

//明确指定dsize = dst.size();将计算fx和fy   从那起。