Android OpenCV错误:断言失败
我正在使用Opencv开发一个android图像处理应用程序。 在这个应用程序中,我拍摄相机的每一帧并对其进行处理以找到手。 我搜索了很多,做了一些事情,但我无法解决问题: 1-我调整了输入图像的大小以减小大小,因为我正在使用手机 2-我做了一个小应用程序,以一个小图像作为输入,并准确地使用此方法来查找凸包,但再次出现此错误 错误是:Android OpenCV错误:断言失败,android,c++,opencv,Android,C++,Opencv,我正在使用Opencv开发一个android图像处理应用程序。 在这个应用程序中,我拍摄相机的每一帧并对其进行处理以找到手。 我搜索了很多,做了一些事情,但我无法解决问题: 1-我调整了输入图像的大小以减小大小,因为我正在使用手机 2-我做了一个小应用程序,以一个小图像作为输入,并准确地使用此方法来查找凸包,但再次出现此错误 错误是: OpenCV Error: Assertion failed (!fixedSize() || len == ((vector<uchar>*)v)
OpenCV Error: Assertion failed (!fixedSize() || len == ((vector<uchar>*)v)- >size() / esz) in virtual void cv::_OutputArray::create(int, int const*, int, int, bool, int) const, file /home/reports/ci/slave_desktop/50- SDK/opencv/modules/core/src/matrix.cpp, line 1489
在makeContours方法的下一行中:
convexHull(Mat(hg->contours[hg->cIdx]),( (vector<Point>)hg->hullP[hg- >cIdx]), false, true);
我制作convexhull和convexdefects的方法是:
void makeContours(MyImage *m, HandGesture* hg){
Mat aBw;
pyrUp(m->bw, m->bw);
m->bw.copyTo(aBw);
findContours(aBw, hg->contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);
hg->initVectors();
hg->cIdx = findBiggestContour(hg->contours);
if (hg->cIdx != -1){
hg->bRect = boundingRect(Mat(hg->contours[hg->cIdx]));
convexHull(Mat(hg->contours[hg->cIdx]),( (vector<Point>)hg->hullP[hg- >cIdx]), false, true);
convexHull(Mat(hg->contours[hg->cIdx]),((vector<int>) hg->hullI[hg->cIdx]), false, false);
if (((vector<Point>)hg->contours[hg->cIdx]).size()>3){
convexityDefects(((vector<Point>)hg->contours[hg->cIdx]), ((vector<int>)hg->hullI[hg->cIdx]),((vector<Vec4i>) hg->defects[hg->cIdx]));
hg->eleminateDefects(m);
}
bool isHand = hg->detectIfHand();
hg->printGestureInfo(m->src);
if (isHand){
hg->getFingerTips(m);
hg->drawFingerTips(m);
myDrawContours(m, hg);
}
}
}
非常感谢您的帮助。检查底部是否有帮助。再次感谢@Miki这里我禁用了无效参数的错误,并这样写:convexHullMathg->Converts[hg->cIdx],hg->hullP[hg->cIdx],false,true;convexHullMathg->等高线[hg->cIdx],hg->hullI[hg->cIdx],假,假;而且它有效!哦,我没注意到这篇文章也是你的D