繁体   English   中英

如何找到按重叠排序的矩形的顺序(python)

[英]how to find order of rectangles sorted by the overlapping (python)

将图像作为输入,例如示例图像,我想对组成它的重叠的彩色矩形进行排序。

例子图片

我将解释:从图像中我可以得到格式 (x, y) 中每个点的矩形

例子 :

{("蓝色"): [(5, 5), (6, 5), (7, 5), (8, 5), (9, 5), (10, 5), (11, 5), (12, 5), (13, 5), (14, 5), (15, 5), (16, 5), (17, 5), (18, 5), (19, 5), (20) , 5), (21, 5), (22, 5), (23, 5), (24, 5), (25, 5), (26, 5), (27, 5), (5, 6) ), (27, 6), (5, 7), (27, 7), (5, 8), (27, 8), (5, 9), (27, 9), (5, 10), (27, 10), (5, 11), (27, 11), (5, 12), (27, 12), (5, 13), (27, 13), (5, 14), (27) , 14), (5, 15), (27, 15), (5, 16), (27, 16), (5, 17), (27, 17), (5, 18), (27, 18) ), (5, 19), (27, 19), (5, 20), (5, 21), (27, 21), (5, 22), (27, 22), (5, 23), (27, 23), (5, 24), (5, 25), (27, 25), (5, 26), (27, 26), (5, 27), (6, 27), (7) , 27), (8, 27), (9, 27), (10, 27), (11, 27), (12, 27), (13, 27), (14, 27), (15, 27) ), (16, 27), (17, 27), (18, 27), (19, 27), (21, 27), (22, 27), (23, 27), (25, 27), (26, 27), (27, 27)]

表示一个字典,它的键是矩形的颜色,作为值是形成它的每个像素的列表,通过它在空间中的 x 和 y 坐标

因此,我可以获得每个矩形的空间坐标 ((5,5), (27,27)),它们代表左上角和右下角。

但是,我找不到按矩形绘制顺序对矩形进行排序的方法。

图像中的示例:矩形的顺序将是蓝色、绿色和黄色,因为我将不得不按此顺序绘制它们以重新获得图像,以保持正确的相交顺序。

ps我想在不使用库的情况下制作它,比如openCV ecc ..

编辑。

我以 png 图像作为输入。 我创建了一个元组列表列表,其中我将图像的每个像素都表示为 RGB 元组(例如 (0, 0, 255))

我希望每个矩形都被编码为代表矩形颜色的像素。 :编码的矩形

因此,编码图像让您知道将首先绘制蓝色矩形,然后是绿色矩形,最后是黄色矩形。

这就是我所说的重叠顺序的意思:如果我从编码图像中按顺序绘制矩形,我将获得与原始图像相同的重叠。

虽然问题很不清楚,但我似乎明白你

  • 有彩色像素的原始列表,这是绘制重叠矩形边缘的结果;

  • 能够找出它们源自的矩形。

如果是这种情况,则遍历矩形的边缘,每次遇到不同颜色的像素(例如绿色而不是蓝色)时,将其记为“绿色与蓝色重叠”的关系)。 然后对如此获得的偏序应用拓扑排序。

可能会有更难的情况,例如多个重叠或多个相同颜色的矩形。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM