我有一张左侧的图像。我希望获得覆盖区域或多边形的圆弧点以获得右侧的图像。我有所有线的终点值。
我该怎么做(获得所有覆盖区域)?任何算法或想法?
答案 0 :(得分:1)
最简单的方法是使用递归填充技术。
假设您开始使用黑白图像,则会在一个区域上放置一个颜色像素。您递归地将区域填充到该像素的上,下,左和右。当每个像素返回时(因为所有周围的像素都是彩色的或墙上是黑色的),你返回。
你可以对每个x,y坐标迭代地执行此操作,如果它已经是前一次运行的colord,则跳过它。在这样做的过程中,如果您愿意,也可以迭代颜色。
答案 1 :(得分:0)
这是二进制图像分割的经典案例,据我所知,在输入图像的有限分辨率中。反转图像,可能会侵蚀图像以填充线条中的孔,然后进行图像分割。对此的一个简单算法是执行图像的正向扫描并为每个像素分配其向后(直接向左或任何上方向)白色邻居的区域值,或者如果它仅具有黑色后向邻居则指定新区域值,连接区域当有邻居有不同的区号时。
答案 2 :(得分:0)
作为第二种方法,如果您有一个不间断的行列表,您可以尝试使用图表方法。将每一行视为图中的边,并将每个交叉点视为一个节点,并在图中查找最小周期。这些是你的房间。