以统一的方式缩放值?

问题描述 投票:0回答:1

我有一个数字数组,我将其转换为百分比(值在[0 .. 1]范围内)。然后我将其转换为灰色。

示例:

 percentage = nums/float(nums.max())

问题是,大多数值都是小数,几个大数。这将导致大部分%约为0.01。结果是这转换为~~白色,在绘制时变得不可见。顺便说一句,我必须保留所有值。

我试图缩小异常值的范围,但是即使这样也无济于事;(

 colors[abs(colors - np.mean(colors)) > 2 * np.std(colors)] = colors.mean() + 2 * np.std(colors)
 c = colors/float(colors.max()) #convert to percentage

这是将异常值缩小到均值的2std。

我认为我需要一种“逐步”功能,该功能将值进行分组以使它们均匀缩放在0 .. 1的范围内,以便每个点都可以看到可见的颜色,但仍保持一定的对比度,以便区分值。

PS>可能是范围必须从0.1到1!

python numpy scale uniform
1个回答
0
投票

考虑通常的照片编辑,这是一种降低某些价值的解决方案吗?然后,常规排序可能会有所帮助,例如

highlights=np.sort(nums)[-xyz:]

只需将这些值设置为下一个较小的值即可设置此白色。

当然,这可能是对数据的严格处理,但这就是您在调整颜色曲线时通常在GIMP或类似的照片处理软件中所做的事情。因此,如果这些离群值就像不稳定的像素,并且您实际上对中间的灰度值感兴趣,那么这可能会有所帮助。

希望我对你的兴趣不错,lepakk

© www.soinside.com 2019 - 2024. All rights reserved.