用python写一个种子填充算法
时间: 2024-05-14 17:11:48 浏览: 129
图形学_opengl_图形学_种子填充_
5星 · 资源好评率100%
好的,让我来回答这个问题。种子填充算法,也叫泛洪填充算法,是一种图形填充的算法。它以一个或多个起始点为种子,向四周扩散填充颜色或其他属性,直到边界为止。下面是一个用Python实现种子填充算法的例子:
```python
def seed_fill(image, seed, fill_color):
"""
:param image: 待填充的图像
:param seed: 填充起始点
:param fill_color: 填充颜色
"""
stack = [seed]
while len(stack) > 0:
x, y = stack.pop()
if image[x][y] != fill_color:
image[x][y] = fill_color
if x > 0:
stack.append((x - 1, y))
if x < len(image) - 1:
stack.append((x + 1, y))
if y > 0:
stack.append((x, y - 1))
if y < len(image[0]) - 1:
stack.append((x, y + 1))
```
这个函数接收三个参数:待填充的图像、填充起始点和填充颜色。它使用一个栈来保存需要填充的点,不断从栈中取出点进行填充,同时向四周扩散填充颜色。如果填充颜色与当前点的颜色相同,则跳过该点。在代码里没有包含图片加载和保存的部分,需要根据具体应用场景加以实现。希望这个代码可以满足你的需求。
阅读全文