script cosmetisation dark

Avant tout : le prétraitements des images ...
Répondre
Jean-Francois_Koenig
Messages : 56
Enregistré le : 21 janv. 2012, 11:21

script cosmetisation dark

Message par Jean-Francois_Koenig »

bonjour,

je cherche a cosmetiser un dark avec un script en utilisant un fichier cosmetique crée avec
/traitement/generer une liste de pixels chauds
script ci dessous (soyez indulgent je debute ;) )

***************************************************************************
rem cosmetisation a partir d'un fichier cosmetique
rem pretraitement/generer une liste de points chauds
rem uniquement pour des images de 2048x2048

//pause pour redimensionner la fenetre de sortie
pause

//choix du fichier cosmetique
print "choisir un fichier cosmetique!"
GetFileName FichierCosmetique$
print "fichier cosmetique ->" FichierCosmetique$
print ""

//choix de l'image a traiter
print "choisir un fichier image!"
GetFileName FichierATraiter$
ExtractFilePath FichierATraiter$ filepath$
sortie$=filepath$+"sortie.cpa"
print "fichier image ->" FichierATraiter$
print "fichier resultant ->" Sortie$


//traitement
Taille = 3
open Img FichierATraiter$ minimize
Open_FileTxt_For_Read FichierCosmetique FichierCosmetique$
etiquette1:
ENDOFFILE FichierCosmetique Fini
if Fini=true then
goto etiquette2:
else
//cosmetise un point
READFILETXT FichierCosmetique Ligne$
cutstr Ligne$ " " 2 X$
cutstr Ligne$ " " 3 Y$
val X$ X
val Y$ Y
if X<5 then
goto etiquette1:
endif
if Y<5 then
goto etiquette1:
endif
if Y>2043 then
goto etiquette1:
endif
if X>2043 then
goto etiquette1:
endif
BOUCHERZONE Img X Y Taille
goto etiquette1:
endif
etiquette2:
CLOSEFILETXT FichierCosmetique
savecpa Img Sortie$
close Img

//pour revoir l'image
open Img Sortie$
STAT Img Moyenne MoyenneQuadratique Ecarttype Max Min Flux Mediane
Haut = mediane*1.2
Bas = mediane*0.85
visu Img Haut Bas
**************************************************************************
ca marche mais j'obtiens en certains endroits des traits blancs en lieu est place de la correction souhaitée comme le montre les images ci-dessous
Image
Image

une idée d'ou cela pourrait venir?
Et si qq connait une fonction script permettant de changer la taille et la position de la fenetre dans laquelle s'inscrivent les sorties du script je suis preneur aussi

merci d'avance
JF
Cyril Cavadore
Messages : 4492
Enregistré le : 18 juin 2009, 22:41
Localisation : 42

Re: script cosmetisation dark

Message par Cyril Cavadore »

A mon avis il faut boucher un seul pixel, pas une zone.
Cyril
Cyril Cavadore, ALCOR-SYSTEM, Auteur de PRISM
http://www.alcor-system.com

Pour reporter vos problème, la marche à suivre est ici
viewtopic.php?f=7&t=1403
Jean-Francois_Koenig
Messages : 56
Enregistré le : 21 janv. 2012, 11:21

Re: script cosmetisation dark

Message par Jean-Francois_Koenig »

A mon avis il faut boucher un seul pixel, pas une zone.
effectivement!
j'ai mal interpreter la doc :La taille de la zone utilisée pour les pixels environnants dépend du paramètre "Size".
alors que dans le tableau variable c'est clair: size = Demi-largeur de la fenêtre à boucher.
Toutes mes confuses!
(d'autant plus que je viens de trouver la fonction EXEC_COSMESCRIPT)

Et merci pour la reponse.
Jean-Francois_Koenig
Messages : 56
Enregistré le : 21 janv. 2012, 11:21

Re: script cosmetisation dark

Message par Jean-Francois_Koenig »

Je me suis encore amusé un peu...

du coup il reste un soucis quand les pixels chauds sont proches et ont des intensites assez differentes
(en pratique ce doit etre plus que rare)

Mais si vous avez le temps et l'envie d'y jeter un oeil et eventuellement apporter un rectificatif a exec_cosmescript,

on peut creer de tel defauts dans une image avec le script suivant
*********************************************************************************
print "creation_points_chauds_1.pgm"
print ""
print "pour tester cosmetisation cosme_2.pgm"
print ""

//pause pour redimensionner la fenetre de sortie
pause

//choix d'une image
print "choisir un fichier image de au moins 1000x1000 codé en reel!"
GetFileName Entree$
//preparation d'un nom de sortie
ExtractFilePath Entree$ filepath$
sortie$=filepath$+"sortie.cpa"
print "fichier entree ->" Entree$
print "fichier resultant ->" Sortie$

//traitement on rempli l'image de la valeur 200 et d'un peu de bruit
Open Img Entree$
Real2Int Img
Sub Img Img
Offset Img 200
NoiseGauss Img 10

//parametre pour créer les points chauds
//ecart max entre les pixel "adjacents"
ep=7
//valeur du 1er point chaud
v1=400
//valeur du 2iemepoint chaud
v2=20000
//position sur l'image du centre des binomes de points chauds
XC=200
YC=200
//creation des points chauds
n=(ep+1)/2
for dx=1 to ep
for dy=1 to ep
X1=XC+20*(dx-n)
Y1=YC+20*(dy-n)
X2=X1+dx-n
Y2=Y1+dy-n
SetPixelvalue Img X1 Y1 v1
SetPixelvalue Img X2 Y2 v2
Next dy
Next dx
Int2Real Img
SaveCpa Img Sortie$
*****************************************************************************


on cree un fichier de cosmetisation a partir de l'image crée ci dessus
pretraitement/generer une liste .../automatique /nombre de sigma 10

puis pour cosmetiser on lance le script
*****************************************************************************
print "cosmetisation cosme_2.pgm"
print ""
print "on crée dabord un fichier cosmetique cosme.cos"
print "par :"
print "fichier/ouvrir (choisir un fichier adéquat)"
print "pretraitement/generer une liste de points chauds"
print "le script permet de choisir ce fichier"
print "puis un fichier image de meme taille"
print "que le fichier ayant servit a créer la liste de points chauds"
print "l'image cosmetisée est sauvée dans sortie.cpa"
print "et affichée a l'ecran en reglant la visu a 1.2*mediane et 0.85*mediane"

//pause pour redimensionner la fenetre de sortie
pause

//choix du fichier cosmetique
print "choisir un fichier cosmetique!"
GetFileName FichierCosmetique$
print "fichier cosmetique ->" FichierCosmetique$
print ""

//choix de l'image a traiter
print "choisir un fichier image!"
GetFileName FichierATraiter$
ExtractFilePath FichierATraiter$ filepath$
sortie$=filepath$+"sortie.cpa"
print "fichier image ->" FichierATraiter$
print "fichier resultant ->" Sortie$


//traitement
open Img FichierATraiter$
EXEC_COSMESCRIPT Img FichierCosmetique$
savecpa Img Sortie$

//affichage image cosmetisée
STAT Img Moyenne MoyenneQuadratique Ecarttype Max Min Flux Mediane
Haut = mediane*1.5
Bas = mediane*0.5
visu Img Haut Bas
************************************************************************
on peut constater que pour certains binomes de points chauds particuliers ( ceux espacés de 1 a 2 pixel en x et y, mais pas tous) ) il y as un pb

JF
Jean-Francois_Koenig
Messages : 56
Enregistré le : 21 janv. 2012, 11:21

Re: script cosmetisation dark

Message par Jean-Francois_Koenig »

Pour etre plus parlant
avant cosmetisation

Image

et apres

Image
Répondre