我正在从事一个图像处理项目,我是 Python 和使用 PIL 的初学者。任何帮助,将不胜感激。
所以,我正在做的是,我有一张有星星和噪音的太空图像。我想要做的是只保留较亮的像素并过滤掉暗淡的像素。现在,这是我尝试消除噪音的基本步骤。在研究图像数据后,我发现 205 的值很可能是我想要将阈值保持在的值。
所以我在代码中所做的是,打开图像并将包含 205 的像素值更改为黑色。这是相同的代码:
from PIL import Image
im = Image.open('nuvfits1.png')
pixelMap = im.load()
img = Image.new( im.mode, im.size)
pixelsNew = im.load()
for i in range(img.size[0]):
for j in range(img.size[1]):
if 205 in pixelMap[i,j]:
pixelMap[i,j] = (0,0,0,255)
pixelsNew[i,j] = pixelMap[i,j]
im.close()
img.show()
img.save("out.tif")
img.close()
问题是,生成的图像只是一个普通的白色屏幕。我做错了什么?
原文由 Manshi Sanghai 发布,翻译遵循 CC BY-SA 4.0 许可协议
if 块后面应该跟一个 else 块,以便不符合您的标准的“正常”像素保留其原始值。
上面的代码给了我以下结果:
输入图像
输出图像