MATLAB Answers


intensity transformation

Asked by blackcoffee on 12 Jun 2011

see.. basically, i have this image.that has certain intensity values.. low=a and y=b, where a and b are between 0 and 255. and i have this other image, whose lower and upper intensity values are c and d. i want to transform the second image's intensity range to that of the first image's. ie, create a (linear)mapping such that c maps on to a and d maps on to b... is there a matlab function to do this?? or can anyone just give me ideas on how to code this?? i want options other than imhist (that just helps u view the intensity range) and the imadjust(that works for intensity ranges between 0 and 1)


Log in to comment.

1 Answer

Answer by Image Analyst
on 12 Jun 2011
 Accepted Answer

Just change this to set your desired min and max:

Let f be your array. Then . . .

originalMinValue = double(min(min(f)))
originalMaxValue = double(max(max(f)))
originalRange = originalMaxValue - originalMinValue;
% Get a double image in the range -1 to +1
desiredMin = -1;
desiredMax = 1;
desiredRange = desiredMax - desiredMin;
normalized = desiredRange * (double(grayImage) -
originalMinValue) / originalRange + desiredMin; 

  1 Comment

thank you.

Log in to comment.

Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!