两个横平竖直的矩形,已知顶点坐标,判断是否相交(肉眼看不算)。 如果相交,相交面积是多少?
两个横平竖直矩形如果相交,可以大致有如下三类相对位置
(由其中一种中心旋转或者轴线翻转得出的视为同一类)
我们可以看出三类的相交部分的四条边是有共同特征的。 左侧边:两个矩形左侧边中靠右的那条边 上 边: 两个矩形上边中靠下的那条边 右 边: 两个矩形右边中靠左的那条边 下 边:两个矩形下边中靠上的那条边
另外就是判断不相交。 已图形处理中坐标的特点,左上角为顶点 0,0向右 为正X,向下为正Y 如果一个矩形的左侧边不小于另一个矩形的右侧边,或者同理 上下两边,都是不相交,否则必定相交
求交集比并集 iou
# 已 左上角为x1,y1 右下角为 x2,y2 def getIou(ax1,ay1,ax2,ay2,bx1,by1,bx2,by2): # 判断如果没有相交直接返回 0 if ax1 >= bx2 or ax2 <= bx1 or ay1 >= by2 or ay2 <= by1: return 0 # 交集面积 intersection = (min(ax2,bx2) - max(ax1,bx1)) * (min(ay2,by2) - max(ay1,by1)) # 并集面积 = 两个矩形面积相加 减去 交集面积 and_set = lw * lh + w * h - intersection return intersection / and_set
无论是像素坐标值 还是归一化的小数,都能直接用
查看更多关于python根据坐标判断两个矩形(横平竖直的)交并比的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did164690