No BSD License  

Highlights from
Image Inversion

image thumbnail
from Image Inversion by Stead Kiger
InvertIm inverts an image array im in the sense of reversing its grayscale (NOT matrix inversion)

TestInvertIm.m
% TestInvertIm
fmt='%s\t%6i\tInverse\t%6i\n';

cls='uint8';
fprintf('\n\n\n%s\n',cls)
x=uint8(0);
fprintf(fmt,cls,x,InvertIm(x))

x=uint8(128);
fprintf(fmt,cls,x,InvertIm(x))

x=uint8(255);
fprintf(fmt,cls,x,InvertIm(x))


cls='uint16';
fprintf('\n\n\n%s\n',cls)
x=uint16(0);
fprintf(fmt,cls,x,InvertIm(x))

x=uint16(intmax('uint16')/2);
fprintf(fmt,cls,x,InvertIm(x))

x=uint16(intmax('uint16'));
fprintf(fmt,cls,x,InvertIm(x))


cls='uint16 using 12 bits';
fprintf('\n\n\n%s\n',cls)
x=uint16(0);
fprintf(fmt,cls,x,InvertIm(x,12))

x=uint16(255);
fprintf(fmt,cls,x,InvertIm(x,12))

x=uint16(4095);
fprintf(fmt,cls,x,InvertIm(x,12))

x=uint16(intmax('uint16')/2);
fprintf(fmt,cls,x,InvertIm(x,12))

x=uint16(intmax('uint16'));
fprintf(fmt,cls,x,InvertIm(x,12))


cls='int8';
fprintf('\n\n\n%s\n',cls)
x=intmin('int8');
fprintf(fmt,cls,x,InvertIm(x))

x=int8(0);
fprintf(fmt,cls,x,InvertIm(x))

x=int8(128/2);
fprintf(fmt,cls,x,InvertIm(x))

x=int8(128);
fprintf(fmt,cls,x,InvertIm(x))


cls='int16';
fprintf('\n\n\n%s\n',cls)
x=intmin('int16');
fprintf(fmt,cls,x,InvertIm(x))

x=-int16(intmax('int16')/2);
fprintf(fmt,cls,x,InvertIm(x))

x=int16(0);
fprintf(fmt,cls,x,InvertIm(x))

x=int16(intmax('int16')/2);
fprintf(fmt,cls,x,InvertIm(x))

x=int16(intmax('int16'));
fprintf(fmt,cls,x,InvertIm(x))



cls='int16 using InvertIm lowerlimit 0';
fprintf('\n\n\n%s\n',cls)
x=intmin('int16');
fprintf(fmt,cls,x,InvertIm(x,[],0))

x=-int16(intmax('int16')/2);
fprintf(fmt,cls,x,InvertIm(x,[],0))

x=int16(0);
fprintf(fmt,cls,x,InvertIm(x,[],0))

x=int16(intmax('int16')/2);
fprintf(fmt,cls,x,InvertIm(x,[],0))

x=int16(intmax('int16'));
fprintf(fmt,cls,x,InvertIm(x,[],0))



cls='Double';
fmt='%s\t%5.3f\tInverse\t%5.3f\n';
fprintf('\n\n\n%s\n',cls)
x=0;
fprintf(fmt,cls,x,InvertIm(x))

x=0.5;
fprintf(fmt,cls,x,InvertIm(x))

x=1;
fprintf(fmt,cls,x,InvertIm(x))

fmt='%s\t%5.3f %5.3f %5.3f\tInverse\t%5.3f %5.3f %5.3f\n';
x=[0 128 255];
fprintf(fmt,cls,x,InvertIm(x))

fprintf(fmt,cls,x,InvertIm(x,[],[],129))

Contact us at files@mathworks.com