用python编写代码,实现4连通种子边界填充算法,图像用颜色填充
时间: 2024-12-01 21:30:11 浏览: 12
python实现种子填充算法.zip
3星 · 编辑精心推荐
在Python中,我们可以使用PIL(Python Imaging Library)库来处理图像,并结合邻接矩阵的方法实现4连通种子边界填充。下面是一个简单的示例:
```python
from PIL import Image, ImageDraw
def four_connectivity_fill(image_path, seed_point, fill_color):
# 打开图片并创建画笔
img = Image.open(image_path)
draw = ImageDraw.Draw(img)
# 初始化邻接矩阵(0表示未访问,1表示已访问)
width, height = img.size
visited = [[0] * width for _ in range(height)]
# 设置种子点为已访问
visited[seed_point[1]][seed_point[0]] = 1
# 邻接方向
directions = [(0, -1), (1, 0), (0, 1), (-1, 0)] # 上下左右
def is_valid(x, y):
return x >= 0 and x < width and y >= 0 and y < height
def fill_neighbors(x, y):
if not is_valid(x, y): return
if visited[y][x]: return
draw.point((x, y), fill_color) # 填充像素
visited[y][x] = 1
for dx, dy in directions:
fill_neighbors(x + dx, y + dy)
# 开始填充
fill_neighbors(seed_point[0], seed_point[1])
# 显示填充后的图片
img.show()
# 使用方法
four_connectivity_fill('input_image.png', (10, 10), 'red') # 假设种子点坐标(10, 10),填充颜色为红色
```
这个函数首先打开输入图片,然后设置种子点为已访问。接着遍历邻居节点,如果未访问则填充颜色并标记为已访问。最后显示填充后的图片。
阅读全文