我想检测任意旋转的文本实例是否重叠。
使用描述的技术HERE我可以获得Text实例的轴对齐边界框(AABB)。如果文本是轴对齐的,那么AABB对于实际文本非常紧密。但是一旦你开始旋转文本,AABB覆盖的区域就会比文本占用的实际区域大得多:
因此,AABB不是检测旋转文本重叠的非常准确的方法。
这是我能想象到的方式:
上述过程是一种好的方法,还是使用Matplotlib中已有的某些功能更好的方法?
答案 0 :(得分:1)
如果你不想花很多时间思考这个并且不太关心性能,我会导入shapely并将边界框创建为多边形对象。然后找到重叠是微不足道的。
from shapely.geometry import Polygon
p1=Polygon([(0,0),(1,1),(1,0)])
p2=Polygon([(0,1),(1,0),(1,1)])
print p1.intersects(p2)
如果您可以在旋转文本之前创建多边形,甚至可以帮助找到OBB。 (只需确保对文本应用与多边形相同的变换。)