title: Detecting simple geometric shapes using OpenCV [Java]
body: <p>I'm programming a Java application that detects simple geometric shapes.</p>
  
  <p>The following Python code is used as a reference: <a href="https://stackoverflow.com/a/11427501/2426320/">How to detect simple geometric shapes using OpenCV</a></p>
  
  <p>This is some of the code [Python]:</p>
  
  <pre><code>contours,h = cv2.findContours(thresholdedImage,1,2)
  
  for cnt in contours:
      approx = cv2.approxPolyDP(cnt,0.01*cv2.arcLength(cnt,True),True)
      print len(approx)
      if len(approx)==5:
          print "pentagon"
          cv2.drawContours(img,[cnt],0,255,-1)
      elif len(approx)==3:
          print "triangle"
          cv2.drawContours(img,[cnt],0,(0,255,0),-1)
      elif len(approx)==4:
          print "square"
          cv2.drawContours(img,[cnt],0,(0,0,255),-1)
      elif len(approx) == 9:
          print "half-circle"
          cv2.drawContours(img,[cnt],0,(255,255,0),-1)
      elif len(approx) &gt; 15:
          print "circle"
          cv2.drawContours(img,[cnt],0,(0,255,255),-1)
  </code></pre>
  
  <p>Using Java's OpenCV methods, <strong>I'm unable to extract the "len" (length) property</strong> (in order to determine what shape has been detected) of an approximated contour.</p>
  
  <p>Printing out a couple of contours produces [Java]:</p>
  
  <pre><code>[ 4*1*CV_32SC2, isCont=true, isSubmat=false, nativeObj=0x23ac75f0, dataAddr=0x1c7c66c0 ]
  [ 5*1*CV_32SC2, isCont=true, isSubmat=false, nativeObj=0x23ac7200, dataAddr=0x1c0e5fc0 ]
  etc.
  </code></pre>
  
  <p>I'd like to get the number of points of a specific contour object -- the <code>4</code> and <code>5</code> from the code above.</p>
  
  <p>I know I could convert it to a String and then extract the numbers, but there must be a better way, right?</p>
  
  <p>Thanks for your replies.</p>