我正在编写一个Java应用程序来检测简单的几何形状。在
下面是一些代码[Python]: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) > 15:
print "circle"
cv2.drawContours(img,[cnt],0,(0,255,255),-1)
使用Java的OpenCV方法,我无法提取近似轮廓的“len”(长度)属性(以便确定检测到的形状)。在
产生一对Java轮廓:
^{pr2}$
我想从上面的代码中得到一个特定轮廓对象的点数4和{}。在
我知道我可以把它转换成一个字符串然后提取数字,但是肯定有更好的方法,对吧?在
谢谢你的回复。在