FILLC (1I)     version 2.2, Inrimage 4.6.9     March 2022

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


NAME

fillc - remplissage de contours dans une image

SYNOPSIS

fillc fichier_contours [image-out] [-af offset[,coef] [ -fv fill_value | [-ff|-invff] image] [-add] [-xoff n] [-yoff n] [-izo n][-nz n][-ivo n][-nv n] [-pos | -neg] [-s min[,max]] [-e env] [-l cont-list]

DESCRIPTION

fillc remplit, dans l'image image-out codée sur 8 bits, l'intérieur des contours donnés par le fichier fichier_contours ( produit par anac). Si le fichier image-out n'existe pas il faut donner ses dimensions (options -x ndimx -y ndimy-z ndimz -v ndimv).
Si image-out est absent ou égal à -, on écrit sur stdout. Dans ce cas il faut aussi donner les dimensions de l'image.
Le fichier de contours doit contenir tous les points, et non une approximation polygonale.

Rappelons que anac construit les contours d'objets pleins. Par exemple, si l'on considère une image avec un trait blanc dessinant un contour fermé, anac détectera en fait 2 contours : l'un, positif, correspondant à l'extérieur du trait, et l'autre, négatif, correspondant à l'intérieur du trait.

-pos
Ne prendre en compte que les contours positifs.
-neg
Ne prendre en compte que les contours négatifs.
-af, -fv, -ff, -invff
Sélectionnent le mode de remplissage des contours. Elles sont mutuellement exclusives :
-af offset,coef : remplissage de chaque contour avec une valeur calculée à partir de son numéro, selon la formule :
(offset + ((coef * num_cont) % (256 - offset))). Cette valeur est égale au numéro de contour, modulo 256 si offset vaut 0 et coef 1. Le paramètre coef donne l'espacement entre les valeurs, et offset permet d'obtenir des valeurs supérieures à un seuil.
-fv fill_value définit une valeur de remplissage constante des contours positifs (les contour négatifs sont remplis avec des zéros). Donner une valeur négative revient à donner l'option -af 0,1. Dans le cas d'une image vectorielle, on pourra donner les valeurs des N premières composantes en les séparant par /; les composantes manquantes sont obtenues par répétition de la dernière composante donnée. Par exemple -fv 255/0 pour le remplissage en rouge d'une image en couleur.
-ff image donne un fichier image, qui doit être de même format que l'image résultat, et dont les pixels seront utilisés pour le remplissage des contours positifs. L'intérieur des contours négatifs conservera les valeurs initiales de l'image résultat (option -add ) ou sera rempli par des zéros.
-invff image : comportement similare au cas prcédent, en inversant le rôle des contours positifs et négatifs.
-add
On ne détruit pas le contenu précédent de l'image résultat.
-xoff, -yoff
Définissent la translation à appliquer aux contours dans l'image résultat et dans l'image de remplissage (si option -ff). Les valeurs peuvent être positives ou négatives (nulles par défaut). L'unité en X est le pixel (nombre de vecteurs dans le cas d'images vectorielles).
-izo
définit le numéro du premier plan à remplir (compté à partir de 1). Les offsets (-xoff, -yoff) sont alors relatifs à ce plan. La valeur par défaut est 1. Si l'option est présente, un contour ne peut déborder d'un plan. Si les options -izo et -nz sont absentes, la limite de remplissage est l'image tout entière.
-nz
Nombre de plans consécutifs sur lesquels répéter le remplissage. La valeur par défaut est 1. Si cette option est présente sans -izo, alors on force implicitement -izo 1.
-ivo
numéro de la première composante de chaque pixel affectée par le remplissage (1 par défaut).
-nv
nombre de composantes vectorielles consécutives à modifier.
-s
Ne prendre en compte que les contours dont la surface est comprise entre les 2 limites smin,smax. La surface est le nombre de pixels contenus par le contour.
-e
Sélection par enveloppe. Si env est positif ou nul, on ne prend en compte que les contours dont le numéro d'enveloppe est env, c'est-à-dire qui sont directement contenus dans le contour env (si env est nul, on ne garde que les contours les plus extérieurs).
Si env est négatif on ne garde que les contours qui ont une enveloppe.
-l
Permet de sélectionner une liste de numéros de contours, donnés dans l'ordre croissant (numérotation à partir de 1), par exemple -l 1,3,5-10,11.

EXEMPLES

Soient 2 images de même taille, im0 en niveaux de gris , et cnt ne contenant qu'une courbe fermée blanche sur fond noir.

anac cnt cnt.chn -fc
fillc cnt.chn -ff im0 -pos >im0.1

Le résultat est celui du masquage de im0 par le contour de cnt : dans im0.1 les pixels correspondants a l'intérieur du contour ont la valeur de ceux de l'image im0, et les autres sont nuls.

anac cnt cnt.chn -fc
cp im0 im0.2
fillc cnt.chn -fv 0 -pos -add im0.2

Le résultat est le complémentaire du précédent : dans im0.2, qui est une copie de im0 on a effacé l'intérieur du contour.

fillc cnt.chn -fv 255 -x ndimx -y ndimy >im0.3
Dans ce cas on obtient une image identique à cnt, puisqu'on a remplit le contour positif avec 255 et le contour négatif avec 0.

Supposons maintenant que imC soit une image couleur au format vectoriel (ndimv=3) et multiplans, par exemple ndimz=10.
anac cnt cnt.chn -fc
fillc cnt.chn -ff imC -pos -ivo 2 -nv 1 -nz 10 >imC.1

Dans imC.1 chaque plan contient la composante verte de la partie de imC située à l'intérieur du contour.

SEE ALSO

aff(1i) , ero(1i) , visc(1i) , anac(1i) .
Voir Inrimage(1i) pour la description des options générales.