Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
填充错误Python_Python_Image_Numpy_Flood Fill - Fatal编程技术网

填充错误Python

填充错误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)

我正在尝试用python制作一个算法,在这个算法中,(300300,3)nd numpy图像数组中的一个随机元素被拾取并更改为白色。然后周围的像素有99%的几率变为白色,而周围的像素有98%的几率变为白色,依此类推。我试图使用泛洪填充算法来实现这一点,但它给了我一个递归错误。有什么建议吗

    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到达某个边缘时停止算法是最好的解决方案,但是我不认为这是正确的,如果你的意图是在分析每个像素后停止——那么是的——你应该回到绘图板:)这种方法不起作用