xfdxz 发表于 2007-1-9 11:20

请教如何改变一组数据的动态范围

现在有一组数据如
I02 = ;
我希望将其范围重新规定在之间
请教各位该如何做?

[ 本帖最后由 eight 于 2007-1-9 11:26 编辑 ]

eight 发表于 2007-1-9 11:26

原帖由 xfdxz 于 2007-1-9 11:20 发表
现在有一组数据如
I02 = ;
我希望将其范围重新规定在之间
请教各位该如何做?


作规范化,最简单的就是线性拉伸

xfdxz 发表于 2007-1-9 13:13

回复 #2 eight 的帖子

如果最小值是0我知道可以用
255*I0/max(I0)做线形拉伸
但是不知道怎样让最小值取到123?

eight 发表于 2007-1-9 13:42

原帖由 xfdxz 于 2007-1-9 13:13 发表
如果最小值是0我知道可以用
255*I0/max(I0)做线形拉伸
但是不知道怎样让最小值取到123?


那说明你还没有完全理解线性拉伸的含义,既然已经知道是线性函数,并且知道两个端点,这个问题实际上是二元方程组求参数问题:

假设线性拉伸函数为: y = ax + b ,变换前是x,变换后是y,
则利用两个端点得到两个方程: y_end = a * x_end + b
                                             y_start = a * x_start + b

求解后便可以得到参数a、b的值。上述的“最小值是0”只不过是当 x_start = y_start = 0 时得到 b = 0 的特例

xfdxz 发表于 2007-1-9 14:26

回复 #4 eight 的帖子

这回明白了
谢谢eight老师的耐心指点:@)
页: [1]
查看完整版本: 请教如何改变一组数据的动态范围