Python 名称错误:名称';宽度';没有定义
我正试图使用以下代码在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
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。谢谢