如何查找按重叠排序的矩形顺序(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),(27,7),(5,8),(27,8),(5,9),(27,9),(5),(27,11),(27,11),(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)),它们表示左上角和右下角 但是,我找不到一种方法来按矩形的绘制顺序排序 图片中的示例: 矩形的顺序将是蓝色、绿色和黄色,因为我必须按此顺序绘制它们以恢复图像,从而保持正确的相交顺序 p、 s我希望在不使用库的情况下实现它,比如openCV ecc 编辑 我将png图像作为输入。 我创建了一个元组列表,其中包含图像的每个像素 表示为RGB元组(例如(0,0255))如何查找按重叠排序的矩形顺序(python),python,image-processing,Python,Image Processing,以一个图像作为输入,例如示例一,我想对彩色矩形进行排序,这些矩形通过重叠构成图像 我会解释: 从图像中,我可以得到格式(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),(27,
我希望每个矩形都被编码为代表矩形颜色的像素。 : 因此,编码图像允许您知道将首先绘制蓝色矩形,然后绘制绿色矩形,最后绘制黄色矩形 这就是我所说的重叠顺序:
如果我从编码图像中按顺序绘制矩形,我可以获得与原始图像相同的重叠。虽然问题很不清楚,但我似乎理解您
- 具有彩色像素的原始列表,这些像素是绘制重叠矩形边缘的结果
- 能够找出它们起源的矩形
可能有更难的情况,例如多个重叠或多个相同颜色的矩形。我不明白您的“示例(不是来自图像)”中的所有数字是什么:意思以及它们与问题的关系。输入是什么样子的?你只有图像要处理吗?只有图像。我可以区分每个矩形:def get_pixels(img):`coords={}范围内的j(len(img[0]):范围内的i(len(img)):rgb=img[i][j]如果rgb!=(0,0,0):coords[rgb]=coords.get(rgb,[])+[(i,j)]return coords`我有一个字典,其中包含每个矩形的颜色及其坐标(x,y)。我希望每个矩形在水平方向上编码为5个连续像素:-表示其空间坐标的四个像素((5,5),(27,27))我用从十进制到rgb元组的编码来实现这一点——最后一个像素是矩形的颜色。因此,我制作了一个位图,它必须按照绘制的方式排序1)为每对矩形定位相交的像素;2)计算出相交像素的颜色,并用它来决定两个矩形中的哪个位于其他矩形之上3)使用步骤2中建立的比较对矩形列表进行排序2)我已经实现了一个Kahn算法来进行拓扑排序,它工作得很好。但是如果顶点超过十个,它开始产生mistakes,你知道拓扑排序中的顶点数量是否有一些限制吗?@Wilwbus:显然没有!