find_nearest中的opencv致命信号11

时间:2014-04-09 19:05:41

标签: java android opencv

我正在使用opencv

开发Android应用

我使用下面的代码在CvKNearest train

之后找到最近的代码
for(int i=0; i< contours.size();i++){
 if ((Imgproc.contourArea(contours.get(i)) > 50 )){
  Rect rect = Imgproc.boundingRect(contours.get(i));
   if (rect.height > 28){
    Mat ROI = imageA.submat(rect.y, rect.y + rect.height, rect.x, rect.x + rect.width);
    Mat tmp1 = new Mat();
    Mat tmp2 = new Mat();
    Mat tmp3 = new Mat(CvType.CV_32FC1);

    Imgproc.resize(ROI, tmp1, new Size(10, 10));
    tmp1.convertTo(tmp2, CvType.CV_32FC1);

    //float p = knn.find_nearest(tmp2.reshape(1, 1), 100, tmp3, temp1, temp1);

    Core.rectangle(image, new Point(rect.x,rect.y), new Point(rect.x+rect.width,rect.y+rect.height),new Scalar(0,0,255));

   }
 }
}

当我取消注释我收到的knn.find_nearest行时 Fatal signal 11 (SIGSEGV) at 0x00000010 (code=1)

我哪里错了?

我什么时候需要清空内存?

1 个答案:

答案 0 :(得分:0)

在函数“find-knearest”中你必须检查k参数,因为它有一个限制。

这是一个链接,您可以在其中找到信息link

我现在处于一个类似的项目中,我设置了32而不是100。