title: How to calculate roughness contour in opencv?
body: <p>Is there a way to calculate roughness contour in opencv?</p>
  
  <p>image sample: <a href="https://docs.google.com/file/d/0ByS6Z5WRz-h2NDgySmJ6NnpId0U/edit?usp=sharing" rel="nofollow">https://docs.google.com/file/d/0ByS6Z5WRz-h2NDgySmJ6NnpId0U/edit?usp=sharing</a></p>
  
  <p><strong>UPDATE</strong></p>
  
  <p>My code for calculating roughness:</p>
  
  <p>perimeter contour/ convex hull perimeter</p>
  
  <pre><code>nomeimg = 'Riscalate2/JPEG/e (5).jpg'
  
  img = cv2.imread(nomeimg)
  
  gray = cv2.imread(nomeimg,0)#convert grayscale adn binarize
  
  element = cv2.getStructuringElement(cv2.MORPH_CROSS,(6,6)) 
  graydilate = cv2.erode(gray, element) #imgbnbin
  
  cv2.imshow('image',graydilate)
  cv2.waitKey(0)
  
  ret,thresh = cv2.threshold(graydilate,127,255,cv2.THRESH_BINARY_INV)   # binarize
  
  imgbnbin = thresh
  cv2.imshow('bn',thresh)
  cv2.waitKey()
  
  #element = cv2.getStructuringElement(cv2.MORPH_CROSS,(2,2))
  #element = np.ones((11,11),'uint8')
  
  
  contours, hierarchy = cv2.findContours(imgbnbin, cv2.RETR_TREE ,cv2.CHAIN_APPROX_SIMPLE)
  print(len(contours))
  
  
  # Take only biggest contour basing on area
  Areacontours = list()
  calcarea = 0.0
  unicocnt = 0.0
  for i in range (0, len(contours)):
      area = cv2.contourArea(contours[i])
      #print("area")
      #print(area)
      if (area &gt; 90 ):  #con 90 trova i segni e togli puntini
          if (calcarea&lt;area):
              calcarea = area
              unicocnt = contours[i]
  
  #ROUGHNESS
  perimeter = cv2.arcLength(unicocnt,True)
  hull = cv2.convexHull(unicocnt,returnPoints = False)
  hullperimeter = cv2.arcLength(hull,True)
  
  print("perimeter")
  print(perimeter)
  print("hullperimeter")
  print(hullperimeter)
  
  
  roughness = perimeter/hullperimeter
  print("roughness")
  print(roughness)
  </code></pre>
  
  <p>Error:</p>
  
  <pre><code>Traceback (most recent call last):
    File "C:\Python27\nuovefeature.py", line 417, in &lt;module&gt;
      hullperimeter = cv2.arcLength(hull,True)
  error: ..\..\..\src\opencv\modules\imgproc\src\contours.cpp:1886: error: (-215) curve.checkVector(2) &gt;= 0 &amp;&amp; (curve.depth() == CV_32F || curve.depth() == CV_32S)
  </code></pre>