用python编写代码,实现4连通种子边界填充算法,运行结果为矩形图形
时间: 2024-12-01 21:29:55 浏览: 21
在Python中,我们可以使用邻接矩阵或邻接列表来实现4联通的种子边界填充算法,这个过程通常涉及到深度优先搜索(DFS)。这里我将提供一个简单的邻接矩阵版本的示例:
```python
def is_empty(matrix, i, j):
return i < 0 or i >= len(matrix) or j < 0 or j >= len(matrix[0])
def get_neighbors(i, j, matrix):
neighbors = [(i+1, j), (i-1, j), (i, j+1), (i, j-1)]
return [n for n in neighbors if not is_empty(n[0], n[1]) and matrix[n[0]][n[1]] == 1]
def fill_rectangle(matrix, i, j, value=1):
matrix[i][j] = value
queue = [(i, j)]
while queue:
x, y = queue.pop(0)
for neighbor in get_neighbors(x, y, matrix):
matrix[neighbor[0]][neighbor[1]] = value
queue.append(neighbor)
# 使用示例
matrix = [[0, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
fill_rectangle(matrix, 1, 1) # 从坐标 (1, 1) 开始填充
print(matrix)
阅读全文