GENERAL
Default anyflo is launched in graphic mode over a supposed computer have a graphic card. The image displayed on the screen is called the current image. Other images in memory, can be built, they are referenced by their
identifier.
Anyflo launched with options gra = 0 and win = x, y, can turn on a station without graphic card, the current image and other images are all in memory Central.
Default displays are made in the current image, which can be processed and then stored on disk.
You can redefine the window by:
window interaction number (1)
Or: window number (1) = x1, y1, x2, y2
You can create other window:
Interactively: window interaction number (num)
Or: window number (num) = x1, y1, x2, y2
BUILDINGS
Generations
generate image.
generate image(id);
Copies the current image id in the image id.
generate(mouse)image;
Used to designate the mouse 2 opposite corners of the frame to be copied.
Saving
write image(id)name("nnn.eee")
Saves image id in file nnn.eee according to
extension eee.
Loading
read image(id)name("nnn.eee")
Reads image nnn.eee in image id according to
extension eee.
If id is snot present l´imageest is read in the current window,
must be href="displ.1.htm#image">displ image to display the image.
Interpolations
interpol(k) image(n1,n2,n3);
Computes image n3 = (1 - k) * n1 + k * n2
Writingin a memory image
It is possible writing simples pixels configurations
in memeory:
screen image(num);
clears image num
rectangle(x1,y1,x2,y2) image(num);
displays a rectangle in image num
disk(x,y,r) image(num);
displays disk in image num
...
Conversions
File env/convert.func contains 2 functions:
convert(nom1,ext1,im1,im2,nom2,ext2)
Convertit nom1[im1,im2].ext1 en nom2[im1,im2].ext2
Exemples:\n";
convert(\"A\",\"jpg\",1000,2000,\"B\",\"bmp\")
Converts A[1000,2000].jpg in B[1000,2000].bmp
convert(\"A\",\"jpg\",1000,2000,\"B\",\"raw\")
Converts A[1000,2000].jpg in B[1000,2000].raw
Si nom1=\"def\": default (change fonction convert()
raw(nom1,ext1,im1,im2,nom2)
Converts nom1[im1-im2].ext1 in nom2[im1-im2].raw format 1/2
DISPLAY
Display
displ image.
displ image(id);
Displays image id.
Clipping
displ back image(id);
Displays pixel id picture different from the background color.
CONVOLUTIONS
Smoothing
smooth image(id);
Convolutes in the current window the image id.
programmable arrays
smooth(k00,k01,...,k0n,k10,k11,...,knn);
Convolutes with matrix n*n (coefficients kijin the current window.
smooth(k00,k01,...,knn) normal;
Performs a convolution matrix n * n (kij coefficients divided by their sum) in current window
Exemple: smooth(1/16,1/8,1/16,1/8,1/4,1/8,1/16,1/8,1/16) image;
Convolution
image(xa1,ya1,xa2,ya2)image(xb1,yb1,xb2,yb2);
Convolutes window (xa1,ya1,xa2,ya2) in window
(xb1,yb1,xb2,yb2) of the current image.
image video
Convolutes the current image in a video sized window.
GEOMETRIC TRANSFORMATIONS
Commands such as:
generate image
read image
primitive image
allow building others images.
Des commandes telles que
rotx image
roty image
rotz image
smooth image
tran image
can process these images.
CONTINUITY
The problem of maps stitching
When a texture is assigned to a closed surface (for example a surface of revolution), a discontinuity in the texture appears at the junction (because the first and last points Due horizontal section, geometrically identical take on the color of the texture respectively to the left edge and right edge of the texture)
The discontinuity disappears if we make the texture "periodic", ie if its gauceh and right edges are identical.
The same problem occurs for a closed surface vertically (eg a torus generated by a rotating circle around it), then it will make the bottom edge and the top of the same texture edge
For maps of thinking, the texture is placed on a sphere encompassing the scene and deformations appear at the poles. The problem disappears if one applies the inverse déformatiuon texture
x period
rotx image ang(an);
Makes periodic current image in x, the angle measuring the opening year of the altered image (PI alters any image)
rotx image (num) ang (year);
Makes periodic num image x
Example:
rotx image(1) ang(PI/4);
Makes periodic image 1 in x by changing only the left and right quarter.
y period
roty image ang(an);
Makes periodic current image in y, the angle measuring the opening of the altered image (PI completely alters image)
Example:
roty image(id)ang(PI/2);
makes periodic image id in y,
by changing only the left and right quarter.
spherical distortion
sphere image;
Distorts the current image for the map (without deformation) on a sphere (useful for mapping reflection).
sphere image(num);
Makes spherical num picture.
COULEURSCOLOURS
Random
alea image
Dilatation
dila image
Rendre une texture "floue"Making a texture fuzzy
6-3-1 Principle
texture vol(num_vol)=num_texture,type,r,v,b,k;
Sets the volume num_vol texture num_texture number
If type = 2: 2D Maps
(r, g, b) measuring the influence of color on the volume of texture
If k = 1: The pixels of the texture that are the color of the back will not be displayed.
By providing a random distribution of pixels of the color of the back on the texture is rendered donation thereof "transparent" to the display
alea back image coe(c);
Displays random pixels colour of trhe background.
(between 0 and 1)
alea anc back image coe(c);
reproducible noise
alex image coe(c);
Displays pixel color back to vertical by changing the proportion c of the image up on the edges left and right and then descending towards the center.
alex anc image coe;
reproductible noise
aley image coe(c);
Displays pixel color back to horizontal by changing the proportion c of the image left on the edges up and down and then descending towards the center
aley anc image coe;
reproductible noise
thresholding
adjust(r1,v1,b1,r2,v2,b2,rs,vs,bs) image(id);
up and down thresholds the image id:
If k=ks k=k2
adjust(l1,l2,ls) luminance image(id);
up and down thresholds the image id by
computing its luminance:
If l
MORPHINGS
Principe
Un algorithme de morphing consiste à définir des zones d´influence sur
l´image, chaque pixel étant déplacé en composant ces influences.
Pratiquement on prent une série de couples de segments auquels sont
affectés des coefficients d´influence
Morphing dans anyflo
morphing image(n1) line(w1) image(n2) line(w2) coe(a,b,c);
Réalise un morphing de l´image n1 a l´image n2
w1=x1,y1,x2,y2,... sont des segments définies sur l´image n1
w2=x1,y1,x2,y2,... sont des segments définies sur l´image n2
Remarques:
1) Il doit y avoir autant de segments dans n1 et n2
2) Si ´coe(a,b,p)´ est présent apres un ´segment(u)´, les coefficients
(a, b, p) permettent de moduler l´influence du segment u par la formule:
[(long^p)/(a+dist)]^b
avec long = longueur du segment
et dist = distance du pixel au segment
Par défaut on a: a = 0, b = 0 et p = 1
Si a=0: Les pixels sur le segment sont invariants
Si p et b > 1: Augmente l´influence du segment
Si p et b < 1: Diminue l´influence du segment
3) Si n1 est absent (ou même si image est absent)l´image origine
est l´image courante
4) Si n2 est absent (ou même si image est absent)l´image résultat
est l´image courante
5) Si image(n1) et image(n2) sont absents, le morphing est réaslisé de
l´image courante dans elle-même
Exemples:
1) morphing line(-200,0,200,0) line(-200,100,200,100);
Réalise une
translation verticale de l´image courante
2) morphing image(1) line(0,0,100,0) image(2) line(0,0,0,-100);
Réalise une rotation de l´image 1 dans l´image 2
morphing image line frame
morphing image(n1) line(w1) image(n2) image(w2) frame(x1,y1,x2,y2);
Réalise un morphing de l´image n1 à l´image n2, en gardant les bords
du frame (x1,y1,x2,y2) invariants
Remarques:
1) Si (x1,y1,x2,y2) est absent il est pris égal à la fenêtre courante
2) ´morphing image line image line coe frame´ existe
Morphing interactif
(Voir le mode ´palette´)
PALETTE
Command palette switches to interact with the mouse, a menu (right click) allows process the current image.
This palette is programmable, the menu can be arbitrarily enriched.
geometric interpretation
adjust(cr,cv,cb) vol(id1) image(id2);
Z points of volume id1are changed according to the formula:
z -= (cr * r + cv * v + cb * b) / 3
with (r,v,b) = average color of the id2 in a window
containing the neighbors of this point.
adjust vol image col;
Each point takes the color of the image
adjust vol(id1) image (id22) hsv
Z points n1 are mofifiés volume using the formula:
z -= (ct * t + cs * s + cv * v) / 3
with (t,s,v) = average hue, saturation, value) of the image in a window containing the neighbors of this point.
adjust vol image limit;
The volume is adjusted in the image window containing different pixels of the back
precision flight picture adjust (eps);
The comparison is done with an approximation of eps.
adjust vertex (s) image vol;
Only points s numbers will be treated
adjust vertex(s) vol image;
Seuls les points numéros s seront traîtés
Example:
adjust(100,50,30) vertex[100,200] vol(1) image
adjust("x",crx,cvx,cbx,"y",cry,cvy,cby,"z",crz,cvz,cbz)vol image;
The (x,y,z) of points of volume are changed according to the formula:
x -= (crx * r + cvx * v + cbx * b) / 3
y -= (cry * r + cvy * v + cby * b) / 3
z -= (crz * r + cvz * v + cbz * b) / 3
adjust("toto") vol image;
The (x,y,z) of points of volume are changed by the user function name foo where you can use the following commands:
p=poi: Recovers space coordinates point displayed
k=col: Récupere la couleur (r,v,b) du point écran
t=hsv(k): Recovers color (r, g, b) screen item
p=function(p,k): Calculate the new position
poi(p): Validate this position
adjust exec(c,v1,v2,...) vol image;
The user function adjust_vol_image_utilisateur will be executed with the code c and values v1, v2, ... It will be necessary to modify this function in the file and re-linked utilb.c anyflo.
(see ´manuel.applic.htm´).
Notes:
(cr,cv,cb) = (100,100,100) by default
This function allows to "mount" a relief from Due 2D image
All previous forms are combinable
Practically:
Build an image (synthesized or digitized)
Build a volume (preferably a fine grid view Front)
Summon adjust image vol
6) Examples:
adjust(100,50,-50) vol(1) image
adjust(100,70,40) vol(1) col limit vertex[12,120] image(1)
dynamic interpretation
field image(n1)=n2,kr,kv,kb,dx,dy,dz;
In animation (see ´animate´), if volume id (or vertices) has a mass, each vertex will undergo a field of force
direction (dx,dy,dz) and amplitude (kr*r,kj*v,kb*b), with (r,v,b) = color image corresponding to the pixel
The volume must be isomorphic to a grid(grid, ball, rev,
geod, filet, ...)
Generates a field from an image. If it is animated, the field is variable and therefore the animation of objects placed in this field is dynamic
HIGH DEFINITION
Launch anyflo wwith option:
anyflo hau=2
The picture in main memory is 4 times the video size.
When writeed, this image will be convolution to video size.
You can specify the size of the anti-aliased image (dimx, dimy) and d'antialiasage factor k:
anyflo x=dimx y=dimy gra=0 mem=1 hau=k
See also