我有一条非线性曲线(使用双三次插值;见下文),它描述了强度值从目标图像到参考图像值的变换。 (如果我这里没有使用正确的术语,请道歉)。
将此曲线应用于目标图像的最佳方法是什么?
我基本上是寻找实现这一目标的最快方法;
for i = 1:length(curve)
I(I==i) = curve(i);
end
这很慢。
答案 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);