Python实现区域填充的递归算法

杂谈 季若尘 5年前 (2019-11-19) 805次浏览 已收录 0个评论 扫描二维码

处理前图片
Python实现区域填充的递归算法
处理后图片
Python实现区域填充的递归算法
由于 Python 对递归深度有限制,所以图片像素起码要在 100×100 以下
代码如下

import shutil
import sys 
from PIL import Image

sys.setrecursionlimit(1000000)

img_filename = 'img/图片.png'
img_ed_filename = 'img_ed/图片 _ed.png'
new_color = (255,0,0,255)
old_color = (255,255,255,255)

shutil.copyfile(img_filename,img_ed_filename)
im = Image.open(img_ed_filename)

ipt = input('请输入起始坐标,以半角逗号隔开:')
coordinate = ipt.split(',')
coordinate[0] = int(coordinate[0])
coordinate[1] = int(coordinate[1])
def Color_Fill(x,y,o_c,n_c):
	if(im.getpixel((x,y)) == o_c):
		im.putpixel((x,y),n_c)
		Color_Fill(x,y+1,o_c,n_c)
		Color_Fill(x,y-1,o_c,n_c)
		Color_Fill(x-1,y,o_c,n_c)
		Color_Fill(x+1,y,o_c,n_c)
Color_Fill(coordinate[0],coordinate[1],old_color,new_color)
im.save(img_ed_filename)

版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python实现区域填充的递归算法
喜欢 (1)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址