Skip to main content
 首页 » 编程设计

python之确定检测器系统中旋转正方形的重叠

2025年05月04日8kerrycode

我正在研究一个问题,需要我计算两个正方形的重叠面积。 这是程序的一部分,该程序将由几个方形检测器单元/像素(阵列)组成的旋转检测器放置在由多个(较小)方形像素组成的输入图的顶部,并确定检测器检测到的每个输入像素的光百分比像素。 我尝试了一种几何方法,但要考虑的可能变化太多了。

与另一个方 block 相比,一个方 block 可以旋转任意角度,并且两个方 block 的大小可以不同。给定的参数是探测器像素在输入图上的中心坐标、探测器像素的大小(输入像素默认等于1)和旋转角度。

编辑:添加草图以澄清

Sketch

所以我要做的是计算每个输入像素(黑色方 block )位于给定检测器像素(红色方 block )内的部分,它可以是 0 到 1 之间的任何值。 然后可以将其与输入像素的值相乘,并对所有输入像素求和,以计算检测器像素收集的总光。

我尝试使用的几何方法是计算探测器像素边缘的斜率,并使用与输入像素边缘的相交来计算总重叠。

请您参考如下方法:

如果我对你的理解正确的话,你所做的相当于试图在灰度位图上找到重叠的方 block ?如果是的话,你能做角点检测,并尝试从检测到的角点制作正方形,然后计算检测到的正方形上的重叠吗?这个 opencv 示例可能是一个很好的起点:https://code.ros.org/trac/opencv/browser/trunk/opencv/samples/python/squares.py?rev=907

如果我误解了问题(例如,我对旋转角度感到困惑),请提前致歉。