我已经生成了一个函数来对图像应用分段线性变换。基于这个功能,我不确定它是否正确执行。有时整个图像显示为白色,所有像素列为255.其他时间显示输出图像,但结果不同。由于结果不同,我相信我的功能存在问题。该函数的代码是在这里:MATLAB分段线性变换函数
function T = piecewise_transform(f,n,r1,s1,r2,s2,r3,s3)
% breakpoints: (0,0),(r1,s2),(r2,s2),(r3,s3),((L-1),(L-1))
% to get alpha, beta, etc, don't suppress echoing (remove ;)
% find the parameters of each line
L = 2^n;
% s = a*r+b
a1 = ((s1-0)/(r1-0));
b1 = ((s1/r1));
a2 = ((s2-s1)/(r2-r1));
b2 = ((s1*r2)-(s2*r1)/(r2-r1));
a3 = ((s3-s2)/(r3-r2));
b3 = (((s3-s2)/(r3-r2))*(s2/r2));
a4 = (((L-1)-s3)/((L-1)-r3));
b4 = (((L-1)-s3)/((L-1)-r3)*(s3/r3));
% put all parameters in two vectors
A = [a1,a2,a3,a4]
B = [b1,b2,b3,b4]
[row,col] = size(f);
T = f;
for