【发布时间】:2020-01-28 06:54:46
【问题描述】:
我有不同形状的 .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
这是图片:
【问题讨论】:
-
想想正方形和长方形的定义。对于正方形,所有边应具有相同的长度(带有一些 eps),并且两个随后的边应具有 90 度角(按顺时针或逆时针顺序)。为 restangle 创建类似的逻辑。
标签: python image opencv image-processing computer-vision