漫水填充bloodfill4原理程序

0 Comments

#bloodfill漫水填充原理程序
#img表示一张图像,里面的1表示一种颜色,r,c为起始填充点
#把r,c四方向相邻的点都变成2这种颜色,四方向递归进行

def fill(img ,r,c,oldcolor,newcolor):
    if r>=0 and r<5 and c>=0 and c<5:
        if img[r][c] == oldcolor:
            img[r][c] = newcolor
            fill(img ,r-1,c,oldcolor,newcolor)
            fill(img ,r+1,c,oldcolor,newcolor)
            fill(img ,r,c+1,oldcolor,newcolor)
            fill(img ,r,c-1,oldcolor,newcolor)
            
     
img = [[1,1,0,1,1],
       [1,1,1,0,1],
       [1,1,0,1,0],
       [1,1,1,0,1],
       [0,0,1,0,0]]
r,c = 1,1
fill(img,1,1,1,2)
for row in img:
    print(row)
       

发表评论