Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/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 Processing_Python Imaging Library_Imagefilter - Fatal编程技术网

Python 名称错误:名称';宽度';没有定义

Python 名称错误:名称';宽度';没有定义,python,image-processing,python-imaging-library,imagefilter,Python,Image Processing,Python Imaging Library,Imagefilter,我正试图使用以下代码在python中实现中值过滤器 from PIL import Image path = "gaussian.png" # Your image path img = Image.open(path) width, height = Image.size members = [(0,0)] * 9 newimg = Image.new("RGB",(width,height),"white") for i in ran

我正试图使用以下代码在python中实现中值过滤器

    from PIL import Image
    path = "gaussian.png" # Your image path 
    img = Image.open(path)
    width, height = Image.size
    members = [(0,0)] * 9
    newimg = Image.new("RGB",(width,height),"white")
    for i in range(1,width-1):
       for j in range(1,height-1):
             members[0] = img.getpixel((i-1,j-1))
             members[1] = img.getpixel((i-1,j))
             members[2] = img.getpixel((i-1,j+1))
             members[3] = img.getpixel((i,j-1))
             members[4] = img.getpixel((i,j))
             members[5] = img.getpixel((i,j+1))
             members[6] = img.getpixel((i+1,j-1))
             members[7] = img.getpixel((i+1,j))
             members[8] = img.getpixel((i+1,j+1))
             members.sort()
             newimg.putpixel((i,j),(members[4]))

但是,我不断收到一个错误,说NameError:name'width'没有定义

高度和宽度都没有定义

您可以通过执行以下操作获得图像的高度和宽度:

width, height = img.size

我希望这是有用的

您需要设置正在阅读的图像的图像大小

替换

width, height = Image.size

width, height = img.size

请在这里找到工作代码。可能会有帮助 从PIL导入图像

def main():
    path = "gaussian.png" # Your image path 
    img = Image.open(path)
    width, height = img.size
    print(width, height)
    members = [(0,0)] * 9
    newimg = Image.new("RGB",(width,height),"white")
    for i in range(1,width-1):
        for j in range(1,height-1):
            members[0] = img.getpixel((i-1,j-1))
            members[1] = img.getpixel((i-1,j))
            members[2] = img.getpixel((i-1,j+1))
            members[3] = img.getpixel((i,j-1))
            members[4] = img.getpixel((i,j))
            members[5] = img.getpixel((i,j+1))
            members[6] = img.getpixel((i+1,j-1))
            members[7] = img.getpixel((i+1,j))
            members[8] = img.getpixel((i+1,j+1))
            members.sort()
            newimg.putpixel((i,j),(members[4]))

if __name__ == '__main__':
main()

您需要在“newimg=Image.new”(“RGB”,(宽度,高度),“white”)”中设置宽度和高度的值,因为它没有定义。。。都不是高度。难道你从来没有想过你可能应该检查你是否使用了一个未定义的变量“宽度”?我确信在错误信息中也有一个行号。。。来吧错误信息非常清楚。您试图使用不存在的变量。Python怎么知道宽度和高度应该取什么值呢?@Rakesh我试过用width=100 height=100来设置它,但它说的是无效语法,我不知道你会怎么设置它。我刚才试过,IDLE说PIL image没有“size”属性,我的错,参考Rakesh的答案-应该是img.sizeYou欢迎。如果它解决了您的问题,请接受ans。谢谢