#!/bin/csh
#######################################################################################################################################
# #
# F L O U D ' U N E I M A G E P A R F I L T R A G E I N D E P E N D A N T #
# 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.11$Z <imageA> <imageR> [<noyau> [<seuil>]] #
# #
# #
# Author of '$xci/flou.11$Z' : #
# #
# Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss). #
# #
#######################################################################################################################################
set nomA=$1
set nomR=$2
set noyau=$3
set seuil=$4
setArgum seuil $GRIS_7
if ( ("$formatI" == "$format_Suq") \
|| ("$formatI" == "$format_Sud") \
|| ("$formatI" == "$format_Std") \
|| ("$formatI" == "$format_Sdu") \
) then
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... #
if ("$noyau" == "$K_VIDE") then
#20111214173323____: set noyau=$nomT #
SET1s noyau = $nomT
$xci/gauss$X R=$noyau $formatI
# Generation systematique d'un champ gaussien du type 'v $xiio/GAUSS.8110' ; en effet, on ne #
# peut utiliser cette derniere image que si on est en mode 'Suq', 'Sud', 'Std' ou 'Sdu' #
# (c'est-a-dire en format "carre" de dimension lineaire egale a une puissance de 2). #
else
endif
alias substit 'set PlAn="\!*" ; \\
$xci/substitue$X A=$nomA p=$xiP/bits.$PlAn substitution=L_SUBSTITUTION_ROUGE 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 filtre 'set PlAn="\!*" ; set SeUiL=$seuil ; set NoYaU=$noyau ; \\
$xci/filtre.01$X A=$nomT.$PlAn N=$NoYaU seuil=$SeUiL R=$nomT$Fi.$PlAn $formatI ; \\
unset PlAn SeUiL NoYaU'
# Procedure de filtrage des 8 plans de bits... #
filtre 01
filtre 02
filtre 04
filtre 08
filtre 10
filtre 20
filtre 40
filtre 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 filtres... #
$xci/acces$X A=$nomT$Fi.FF R=$nomR $formatI
$DELETE $nomT
$DELETE $nomT.??
$DELETE $nomT$Fi.??
# Puis grand nettoyage... #
else
EROR "A cause du programme '"'$xci/filtre.01$X'"', les seuls formats d'image reconnus sont \c"
ECHO "{Suh,Suq,Sud,Std,Sdu} (carree et puissance de 2)."
endif