MELG (1I)     version 2.3, Inrimage 4.6.9     March 2022

User Intro    Prog Intro    Liste des commandes    Liste des manuels
Table of Contents


NAME

melg - mélange de 2 images avec test sur les valeurs de pixels

SYNOPSIS

melg [image-in] [-ixi nn] [-iyi nn] [-izi nn] [-ivi nn] [image-out] [-ixo nn] [-iyo nn] [-izo nn] [-ivo nn] [-idx nn] [-idy nn] [-idz nn] [-idv nn] [[-tr] | [-rgi in_range] [-rgo out_range]] [options de format]
..

DESCRIPTION

melg remplace les pixels de image-out appartenant à un intervalle de valeurs, par les pixels d'une fenêtre de image-in, appartenant à un autre intervalle de valeurs. On se ramène à une simple copie si aucun intervalle n'est donné.
-ixi, -iyi, -izi, -ivi
Coordonnées (comptées à partir de 1) du 1e élément de la fenêtre dans image-in (composante ivi du pixel (ixi,iyi,izi). Valeurs de 1 à NDIMX, 1 à NDIMY, 1 à NDIMZ et 1 à NDIMV, respectivement.
-ixo, -iyo, -izo, -ivo
Coordonnées (comptées à partir de 1) du 1e élément de la fenêtre dans image-out (valeurs par défaut: 1).
-idx, -idy, -idz, -idv
Taille de la fenêtre (valeurs par défaut= maximum compatible avec les autres paramètres)
-tr
transparence simple : seuls les pixels de image-in dont toutes les composantes sont strictement supérieures à 0 sont copiées. Il n'y a pas de contrainte sur les pixels de image-out.
Cette option est incompatible avec -rgi et -rgo.
-rgi in_range
Définit l'intervalle de valeurs auquel doivent appartenir ou non les composantes sélectionnées (par -ivi,-idv) des pixels de image-in pour être copiés dans image-out. Par défaut, tous les pixels sont copiés.
Voir plus loin pour la définition des intervalles.
Cette option est incompatible avec -tr (-tr est équivalent à -rgi "0[").
-rgo out_range
Définit l'intervalle de valeurs auquel doivent appartenir ou non les composantes sélectionnées (par -ivo,-idv) des pixels de image-out pour pouvoir être remplacés par des pixels de image-out. Par défaut, n'importe quel pixel peut être remplacé.
Voir plus loin pour la définition des intervalles.
Cette option est incompatible avec -tr.

image-in et image-out devront avoir le même codage. Si image-out n'existe pas on donnera ses dimensions. Cette operation nécessitant une lecture de l'image de sortie, si celle-ci n'existe pas elle est considérée comme étant nulle.

Si l'argument image-in est absent ou égal à '-' on prendra stdin.
Si l'argument image-out est absent on prendra stdout.

Définition des intervalles
Les intervalles utilisés par -rgi et -rgo sont de la forme pix1,pix2, avec pixi=v1/.../vn pour des pixels à n composantes v1...vn. Les valeurs vi sont données en entier (format hexadécimal si commençant par 0x, décimal sinon) pour des images codées sur 1 a' 8 bits, en flottant dans tous les autres cas.
Un intervalle peut être ouvert ou fermé à chaque extrémité. Pour le préciser on utilise les caractères [ et ] (intervalle fermé par défaut). Les expressions pix1,pix2 et [pix1,pix2] sont équivalentes.
Si l'on veut sélectionner les pixels hors de l'intervalle, on ajoutera le caractère ~ devant la définition. Par exemple un intervalle de la forme "~[10,20]" sélectionnera les pixels dont l'une au moins des composantes est strictement inférieure à 10 ou strictement supérieure à 20.
On n'est pas obligé de donner toutes les composantes des pixels. Les composantes manquantes sont obtenues par répétition de la dernière connue. Par exemple -rgi ']0' suffit pour dire qu'on ne prend que les pixels dont toutes les composantes sont >0.
Note: l'utilisation des options -tr, -rgi ou -rgo ne donnera des résultats intéressants que si les images sont bien adaptées. Le choix de l'intervalle peut s'avérer délicat pour des images en couleur.

EXEMPLES

Dans les exemples suivants, on suppose que in.inr est une image couleur 256x256 (-x 256 -y 256 -v 3) et out.inr une image couleur 512x512 (-x 512 -y 512 -v 3)
melg in.inr out.inr -ixo 129 -iyo 129
incruste in.inr au centre de out.inr.

melg in.inr out.inr -tr
incruste les pixels non nuls de in.inr dans le coin haut gauche de out.inr

melg in.inr out.inr -rgi "~0,0/0/255"
incruste les pixels non strictement bleus de in.inr dans out.inr

melg in.inr out.inr -idv 1 -ivi 2 -ivo 2
remplace la composante verte de out.inr par celle de in.inr.

SEE ALSO

extg(1i) .
Voir Inrimage(1i) pour la description des options générales.