#!/bin/csh
#######################################################################################################################################
# #
# F L O U D ' U N E I M A G E P A R C O N V O L U T I O N I N D E P E N D A N T E #
# D E S D I F F E R E N T S P L A N S D E B I T S : #
# #
# #
# Utilisation : #
# #
# $xci/flou.12$Z <imageA> <imageR> [<facteur> [<longueur_noyau> [<valeur_noyau> [<forme_noyau> [<seuil>]]]]] #
# #
# #
# Author of '$xci/flou.12$Z' : #
# #
# Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss). #
# #
#######################################################################################################################################
set nomA=$1
set nomR=$2
set facteur=$3
set longueur_noyau=$4
set valeur_noyau=$5
set forme_noyau=$6
set seuil=$7
set nomT=$xT/`Genom4`
# ATTENTION, c'est 'Genom4' et non point 'genom' qui est utilise afin de limiter la longueur #
# des noms de fichier crees ci-apres... #
setArgum facteur 0.03529411765
# La valeur implicite de '$facteur' est 9/255. #
if ("$longueur_noyau" == "$K_VIDE") then
#20111214173412____: set longueur_noyau=$nomT #
SET1s longueur_noyau = $nomT
else
endif
if ("$valeur_noyau" == "$K_VIDE") then
#20111214173412____: set valeur_noyau=$nomT #
SET1s valeur_noyau = $nomT
else
endif
if ("$forme_noyau" == "$K_VIDE") then
#20111214173412____: set forme_noyau=$nomT #
SET1s forme_noyau = $nomT
else
endif
setArgum seuil $GRIS_4
if (("$longueur_noyau" == "$nomT") || ("$valeur_noyau" == "$nomT") || ("$forme_noyau" == "$nomT")) then
$xci/init$X niveau=$BLANC R=$nomT $formatI
else
endif
alias substit 'set PlAn="\!*" ; \\
$xci/substitue$X A=$nomA p=$xiP/bits.$PlAn substitution=L_SUBSTITUTION_ROUGE $formatI | \\
$xci/acces$X renormaliser=VRAI R=$nomT.$PlAn $formatI ; \\
unset PlAn'
# Procedure d'extraction des 8 plans de bits... #
substit 01
substit 02
substit 04
substit 08
substit 10
substit 20
substit 40
substit 80
# Extraction des 8 plans de bits... #
alias convolue 'set PlAn="\!*" ; \\
$xci/convol.02$X A=$nomT.$PlAn \\
Facteur=$facteur N=$longueur_noyau \\
V=$valeur_noyau \\
seuil=$seuil F=$forme_noyau \\
renormaliser=VRAI \\
R=$nomT$Fi.$PlAn $formatI ; \\
unset PlAn SeUiL'
# Procedure de convolution des 8 plans de bits... #
convolue 01
convolue 02
convolue 04
convolue 08
convolue 10
convolue 20
convolue 40
convolue 80
# Filtrage des 8 plans de bits... #
alias ecrase 'set PlAn="\!*" ; \\
$xci/substitue$X A=$nomT$Fi.$PlAn p=$xiP/binaire.01 substitution=L_SUBSTITUTION_ROUGE $formatI | \\
$xci/substitue$X p=$xiP/bits.$PlAn substitution=L_SUBSTITUTION_ROUGE R=$nomT$Fi.$PlAn $formatI ; \\
unset PlAn SeUiL'
# Procedure d'ecrasement des niveaux resultant du filtrage... #
ecrase 01
ecrase 02
ecrase 04
ecrase 08
ecrase 10
ecrase 20
ecrase 40
ecrase 80
# Ecrasement des niveaux resultant du filtrage... #
alias somme 'set PlAnA1=\!:1 ; set PlAnA2=\!:2 ; set PlAnR=\!:3 ; \\
$xci/or_02$X A1=$nomT$Fi.$PlAnA1 A2=$nomT$Fi.$PlAnA2 R=$nomT$Fi.$PlAnR $formatI ; \\
unset PlAnA1 PlAnA2 PlAnR'
# Procedure de sommation deux a deux des couches... #
somme 01 02 03
somme 04 08 0C
somme 10 20 30
somme 40 80 C0
somme 03 0C 0F
somme 30 C0 F0
somme 0F F0 FF
# Sommation des huits plans de bits convolues... #
$xci/acces$X A=$nomT$Fi.FF R=$nomR $formatI
$DELETE $nomT
$DELETE $nomT.??
$DELETE $nomT$Fi.??
# Puis grand nettoyage... #