【发布时间】:2015-08-13 15:25:42
【问题描述】:
我有一系列图像作为我正在尝试准备发布的原始数据。这些图像有一系列随机的白色斑点,我想用周围一些像素的平均值替换它们。
我无法发布图片,但以下代码应生成一个与我正在尝试纠正的问题近似的 PNG:
import numpy as np
from scipy.misc import imsave
random_array = np.random.random_sample((512,512))
random_array[random_array < 0.999] *= 0.25
imsave('white_specs.png', random_array)
虽然这应该会生成一个图像,其原始数据中存在的斑点分布相似,但我的图像不具有强度均匀的斑点,并且一些斑点的大小不止一个像素(尽管它们都不超过 2)。此外,我的图像上有一些我不想想要更改的点在数据采集过程中有意为了清晰显示而饱和:这些点大约为 10 像素直径。
原则上,我可以写一些东西来寻找值超过某个阈值的像素,然后将它们与最近邻居的平均值进行检查。然而,我认为我最终想要实现的并不是图像处理中的一个不寻常的操作,我非常怀疑有一些 SciPy 功能可以做到这一点,而无需重新发明轮子。我的问题是我对图像处理的形式方面/词汇不够熟悉,无法真正知道我应该寻找什么。有人能指出我正确的方向吗?
【问题讨论】:
标签: python image-processing numpy scipy