我有不同形状的.jpg文件。我试图检测每个图形的形状,并将其打印在旁边。我正在使用下面的代码创建和绘制轮廓
contours, _ = cv2.findContours(threshold, cv2.RETR_TREE, cv2.CHAIN_APPROX_NONE)
for con in contours:
approx = cv2.approxPolyDP(con, 0.01*cv2.arcLength(con, True), True)
cv2.drawContours(img, [approx], 0, (0,0,0), 5)
if len(approx) == 4:
cv2.putText(img, "Quadrilateral", (x,y), font, 1, (0))
现在我已经计算出了cv2.approxPolyDp()
连接轮廓点并创建了一个确定形状的边界,我如何确定确切的形状,即它是正方形还是矩形?如上述代码所示,如果
len(approx) == 4
这是图像:
可以使用aspect ratio来区分正方形和矩形。通过观察,正方形的长度和宽度相等,而矩形的一侧更长。同样的逻辑也可用于识别圆形与椭圆形。结果如下:
相关问题 更多 >
编程相关推荐