function y = imstretch(x, xa, xb, ya, yb) L = 256; if nargin == 1, xa = 3*L/8-1; xb = 5*L/8-1; ya = 3*L/16-1; yb = 13*L/16-1; elseif nargin < 5 return end y = zeros(size(x)); x = double(x); % I k = x<=xa; y(k) = ya/xa*x(k); % II k = (x>xa)&(x<=xb); y(k) = (yb - ya)/(xb - xa)*(x(k) - xa) + ya; % III k = (x>xb); y(k) = (L-1 - yb)/(L-1 - xb)*(x(k) - xb) + yb; y = round(y); %y = int8(round(y));