#!/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. #