2015-07-23 5 views
0

Я хочу найти выпуклость и получить дефекты выпуклости для самого большого контура. Вот мой код для поиска самого большого контура. Я использую opencv для android.Can кто-то гильдии меня, пожалуйста.Я хочу найти самый большой контур изображения.

 Imgproc.cvtColor (inputFrame.rgba(), mIntermediateMat, Imgproc.COLOR_RGB2YCrCb, 4); 
     Core.inRange(mIntermediateMat, new Scalar(1, 133, 77), new Scalar(255, 173, 127), mGray); 
     Imgproc.erode(mGray,mGray, Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(4,4)));   
     Imgproc.dilate(mGray, mGray, Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(4, 4))); 
     Imgproc.blur(mGray, mGray, new Size(3.0, 3.0)); 
     Imgproc.adaptiveThreshold(mGray, mcontour, 255, Imgproc.ADAPTIVE_THRESH_MEAN_C,Imgproc.THRESH_BINARY_INV, 3, 1); 
     mRgba = inputFrame.rgba(); 
     maxContourArea=0; 
     contours= new ArrayList<MatOfPoint>(); 
     Imgproc.findContours(mcontour, contours, new Mat(), Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE); 
     for (int idx = 0; idx < contours.size(); idx++) 
     { 
       contour = contours.get(idx); 

      double contourarea = Imgproc.contourArea(contour); 
       if (contourarea > maxContourArea) 
       { 

         maxContourArea = contourarea; 
         maxAreaIdx = idx; 

       } 
     } 

     if(maxContourArea>1000) 
     { 
     Imgproc.drawContours (mRgba, contours, maxAreaIdx, new Scalar(120,120,120),2); 
     } 
     contours.clear(); 
+0

посмотрите [здесь] (Http://stackoverflow.com/a/31358401/5008845) – Miki

ответ

Смежные вопросы