home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Datafile PD-CD 5
/
DATAFILE_PDCD5.iso
/
utilities
/
a
/
aim
/
!aim
/
macros
/
demtable
< prev
next >
Wrap
Text File
|
1991-03-26
|
4KB
|
160 lines
* @demtable demonstrates the table command in (normal) display mode 1.
* table: transforms a grey value image using a look-up table.
*
* The grey value g from the input image (first parameter) is used
* as table address, the content found there becomes the grey value
* h in the output image (second parameter).
don 1
shad a
copy a b 1 1 0 1 1 0
*transposed
* Several tables can be generated (third parameter, t):
* t=0: (h/255)=(g/255)**(j/k);
table a d 0 1 2
* j/k=1/2, power, square root
add b d
th d d 1 127
table a d 0 2 1
* j/k=2/1, power, square
add b d
th d d 1 127
* t=0: (h/255)=g**(j/k), for j/k<0 different scaling: g instead of g/255;
table a d 0 -1 1
* j/k=-1/1, neg.power
add b d
th d d 1 127
* t=2: (h/255)=(k/g)**j;
table a d 2 1 1
* 255/g, reciprocal
add b d
th d d 1 127
* t=1: (h/255)=(j/k)**((g/255)-1); j=0 -> j/k=e;
table a d 1 10 1
* exponential, base 10
add b d
th d d 1 127
table a d 1 0 1
* exponential, base e
add b d
th d d 1 127
* t=-1: (h/255)-1=log(g/255)/log(j/k);
table a d -1 10 1 1
* logarithm, base 10
add b d
th d d 1 127
table a d -1 0 1 1
* logarithm, base e
add b d
th d d 1 127
* t=3: pi2 (h-127-j)/127=atan((k/100) pi2 (g-127)/128 - tan(pi2 j/127)); pi2=pi/2;
* t=3: h =atan((k/100) g - (k/100) gj );
table a d 3 0 100 1
* arctangent S-curve
add b d
th d d 1 127
* t=-3: pi2 (h-127)/128=(tan(pi2 (g-127-j)/127)+tan(pi2 j/127)) /(k/100); pi2=pi/2;
* t=-3: h =(tan (g -j) + (k/100) gj ) /(k/100);
table a d -3 0 100 1
* tangent inverse S-curve
add b d
th d d 1 127
* t=4: g=(x+8)+16*(y+8)->h=phi*16/2pi+16*r;
cdiv a 16 c *steps x-axis 0 1 2 ... 15
cdiv b 16 d
cmul d 16 *steps y-axis 0 16 32 .. 240
sub d c 15 d *0+15 0+14 .. 0+0, 16+15 .. 16+0 ,, 240+15 .. 240+0
table d c 4
cdiv c 16 d
cmul d 16
sub c d 0 c
* cartesian to polar
add d c
* t=-4: inverse of t=4;
table c d -4
* polar to cartesian
cdiv d 16 c
cmul c 16
sub d c 0 d
* t=5: (h-127)/127=cos((g/255)**(j/100) *k*2pi);
* t=5: h =cos( g**j *k*2pi);
table a d 5 100 1
* cosine
add b d
th d d 1 127
table a d 5 200 5
* chirped cosine
add b d
th d d 1 127
* t=-5: (h-127)/127=sin((g/255)**(j/100) *k*2pi);
* t=-5: h =sin( g**j *k*2pi);
table a d -5 100 1 1
* sine
add b d
th d d 1 127
table a d -5 200 5 1
* chirped sine
add b d
th d d 1 127
* t=6: 8 thresholds j,j+k,,j+7k;
table a d 6 30 20 1
bd d 1 * thr 30
bd d 2 * thr 50
bd d 3 * thr 70
bd d 4 * thr 90
bd d 5 * thr 110
bd d 6 * thr 130
bd d 7 * thr 150
bd d 8 * thr 170
* t=-6: j=lower, k=higher threshold;
table a d -6 85 170 1
add b d
th d d 1 127
* t=7: (h-127)/127=-log( (254/g)-1 )/log(253);
table a c 7
* symmetric logarithm, log( (254/g)-1 ) = log(254-g)-log(g);
add b c d
th d d 1 127
* t=-7: (254/h)-1= exp( -((g-127)/127) log(253) );
table c d -7
* inverse of symmetric logarithm
add b d
th d d 1 127
* t=8: (h/255)=( a**(g/255) + a**(-g/255) -2) / (a+1/a-2); a=j/k;
table a d 8 0 1
* cosinus hyperbolicus -1, base e
add b d
th d d 1 127
* t=-8: (h/255)=log( (g/255) +1 + sqrt( ((g/255) +1)**2-1) ))/log(j/k);
table a d -8 0 1
* inverse of cosh-1, base e
add b d
th d d 1 127
* Fourth para.(r) reflects table: r=1: normal, default;
table a d 0 2 1 1 *square
add b d
th d d 1 127
* r=2: g->-g;
table a d 0 2 1 2
add b d
th d d 1 127
* r=3: g->-g, h->-h;
table a d 0 2 1 3
add b d
th d d 1 127
* r=4: h->-h;
table a d 0 2 1 4
add b d
th d d 1 127
* r=5: g->|g|;
table a d 0 2 1 5
add b d
th d d 1 127
* r=6: g->|g|, h-> |h|*sgn(g),
table a d 0 2 1 6
add b d
th d d 1 127
* r<0: h->h+r[mod256].
table a d 0 2 1 -16
add b d
th d d 1 127