Nesting Calls to Image Arithmetic Functions

You can use the image arithmetic functions in combination to perform a series of operations. For example, to calculate the average of two images, C = (A+B)/2. You could enter

I = imread ('rice.png');

I2 = imread ('cameraman.tif');

K = imdivide (imadd(I,I2), 2); % not recommended


When used with uint8 or uint16 data, each arithmetic function rounds and saturates its result before passing it on to the next operation. This can significantly reduce the precision of the calculation. A better way to perform this calculation is to use the imlincomb function. imlincomb performs all the arithmetic operations in the linear combination in double precision and only rounds and saturates the final result.

K = imlincomb(.5,I,.5,I2); % recommended