填充错误Python
我正在尝试用python制作一个算法,在这个算法中,(300300,3)nd numpy图像数组中的一个随机元素被拾取并更改为白色。然后周围的像素有99%的几率变为白色,而周围的像素有98%的几率变为白色,依此类推。我试图使用泛洪填充算法来实现这一点,但它给了我一个递归错误。有什么建议吗填充错误Python,python,image,numpy,flood-fill,Python,Image,Numpy,Flood Fill,我正在尝试用python制作一个算法,在这个算法中,(300300,3)nd numpy图像数组中的一个随机元素被拾取并更改为白色。然后周围的像素有99%的几率变为白色,而周围的像素有98%的几率变为白色,依此类推。我试图使用泛洪填充算法来实现这一点,但它给了我一个递归错误。有什么建议吗 import numpy as np import random def addHoles(a): randX = random.randint(0,299)
import numpy as np
import random
def addHoles(a):
randX = random.randint(0,299)
randY = random.randint(0,299)
floodfill(a,randX,randY,100)
def prob(n):
rand = random.randint(0,101)
if rand < n:
return True
else:
return False
def floodfill(a,x,y,n):
white = [255,255,255]
if(x == 299 or y == 299 or x == 0 or y == 0):
return
if(prob(n)):
a[x,y] = white
floodfill(a, x+1, y, n-1)
floodfill(a, x-1, y, n-1)
floodfill(a, x, y+1, n-1)
floodfill(a, x, y-1, n-1)
将numpy导入为np
随机输入
def添加孔(a):
randX=random.randint(0299)
randY=random.randint(0299)
漫灌(a、randX、randY、100)
def prob(n):
rand=random.randint(0101)
如果rand
你的if循环-如果(x=300)
你想使用=
吗?是的,我已经修复了这个问题,感谢你的提问,所以查看递归终止条件-递归仅在随机生成的int(x或y)为299时结束?这是您的预期行为吗?我希望在分析每个像素后停止算法,因此我认为在x或y到达某个边缘时停止算法是最好的解决方案,但是我不认为这是正确的,如果你的意图是在分析每个像素后停止——那么是的——你应该回到绘图板:)这种方法不起作用