2015-09-06 12:54:58 +00:00
# ~*~ encoding: utf-8 ~*~ #
###########################
# TRAITEMENT D'IMAGES #
###########################
2015-09-06 14:01:17 +00:00
# classes
2015-09-09 13:52:20 +00:00
from BMPFile import *
2015-09-10 21:37:17 +00:00
from Noise import *
2015-09-17 19:15:42 +00:00
from tests import *
2015-09-08 20:42:28 +00:00
import random
2015-09-06 12:54:58 +00:00
import sys
2015-09-14 19:58:21 +00:00
import time
2015-09-08 19:17:00 +00:00
2015-09-17 22:33:14 +00:00
# arrêt si moins de 2 arguments
if len ( sys . argv ) < 3 :
print " Require 2 args : \n * input image \n * output image "
exit ( )
2015-09-17 13:55:16 +00:00
2015-09-17 22:33:14 +00:00
################" INTERFACE "###################
2015-09-18 11:55:22 +00:00
print " +---------------------------+ "
print " | | "
print " | TRAITEMENT D ' IMAGE | "
print " | | "
print " +---------------------------+ "
print " | <in> %s | " % exactLength ( sys . argv [ 1 ] , 19 , - 1 )
print " | <out> %s | " % exactLength ( sys . argv [ 2 ] , 19 , - 1 )
print " +---------------------------+ "
print " | %s | " % exactLength ( " TESTS DE FICHIER " , 25 , 0 )
print " | %s | " % exactLength ( " " , 25 , 0 )
print " | 0) %s | " % exactLength ( " Creation manuelle " , 21 , - 1 )
print " | 1) %s | " % exactLength ( " Parse/Unparse " , 21 , - 1 )
print " | 2) %s | " % exactLength ( " Afficher palette " , 21 , - 1 )
print " +---------------------------+ "
print " | %s | " % exactLength ( " TESTS DE BRUIT " , 25 , 0 )
print " | %s | " % exactLength ( " " , 25 , 0 )
print " | 10) %s | " % exactLength ( " Salt&Pepper " , 21 , - 1 )
print " | 11) %s | " % exactLength ( " Additif " , 21 , - 1 )
print " | 12) %s | " % exactLength ( " Lissage " , 21 , - 1 )
print " +---------------------------+ "
print " | %s | " % exactLength ( " TESTS DE DIFFERENCES " , 25 , 0 )
print " | %s | " % exactLength ( " " , 25 , 0 )
print " | 20) %s | " % exactLength ( " Difference en % " , 21 , - 1 )
print " | 21) %s | " % exactLength ( " Difference par P " , 21 , - 1 )
print " | 22) %s | " % exactLength ( " Difference en image " , 21 , - 1 )
print " | 23) %s | " % exactLength ( " Fusion d ' images (+) " , 21 , - 1 )
print " | 24) %s | " % exactLength ( " Fusion d ' images (-) " , 21 , - 1 )
print " +---------------------------+ "
2015-09-17 22:33:14 +00:00
print
while True :
action = int ( raw_input ( " choix: " ) )
2015-09-18 11:55:22 +00:00
if action > = 0 and action < 30 :
2015-09-17 22:33:14 +00:00
break ;
print
2015-09-18 11:55:22 +00:00
print " +---------------------------+---------+ "
2015-09-17 22:33:14 +00:00
execTime = Timer ( ) ; execTime . reset ( ) ;
2015-09-18 08:45:46 +00:00
result = " "
2015-09-18 11:55:22 +00:00
# fichier
2015-09-17 22:33:14 +00:00
if action == 0 :
2015-09-18 11:55:22 +00:00
testManualCreation ( ) # teste la création d'un fichier à partir d'une matrice uniquement
2015-09-17 22:33:14 +00:00
elif action == 1 :
2015-09-18 08:45:46 +00:00
result = testFileIntegrity ( ) # teste le PARSE/UNPARSE
2015-09-17 22:33:14 +00:00
elif action == 2 :
2015-09-18 08:45:46 +00:00
result = printIntPalette ( ) # affiche la palette d'une image
2015-09-18 11:55:22 +00:00
# bruits
elif action == 10 :
testSaltAndPepper ( ) # teste le bruitage/débruitage de type "Sel & Poivre"
elif action == 11 :
testAdditiveNoise ( ) # teste le bruitage/débruitage de type "Additif"
elif action == 12 :
testSmooth ( ) # teste le lissage
# performances
elif action == 20 :
printImageQuality ( ) # compare 2 images et donne le pourcentage de ressemblance/différence
elif action == 21 :
2015-09-18 09:58:01 +00:00
print " not implemented yet "
exit ( )
2015-09-18 11:55:22 +00:00
printImageQualityByPower ( ) # compare 2 images et donne le pourcentage de ressemblance/différence (utilisant la puissance)
elif action == 22 :
imageForImageQuality ( ) # crée une image correspondant aux différences de 2 images
elif action == 23 :
mergeImagesAdditive ( ) # crée une image étant la fusion (addition) de 2 images
elif action == 24 :
mergeImagesSubstractive ( ) # crée une image étant la fusion (soustractive) de 2 images
2015-09-17 22:33:14 +00:00
else :
2015-09-18 11:55:22 +00:00
print " Wrong choice "
exit ( ) ;
2015-09-17 22:33:14 +00:00
2015-09-18 11:55:22 +00:00
print " +---------------------------+---------+ "
print " | EXECUTION TIME | %s | " % execTime . get ( )
print " +---------------------------+---------+ "
2015-09-18 08:45:46 +00:00
print
print result
2015-09-17 13:55:16 +00:00
2015-09-16 19:14:08 +00:00
############ TESTS ############
2015-09-17 19:15:42 +00:00
# testManualCreation() # teste la création d'un fichier à partir d'une matrice uniquement
# testFileIntegrity() # teste le PARSE/UNPARSE
# printIntPalette() # affiche la palette d'une image
2015-09-16 19:14:08 +00:00
2015-09-17 19:15:42 +00:00
# testSaltAndPepper() # teste le bruitage/débruitage de type "Sel & Poivre"
# testAdditiveNoise() # teste le bruitage/débruitage de type "Additif"
2015-09-16 19:14:08 +00:00
2015-09-17 22:33:14 +00:00
# printImageQuality() # compare 2 images et donne le pourcentage de ressemblance/différence
2015-09-16 19:14:08 +00:00
2015-09-17 19:15:42 +00:00
# imageForImageQuality() # crée une image correspondant aux différences de 2 images
# mergeImages() # crée une image étant la fusion (addition) de 2 images
2015-09-16 19:14:08 +00:00
############ CALIBRATE ############
2015-09-17 19:15:42 +00:00
# calSaltAndPepper() # Calibration en créant des fichiers pour les paramètres différents de débruitage dans le dossier /SaltAndPepper (sert à comparer)