#!/bin/csh ####################################################################################################################################### # # # " D I T H E R I N G " D ' U N E I M A G E : # # # # # # Utilisation : # # # # $xci/dithering.01$Z <imageA> <imageR> # # # # # # Author of '$xci/dithering.01$Z' : # # # # Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss). # # # ####################################################################################################################################### set nomA=$1 set nomR=$2 FileTmpB nomT1 FileTmpB nomT2 FileTmpB nomT3 alias dither 'set PlAn=\!:1 ; set RaNdOm=\!:2 ; set GrAiNe=\!:3 ; \\ $xci/substitue$X A=$nomA p=$xiP/plan.$PlAn substitution=L_SUBSTITUTION_ROUGE R=$nomT1 $formatI ; \\ $xci/random.02$X seuil=$RaNdOm graine=$GrAiNe R=$nomT2 $formatI ; \\ $xci/and$X A1=$nomT1 A2=$nomT2 R=$nomT3.$PlAn $formatI ; \\ unset PlAn RaNdOm GrAiNe' dither 01 0.005 1 dither 02 0.010 2 dither 04 0.020 3 dither 08 0.040 4 dither 10 0.080 5 dither 20 0.160 6 dither 40 0.320 7 dither 80 0.640 8 # Chaque plan est represente par une trame aleatoire contenant d'autant plus de points blancs # # que le poids du plan est eleve (de 01 a 80), d'ou le seuil '$RaNdOm' croissant. Enfin, la # # graine 'graine' aleatoire variable pour chaque plan est destinee a ce que les differentes # # trames aleatoires se recouvrent le moins possible (c'est-a-dire, qu'elles aient le moins # # possible de points communs). On notera que la probabilite de marquer un point est double # # en passant d'un plan a un autre ; malgre cela, pour une image telle 'v $xiio/MIRE' il vaut # # mieux utiliser '0.500' que '0.640'... # $xci/or_03$X A1=$NOIR A2=$nomT3.01 A3=$nomT3.02 R=$nomR $formatI $xci/or_03$X A1=$nomR A2=$nomT3.04 A3=$nomT3.08 R=$nomR $formatI $xci/or_03$X A1=$nomR A2=$nomT3.10 A3=$nomT3.20 R=$nomR $formatI $xci/or_03$X A1=$nomR A2=$nomT3.40 A3=$nomT3.80 R=$nomR $formatI # Superposition des differentes trames aleatoires correspondant a chacun des plans, sachant, # # rappelons-le que plus leur poids est eleve, plus elles doivent avoir de points blancs... # FileTmpE nomT1 FileTmpE nomT2 FileTmpE nomT3 # Puis destruction des images temporaires. #