查找RotatedRect的宽度和高度[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查找RotatedRect的宽度和高度[关闭]相关的知识,希望对你有一定的参考价值。

请参阅This C++ code我试图在python中进行更改以完成相同的操作,但我仍然坚持使用for循环来查找aspect_ratio。我没有得到任何线索来获取python中Rot​​atedRect的最小和最大宽度和高度,因为Python中C ++的RotatedRect的替代是cv2.boxPoints

import cv2
from matplotlib import pyplot as plt
img = cv2.imread('C:/Users/Zeeesh/Desktop/1.jpg', cv2.IMREAD_GRAYSCALE)
ret,thresh = cv2.threshold(img,200,255,0)
img1,contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
out = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
for contour in contours:
    rect = cv2.minAreaRect(contour)
    (x, y), (width, height), angle = rect
    aspect_ratio = min(width, height) / max(width, height)

    thresh1 = 0.2
    if (aspect_ratio > thresh1):
        print('Straight Line')
        for pt in contour:
            cv2.drawContours(out, [pt], 0,255,0)
    else:
        print('Curve')
        for pt in contour:
            cv2.drawContours(out, [pt], 0,0,255)






plt.imshow(out)
答案

你可以找到旋转矩形的widthheight

rect = cv2.minAreaRect(contour)
(x, y), (width, height), angle = rect

然后纵横比是:

aspect_ratio = min(width, height) / max(width, height)

以上是关于查找RotatedRect的宽度和高度[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

包含 Vue.js 后,图像宽度和高度始终为 0 [关闭]

查找 <iframe> 的宽度和高度

如何在 EaselJS 中查找 DisplayObject 的宽度和高度

以跨浏览器的方式查找视口的确切高度和宽度(无 Prototype/jQuery)

Java方法仅使用左下点,宽度和高度来查找两个矩形相交的矩形?

如何在java中比较两个图像的高度和宽度[关闭]