用曲线非线性变换矩阵(图像)中的值

时间:2015-01-10 19:26:20

标签: matlab image-processing nonlinear-functions

我有一条非线性曲线(使用双三次插值;见下文),它描述了强度值从目标图像到参考图像值的变换。 (如果我这里没有使用正确的术语,请道歉)。

将此曲线应用于目标图像的最佳方法是什么?

我基本上是寻找实现这一目标的最快方法;

for i = 1:length(curve)
    I(I==i) = curve(i);
end

这很慢。

Curve

1 个答案:

答案 0 :(得分:1)

您的曲线函数作为查找表,执行查找表的最简单方法是:

lookuptable=[ 9 8 7 6 5 4 3 2 1 0 ];
I=[ 1 3 4; 
     5 3 8];

Itransformed=lookuptable(I)

请注意,查找表的索引由像素值访问。 因此,如果像素值范围是0-255,首先应该使用大小为256的lookuptable,第二个记住要补偿matlab索引为1:256的事实,所以使用:

Itransformed=lookuptable(I-1);