我试图定义一个函数,它会在不使用PIL的情况下模糊python中的图像。每个像素的颜色需要与8个周围像素的颜色平均,即:在没有PIL的情况下在Python中模糊图像
o的值需要用x的所有值进行平均。
x x x
x o x
x x x
我有:
def blur():
global photo
pixels = Image.getPixels(photo)
for row in range(photo.height()):
for col in range(photo.width()):
red = pixels[row][col][0]
green = pixels[row][col][1]
blue = pixels[row][col][2]
Image.setPixels(photo,pixels)
凡Image.getPixels()返回在同一列表0和255之间的红色,绿色和蓝色值([0]返回红色,[1]返回绿色,[2]返回蓝色)以及由行和列表示的x和y值。我已经相当广泛地搜寻了正确方向的提示,但没有找到任何相关的内容。任何想法/帮助将不胜感激。谢谢!
听起来像你已经有了做什么的想法。平均每个像素与八个周围的邻居。有什么问题? – Kevin
我会说你需要创建一个图像的硬拷贝,这样你就可以用原始值(避开的技巧,例如,使用已经改变的值来进一步改变其他值)来操作副本。那么我建议你考虑使用切片的平均值。所有这些都要小心图像的边界(如果row = 1,我们不想使用像素[row-3],你不同意吗?希望它们有足够的提示朝正确的方向发展。 – Jblasco
我想我的问题是我根本不了解如何获得8个周围像素的值,我知道如何平均他们,一旦我获得这些值,但这就是我卡住的地方 – user2884456