Ecriture à la fin uniquement si désiré
This commit is contained in:
parent
e060a0888c
commit
fbdff1c750
|
@ -330,8 +330,8 @@ class RGBPixel:
|
||||||
self.intData = [ int( (r+g+b) / 3 ) ]
|
self.intData = [ int( (r+g+b) / 3 ) ]
|
||||||
self.binData = chr( self.intData[0] )
|
self.binData = chr( self.intData[0] )
|
||||||
else:
|
else:
|
||||||
self.intData = [ b, g, r ]
|
self.intData = [ g, b, r ]
|
||||||
self.binData = chr(b) + chr(g) + chr(r)
|
self.binData = chr(g) + chr(b) + chr(r)
|
||||||
|
|
||||||
|
|
||||||
def setRGB(self, r=0, g=0, b=0, x=None, y=None, bpp=24):
|
def setRGB(self, r=0, g=0, b=0, x=None, y=None, bpp=24):
|
||||||
|
@ -411,7 +411,7 @@ class RGBPixel:
|
||||||
class BMPFile:
|
class BMPFile:
|
||||||
|
|
||||||
# CONSTRUCTEUR: instancie les attributs
|
# CONSTRUCTEUR: instancie les attributs
|
||||||
def __init__(self):
|
def __init__(self, drawerBool=False):
|
||||||
self.header = BMPHeader()
|
self.header = BMPHeader()
|
||||||
self.content = BMPContent()
|
self.content = BMPContent()
|
||||||
self.binData = ""
|
self.binData = ""
|
||||||
|
@ -419,10 +419,13 @@ class BMPFile:
|
||||||
self.binPalette = ""
|
self.binPalette = ""
|
||||||
self.intPalette = []
|
self.intPalette = []
|
||||||
|
|
||||||
self.drawer = None;
|
self.drawerBool = drawerBool
|
||||||
|
if( self.drawerBool ):
|
||||||
|
self.drawer = None;
|
||||||
|
|
||||||
# parse à partir de <binFile> en objets <BMPHeader> et <BMPContent>
|
# parse à partir de <binFile> en objets <BMPHeader> et <BMPContent>
|
||||||
def parse(self, binFile=""):
|
def parse(self, binFile=""):
|
||||||
|
|
||||||
# si on a défini le fichier
|
# si on a défini le fichier
|
||||||
if binFile == "":
|
if binFile == "":
|
||||||
print "<BMPFile.parse()> need an argument"
|
print "<BMPFile.parse()> need an argument"
|
||||||
|
@ -451,10 +454,11 @@ class BMPFile:
|
||||||
for byte in self.binPalette:
|
for byte in self.binPalette:
|
||||||
self.intPalette.append( ord(byte) )
|
self.intPalette.append( ord(byte) )
|
||||||
|
|
||||||
self.drawer = Drawer(
|
if( self.drawerBool ):
|
||||||
len(self.content.map[0]),
|
self.drawer = Drawer(
|
||||||
len(self.content.map)
|
len(self.content.map[0]),
|
||||||
);
|
len(self.content.map)
|
||||||
|
);
|
||||||
|
|
||||||
# unparse à partir d'un <BMPHeader> et d'un <BMPContent>
|
# unparse à partir d'un <BMPHeader> et d'un <BMPContent>
|
||||||
def unparse(self, newBpp=None):
|
def unparse(self, newBpp=None):
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 227 KiB |
Binary file not shown.
After Width: | Height: | Size: 352 KiB |
30
code/main.py
30
code/main.py
|
@ -33,8 +33,8 @@ def interfaceLoop():
|
||||||
print "| TRAITEMENT D'IMAGE |"
|
print "| TRAITEMENT D'IMAGE |"
|
||||||
print "| |"
|
print "| |"
|
||||||
print "+---------------------------+"
|
print "+---------------------------+"
|
||||||
print "| <in> %s |" % exactLength( sys.argv[1], 19, -1)
|
print "| <A> %s |" % exactLength( sys.argv[1], 21, -1)
|
||||||
print "| <out> %s |" % exactLength( sys.argv[2], 19, -1)
|
print "| <B> %s |" % exactLength( sys.argv[2], 21, -1)
|
||||||
print "+---------------------------+"
|
print "+---------------------------+"
|
||||||
print "| %s |" % exactLength("TESTS DE FICHIER", 25, 0)
|
print "| %s |" % exactLength("TESTS DE FICHIER", 25, 0)
|
||||||
print "| %s |" % exactLength("", 25, 0)
|
print "| %s |" % exactLength("", 25, 0)
|
||||||
|
@ -95,7 +95,7 @@ def interfaceLoop():
|
||||||
if h != "":
|
if h != "":
|
||||||
arg2 = int(h)
|
arg2 = int(h)
|
||||||
print startStr
|
print startStr
|
||||||
testManualCreation(arg1, arg2) # teste la création d'un fichier à partir d'une matrice uniquement
|
testManualCreation(image1, arg1, arg2) # teste la création d'un fichier à partir d'une matrice uniquement
|
||||||
elif action == 1:
|
elif action == 1:
|
||||||
print startStr
|
print startStr
|
||||||
result = testFileIntegrity(image1) # teste le PARSE/UNPARSE
|
result = testFileIntegrity(image1) # teste le PARSE/UNPARSE
|
||||||
|
@ -230,12 +230,17 @@ def interfaceLoop():
|
||||||
|
|
||||||
print '- [PRESS ANY KEY TO CONTINUE] -';
|
print '- [PRESS ANY KEY TO CONTINUE] -';
|
||||||
print '- [ BUT PRESS "Q" TO QUIT ] -';
|
print '- [ BUT PRESS "Q" TO QUIT ] -';
|
||||||
loopKey = raw_input('- [ OR PRESS "R" TO RELOAD ] -');
|
print '- [ OR PRESS "R" TO RELOAD ] -';
|
||||||
|
loopKey = raw_input('- [ OR PRESS "S" TO SAVE ] -');
|
||||||
|
|
||||||
if( loopKey == 'q' or loopKey == 'Q' ):
|
if( loopKey == 'q' or loopKey == 'Q' ):
|
||||||
exit();
|
exit();
|
||||||
elif( loopKey == 'r' or loopKey == 'R' ):
|
elif( loopKey == 'r' or loopKey == 'R' ):
|
||||||
loadFiles();
|
loadFiles();
|
||||||
|
elif( loopKey == 's' or loopKey == 'S' ):
|
||||||
|
out = raw_input("out file: ");
|
||||||
|
image1.unparse();
|
||||||
|
image1.write(out);
|
||||||
|
|
||||||
interfaceLoop();
|
interfaceLoop();
|
||||||
|
|
||||||
|
@ -270,15 +275,17 @@ print "| |"
|
||||||
print "+---------------------------+"
|
print "+---------------------------+"
|
||||||
|
|
||||||
# ON CREE LES IMAGES
|
# ON CREE LES IMAGES
|
||||||
image1, file1 = BMPFile(), "";
|
image1, file1 = BMPFile(True), "";
|
||||||
image2, file2 = BMPFile(), "";
|
image2, file2 = BMPFile(), "";
|
||||||
|
|
||||||
with open( sys.argv[1] ) as file:
|
with open( sys.argv[1] ) as file:
|
||||||
file1 += file.read();
|
file1 += file.read();
|
||||||
|
|
||||||
|
try:
|
||||||
with open( sys.argv[2] ) as file:
|
with open( sys.argv[2] ) as file:
|
||||||
file2 += file.read()
|
file2 += file.read()
|
||||||
|
except Exception as e:
|
||||||
|
print e;
|
||||||
|
|
||||||
def loadFiles():
|
def loadFiles():
|
||||||
image1.parse( file1 );
|
image1.parse( file1 );
|
||||||
|
@ -288,10 +295,11 @@ def loadFiles():
|
||||||
image1.drawer.setPixel( pix );
|
image1.drawer.setPixel( pix );
|
||||||
image1.drawer.refresh();
|
image1.drawer.refresh();
|
||||||
|
|
||||||
try:
|
if( file2 != "" ):
|
||||||
image2.parse( file2 );
|
image2.parse( file2 );
|
||||||
except Exception as e:
|
|
||||||
print e;
|
|
||||||
|
|
||||||
loadFiles();
|
loadFiles();
|
||||||
|
|
||||||
interfaceLoop();
|
interfaceLoop();
|
||||||
|
|
BIN
code/new.bmp
BIN
code/new.bmp
Binary file not shown.
Before Width: | Height: | Size: 227 KiB After Width: | Height: | Size: 352 KiB |
BIN
code/new2.bmp
BIN
code/new2.bmp
Binary file not shown.
Before Width: | Height: | Size: 227 KiB |
403
code/tests.py
403
code/tests.py
|
@ -10,6 +10,7 @@ from tests import *
|
||||||
from utility import Drawer
|
from utility import Drawer
|
||||||
|
|
||||||
import random
|
import random
|
||||||
|
import os
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
from math import log
|
from math import log
|
||||||
|
@ -98,14 +99,14 @@ def defaultTest(img):
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
# Unparsing
|
# Unparsing
|
||||||
print "| Unparsing file |",; t.reset();
|
# print "| Unparsing file |",; t.reset();
|
||||||
img.unparse()
|
# img.unparse()
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
# image to stdout
|
# # image to stdout
|
||||||
print "| Writing file |",; t.reset();
|
# print "| Writing file |",; t.reset();
|
||||||
img.write( sys.argv[2] )
|
# img.write( sys.argv[2] )
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -121,33 +122,34 @@ def defaultTest(img):
|
||||||
# @history
|
# @history
|
||||||
# Unparse une matrice de pixels aléatoire de taille 100x100
|
# Unparse une matrice de pixels aléatoire de taille 100x100
|
||||||
# L'enregistre dans le fichier de sortie
|
# L'enregistre dans le fichier de sortie
|
||||||
def testManualCreation(width=100, height=100):
|
def testManualCreation(img, width=100, height=100):
|
||||||
|
|
||||||
t = Timer();
|
t = Timer();
|
||||||
|
|
||||||
d = Drawer(width, height); # AFFICHAGE
|
|
||||||
|
|
||||||
print "| Creating Image |",; t.reset();
|
print "| Creating Image |",; t.reset();
|
||||||
img = BMPFile()
|
img.content.map = [];
|
||||||
|
img.drawer.setSize(width, height);
|
||||||
for y in range(0, height):
|
for y in range(0, height):
|
||||||
img.content.map.append( [] )
|
img.content.map.append( [] )
|
||||||
for x in range(0, width):
|
for x in range(0, width):
|
||||||
img.content.map[y].append( RGBPixel(
|
img.content.map[y].append( RGBPixel(
|
||||||
random.randint(0, 255),
|
r=random.randint(0, 255),
|
||||||
random.randint(0, 255),
|
g=random.randint(0, 255),
|
||||||
random.randint(0, 255),
|
b=random.randint(0, 255),
|
||||||
|
x=x,
|
||||||
|
y=y,
|
||||||
bpp=24
|
bpp=24
|
||||||
) );
|
) );
|
||||||
|
|
||||||
d.setPixel( (x, y), (img.content.map[y][x].r, img.content.map[y][x].g, img.content.map[y][x].b) );
|
img.drawer.setPixel( img.content.map[y][x] );
|
||||||
|
|
||||||
img.unparse();
|
# img.unparse();
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
print "| Writing Image |",; t.reset();
|
# print "| Writing Image |",; t.reset();
|
||||||
img.write( sys.argv[2] )
|
# img.write( sys.argv[2] )
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -177,7 +179,7 @@ def testFileIntegrity(img):
|
||||||
|
|
||||||
# A = BMPFile(); # Instanciation du BMPFile
|
# A = BMPFile(); # Instanciation du BMPFile
|
||||||
|
|
||||||
# # Parsing
|
# Parsing
|
||||||
# print "| Parsing file |",; t.reset();
|
# print "| Parsing file |",; t.reset();
|
||||||
# A.parse( binFile );
|
# A.parse( binFile );
|
||||||
# print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
@ -191,7 +193,7 @@ def testFileIntegrity(img):
|
||||||
|
|
||||||
# Writing
|
# Writing
|
||||||
print "| Writing file |",; t.reset();
|
print "| Writing file |",; t.reset();
|
||||||
img.write( sys.argv[2] )
|
img.write( "parseUnparseTest.bmp" )
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
@ -199,15 +201,19 @@ def testFileIntegrity(img):
|
||||||
|
|
||||||
# lecture du fichier
|
# lecture du fichier
|
||||||
print "| Reading Image |",; t.reset();
|
print "| Reading Image |",; t.reset();
|
||||||
with open( sys.argv[2] ) as file:
|
with open( "parseUnparseTest.bmp" ) as file:
|
||||||
binFile = file.read()
|
binFile = file.read()
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
|
os.remove("parseUnparseTest.bmp"); # suppression de l'image
|
||||||
|
|
||||||
# Parsing
|
# Parsing
|
||||||
print "| Parsing file |",; t.reset();
|
print "| Parsing file |",; t.reset();
|
||||||
B.parse( binFile );
|
B.parse( binFile );
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
|
img.drawer.fill( img.content.map );
|
||||||
|
|
||||||
returnValue += "\n\n\n" + B.header.info();
|
returnValue += "\n\n\n" + B.header.info();
|
||||||
|
|
||||||
return returnValue;
|
return returnValue;
|
||||||
|
@ -288,14 +294,14 @@ def testSaltAndPepper(img, seuilSet=50, seuilUnset=1, borneUnset=1, smooth=1):
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
# Unparsing
|
# Unparsing
|
||||||
print "| Unparsing file |",; t.reset();
|
# print "| Unparsing file |",; t.reset();
|
||||||
img.unparse()
|
# img.unparse()
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
# image to stdout
|
# # image to stdout
|
||||||
print "| Writing file |",; t.reset();
|
# print "| Writing file |",; t.reset();
|
||||||
img.write( "SaltAndPepper.bmp" )
|
# img.write( "SaltAndPepper.bmp" )
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -310,14 +316,14 @@ def testSaltAndPepper(img, seuilSet=50, seuilUnset=1, borneUnset=1, smooth=1):
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
# Unparsing
|
# Unparsing
|
||||||
print "| Unparsing file |",; t.reset();
|
# print "| Unparsing file |",; t.reset();
|
||||||
img.unparse()
|
# img.unparse()
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
# image to stdout
|
# # image to stdout
|
||||||
print "| Writing file |",; t.reset();
|
# print "| Writing file |",; t.reset();
|
||||||
img.write( sys.argv[2] )
|
# img.write( sys.argv[2] )
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -365,14 +371,14 @@ def testAdditiveBernouilliNoise(img, seuilA=10, seuilB=35):
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
# Unparsing
|
# Unparsing
|
||||||
print "| Unparsing file |",; t.reset();
|
# print "| Unparsing file |",; t.reset();
|
||||||
img.unparse()
|
# img.unparse()
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
# image to stdout
|
# # image to stdout
|
||||||
print "| Writing file |",; t.reset();
|
# print "| Writing file |",; t.reset();
|
||||||
img.write( "AdditiveBernouilli.bmp" )
|
# img.write( "AdditiveBernouilli.bmp" )
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -383,14 +389,14 @@ def testAdditiveBernouilliNoise(img, seuilA=10, seuilB=35):
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
# Unparsing
|
# Unparsing
|
||||||
print "| Unparsing file |",; t.reset();
|
# print "| Unparsing file |",; t.reset();
|
||||||
img.unparse()
|
# img.unparse()
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
# image to stdout
|
# # image to stdout
|
||||||
print "| Writing file |",; t.reset();
|
# print "| Writing file |",; t.reset();
|
||||||
img.write( sys.argv[2] )
|
# img.write( sys.argv[2] )
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -440,14 +446,14 @@ def testAdditiveGaussianNoise(img, sigma=10, seuil=35):
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
# Unparsing
|
# Unparsing
|
||||||
print "| Unparsing file |",; t.reset();
|
# print "| Unparsing file |",; t.reset();
|
||||||
img.unparse()
|
# img.unparse()
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
# image to stdout
|
# # image to stdout
|
||||||
print "| Writing file |",; t.reset();
|
# print "| Writing file |",; t.reset();
|
||||||
img.write( "AdditiveGaussian.bmp" )
|
# img.write( "AdditiveGaussian.bmp" )
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -462,14 +468,14 @@ def testAdditiveGaussianNoise(img, sigma=10, seuil=35):
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
# Unparsing
|
# Unparsing
|
||||||
print "| Unparsing file |",; t.reset();
|
# print "| Unparsing file |",; t.reset();
|
||||||
img.unparse()
|
# img.unparse()
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
# image to stdout
|
# # image to stdout
|
||||||
print "| Writing file |",; t.reset();
|
# print "| Writing file |",; t.reset();
|
||||||
img.write( sys.argv[2] )
|
# img.write( sys.argv[2] )
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -615,7 +621,7 @@ def printSNR(image, model):
|
||||||
# Parse A et B
|
# Parse A et B
|
||||||
# Créer une matrice de pixels
|
# Créer une matrice de pixels
|
||||||
# Unparse cette matrice et l'enregistre dans le fichier "compare.bmp"
|
# Unparse cette matrice et l'enregistre dans le fichier "compare.bmp"
|
||||||
def imageForImageQuality(imgae1, image2):
|
def imageForImageQuality(image, model):
|
||||||
t = Timer();
|
t = Timer();
|
||||||
# imageFile, modelFile = "", ""
|
# imageFile, modelFile = "", ""
|
||||||
# image, model = BMPFile(), BMPFile()
|
# image, model = BMPFile(), BMPFile()
|
||||||
|
@ -658,14 +664,16 @@ def imageForImageQuality(imgae1, image2):
|
||||||
) )
|
) )
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
print "| Unparsing |",; t.reset();
|
image.drawer.fill( newImg.content.map );
|
||||||
newImg.unparse();
|
|
||||||
print "%s |" % (t.get())
|
|
||||||
|
|
||||||
print "| Writing File |",; t.reset();
|
# print "| Unparsing |",; t.reset();
|
||||||
with open("compare.bmp", "w") as f:
|
# newImg.unparse();
|
||||||
f.write( newImg.binData );
|
# print "%s |" % (t.get())
|
||||||
print "%s |" % (t.get())
|
|
||||||
|
# print "| Writing File |",; t.reset();
|
||||||
|
# with open("compare.bmp", "w") as f:
|
||||||
|
# f.write( newImg.binData );
|
||||||
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -723,24 +731,25 @@ def mergeImagesAdditive(A, B):
|
||||||
newImg.content.map.append( [] );
|
newImg.content.map.append( [] );
|
||||||
for aPix, bPix in zip(lineA, lineB):
|
for aPix, bPix in zip(lineA, lineB):
|
||||||
newImg.content.map[aPix.y].append( RGBPixel(
|
newImg.content.map[aPix.y].append( RGBPixel(
|
||||||
( aPix.r + bPix.r ) / 2, # moyenne du rouge
|
r = ( aPix.r + bPix.r ) / 2, # moyenne du rouge
|
||||||
( aPix.g + bPix.g ) / 2, # moyenne du vert
|
g = ( aPix.g + bPix.g ) / 2, # moyenne du vert
|
||||||
( aPix.b + bPix.b ) / 2, # moyenne du bleu
|
b = ( aPix.b + bPix.b ) / 2, # moyenne du bleu
|
||||||
x = aPix.x,
|
x = aPix.x,
|
||||||
y = aPix.y,
|
y = aPix.y,
|
||||||
bpp = aPix.bpp
|
bpp = aPix.bpp
|
||||||
) )
|
) )
|
||||||
|
A.drawer.setPixel( newImg.content.map[aPix.y][aPix.x] );
|
||||||
|
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
print "| Unparsing |",; t.reset();
|
# print "| Unparsing |",; t.reset();
|
||||||
newImg.unparse(newBpp=24);
|
# newImg.unparse(newBpp=24);
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
print "| Writing File |",; t.reset();
|
# print "| Writing File |",; t.reset();
|
||||||
with open("mergeAdd.bmp", "w") as f:
|
# with open("mergeAdd.bmp", "w") as f:
|
||||||
f.write( newImg.binData );
|
# f.write( newImg.binData );
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -805,17 +814,20 @@ def mergeImagesSubstractive(A, B):
|
||||||
y = aPix.y,
|
y = aPix.y,
|
||||||
bpp = aPix.bpp
|
bpp = aPix.bpp
|
||||||
) )
|
) )
|
||||||
|
A.drawer.setPixel( newImg.content.map[aPix.y][aPix.x] );
|
||||||
|
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
print "| Unparsing |",; t.reset();
|
A.content.map = newImg.content.map;
|
||||||
newImg.unparse(newBpp=24);
|
|
||||||
print "%s |" % (t.get())
|
|
||||||
|
|
||||||
print "| Writing File |",; t.reset();
|
# print "| Unparsing |",; t.reset();
|
||||||
with open("mergeSub.bmp", "w") as f:
|
# newImg.unparse(newBpp=24);
|
||||||
f.write( newImg.binData );
|
# print "%s |" % (t.get())
|
||||||
print "%s |" % (t.get())
|
|
||||||
|
# print "| Writing File |",; t.reset();
|
||||||
|
# with open("mergeSub.bmp", "w") as f:
|
||||||
|
# f.write( newImg.binData );
|
||||||
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -879,14 +891,14 @@ def revealShapes(img, red=0,green=0,blue=0, seuil=50):
|
||||||
img.drawer.setPixel( pixel );
|
img.drawer.setPixel( pixel );
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
print "| Unparsing |",; t.reset();
|
# print "| Unparsing |",; t.reset();
|
||||||
img.unparse(newBpp=24);
|
# img.unparse(newBpp=24);
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
print "| Writing File |",; t.reset();
|
# print "| Writing File |",; t.reset();
|
||||||
with open( sys.argv[2], "w") as f:
|
# with open( sys.argv[2], "w") as f:
|
||||||
f.write( img.binData );
|
# f.write( img.binData );
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -939,14 +951,14 @@ def colorShape(img, x=0, y=0):
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
print "| Unparsing |",; t.reset();
|
# print "| Unparsing |",; t.reset();
|
||||||
img.unparse(newBpp=24);
|
# img.unparse(newBpp=24);
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
print "| Writing File |",; t.reset();
|
# print "| Writing File |",; t.reset();
|
||||||
with open( sys.argv[2], "w") as f:
|
# with open( sys.argv[2], "w") as f:
|
||||||
f.write( img.binData );
|
# f.write( img.binData );
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1004,14 +1016,14 @@ def colorAllShapes(img):
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
print "| Unparsing |",; t.reset();
|
# print "| Unparsing |",; t.reset();
|
||||||
img.unparse(newBpp=24);
|
# img.unparse(newBpp=24);
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
print "| Writing File |",; t.reset();
|
# print "| Writing File |",; t.reset();
|
||||||
with open( sys.argv[2], "w") as f:
|
# with open( sys.argv[2], "w") as f:
|
||||||
f.write( img.binData );
|
# f.write( img.binData );
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1066,14 +1078,14 @@ def testStroke(img):
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
print "| Unparsing |",; t.reset();
|
# print "| Unparsing |",; t.reset();
|
||||||
img.unparse(newBpp=24);
|
# img.unparse(newBpp=24);
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
print "| Writing File |",; t.reset();
|
# print "| Writing File |",; t.reset();
|
||||||
with open( sys.argv[2], "w") as f:
|
# with open( sys.argv[2], "w") as f:
|
||||||
f.write( img.binData );
|
# f.write( img.binData );
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1124,14 +1136,14 @@ def testAverageFilter(img):
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
# Unparsing
|
# Unparsing
|
||||||
print "| Unparsing file |",; t.reset();
|
# print "| Unparsing file |",; t.reset();
|
||||||
img.unparse()
|
# img.unparse()
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
# image to stdout
|
# # image to stdout
|
||||||
print "| Writing file |",; t.reset();
|
# print "| Writing file |",; t.reset();
|
||||||
img.write( sys.argv[2] )
|
# img.write( sys.argv[2] )
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1179,14 +1191,14 @@ def testLaplace(img):
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
# Unparsing
|
# Unparsing
|
||||||
print "| Unparsing file |",; t.reset();
|
# print "| Unparsing file |",; t.reset();
|
||||||
img.unparse()
|
# img.unparse()
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
# image to stdout
|
# # image to stdout
|
||||||
print "| Writing file |",; t.reset();
|
# print "| Writing file |",; t.reset();
|
||||||
img.write( sys.argv[2] )
|
# img.write( sys.argv[2] )
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1224,14 +1236,14 @@ def testRoberts(img):
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
# Unparsing
|
# Unparsing
|
||||||
print "| Unparsing file |",; t.reset();
|
# print "| Unparsing file |",; t.reset();
|
||||||
img.unparse()
|
# img.unparse()
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
# image to stdout
|
# # image to stdout
|
||||||
print "| Writing file |",; t.reset();
|
# print "| Writing file |",; t.reset();
|
||||||
img.write( sys.argv[2] )
|
# img.write( sys.argv[2] )
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1272,14 +1284,14 @@ def testPrewitt(img):
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
# Unparsing
|
# Unparsing
|
||||||
print "| Unparsing file |",; t.reset();
|
# print "| Unparsing file |",; t.reset();
|
||||||
img.unparse()
|
# img.unparse()
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
# image to stdout
|
# # image to stdout
|
||||||
print "| Writing file |",; t.reset();
|
# print "| Writing file |",; t.reset();
|
||||||
img.write( sys.argv[2] )
|
# img.write( sys.argv[2] )
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1322,14 +1334,14 @@ def testSobel(img):
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
# Unparsing
|
# Unparsing
|
||||||
print "| Unparsing file |",; t.reset();
|
# print "| Unparsing file |",; t.reset();
|
||||||
img.unparse()
|
# img.unparse()
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
# image to stdout
|
# # image to stdout
|
||||||
print "| Writing file |",; t.reset();
|
# print "| Writing file |",; t.reset();
|
||||||
img.write( sys.argv[2] )
|
# img.write( sys.argv[2] )
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1382,14 +1394,14 @@ def testConvolution(img):
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
# Unparsing
|
# Unparsing
|
||||||
print "| Unparsing file |",; t.reset();
|
# print "| Unparsing file |",; t.reset();
|
||||||
img.unparse()
|
# img.unparse()
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
# image to stdout
|
# # image to stdout
|
||||||
print "| Writing file |",; t.reset();
|
# print "| Writing file |",; t.reset();
|
||||||
img.write( sys.argv[2] )
|
# img.write( sys.argv[2] )
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1413,24 +1425,24 @@ def testConvolution(img):
|
||||||
# Parse le fichier d'origine
|
# Parse le fichier d'origine
|
||||||
# Applique le filtre
|
# Applique le filtre
|
||||||
# Unparse l'image et l'enregistre dans le fichier de sortie
|
# Unparse l'image et l'enregistre dans le fichier de sortie
|
||||||
def testBichrome():
|
def testBichrome(img):
|
||||||
t = Timer();
|
t = Timer();
|
||||||
|
|
||||||
|
|
||||||
# lecture du fichier
|
# lecture du fichier
|
||||||
print "| Reading Image |",; t.reset();
|
# print "| Reading Image |",; t.reset();
|
||||||
with open( sys.argv[1] ) as file:
|
# with open( sys.argv[1] ) as file:
|
||||||
binFile = file.read()
|
# binFile = file.read()
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
img = BMPFile(); # Instanciation du BMPFile
|
# img = BMPFile(); # Instanciation du BMPFile
|
||||||
|
|
||||||
|
|
||||||
# Parsing
|
# # Parsing
|
||||||
print "| Parsing file |",; t.reset();
|
# print "| Parsing file |",; t.reset();
|
||||||
img.parse( binFile );
|
# img.parse( binFile );
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
print "| Application du filtre |",; t.reset();
|
print "| Application du filtre |",; t.reset();
|
||||||
|
@ -1441,17 +1453,20 @@ def testBichrome():
|
||||||
255*int( (pixel.r+pixel.g+pixel.b)/3 >= 128 ),
|
255*int( (pixel.r+pixel.g+pixel.b)/3 >= 128 ),
|
||||||
255*int( (pixel.r+pixel.g+pixel.b)/3 >= 128 )
|
255*int( (pixel.r+pixel.g+pixel.b)/3 >= 128 )
|
||||||
)
|
)
|
||||||
|
img.drawer.setPixel( pixel );
|
||||||
|
img.drawer.refresh();
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
# Unparsing
|
# Unparsing
|
||||||
print "| Unparsing file |",; t.reset();
|
# print "| Unparsing file |",; t.reset();
|
||||||
img.unparse()
|
# img.unparse()
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
# image to stdout
|
# # image to stdout
|
||||||
print "| Writing file |",; t.reset();
|
# print "| Writing file |",; t.reset();
|
||||||
img.write( sys.argv[2] )
|
# img.write( sys.argv[2] )
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1471,39 +1486,39 @@ def testBichrome():
|
||||||
# Parse le fichier d'origine
|
# Parse le fichier d'origine
|
||||||
# Applique le filtre
|
# Applique le filtre
|
||||||
# Unparse l'image et l'enregistre dans le fichier de sortie
|
# Unparse l'image et l'enregistre dans le fichier de sortie
|
||||||
def testHighPass():
|
def testHighPass(img):
|
||||||
t = Timer();
|
t = Timer();
|
||||||
|
|
||||||
|
|
||||||
# lecture du fichier
|
# lecture du fichier
|
||||||
print "| Reading Image |",; t.reset();
|
# print "| Reading Image |",; t.reset();
|
||||||
with open( sys.argv[1] ) as file:
|
# with open( sys.argv[1] ) as file:
|
||||||
binFile = file.read()
|
# binFile = file.read()
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
img = BMPFile(); # Instanciation du BMPFile
|
# img = BMPFile(); # Instanciation du BMPFile
|
||||||
|
|
||||||
|
|
||||||
# Parsing
|
# # Parsing
|
||||||
print "| Parsing file |",; t.reset();
|
# print "| Parsing file |",; t.reset();
|
||||||
img.parse( binFile );
|
# img.parse( binFile );
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
print "| Application du filtre |",; t.reset();
|
print "| Application du filtre |",; t.reset();
|
||||||
img.content.map = FX.Filter.HighPass(img.content.map);
|
img.content.map = FX.Filter.HighPass(img.drawer, img.content.map);
|
||||||
print "%s |" % (t.get())
|
print "%s |" % (t.get())
|
||||||
|
|
||||||
# Unparsing
|
# Unparsing
|
||||||
print "| Unparsing file |",; t.reset();
|
# print "| Unparsing file |",; t.reset();
|
||||||
img.unparse()
|
# img.unparse()
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
# image to stdout
|
# # image to stdout
|
||||||
print "| Writing file |",; t.reset();
|
# print "| Writing file |",; t.reset();
|
||||||
img.write( sys.argv[2] )
|
# img.write( sys.argv[2] )
|
||||||
print "%s |" % (t.get())
|
# print "%s |" % (t.get())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,9 @@ class Drawer():
|
||||||
self.count = 0;
|
self.count = 0;
|
||||||
|
|
||||||
|
|
||||||
|
def setSize(self, width, height):
|
||||||
|
self.__init__(width, height);
|
||||||
|
|
||||||
# remet le compteur à zéro
|
# remet le compteur à zéro
|
||||||
def reset(self):
|
def reset(self):
|
||||||
self.count = 0;
|
self.count = 0;
|
||||||
|
@ -24,7 +27,7 @@ class Drawer():
|
||||||
|
|
||||||
# dessine un pixel de type RGBPixel(BMPFile)
|
# dessine un pixel de type RGBPixel(BMPFile)
|
||||||
def setPixel(self, rgbpix):
|
def setPixel(self, rgbpix):
|
||||||
self.screen.set_at( (rgbpix.x, rgbpix.y), (rgbpix.r, rgbpix.g, rgbpix.b) );
|
self.screen.set_at( (rgbpix.x, rgbpix.y), (rgbpix.r, rgbpix.b, rgbpix.g) );
|
||||||
self.count = (self.count + 1) % self.width; # incrémente le compteur
|
self.count = (self.count + 1) % self.width; # incrémente le compteur
|
||||||
|
|
||||||
if( self.count >= self.width-1 ): # si le compteur a fait une ligne complète
|
if( self.count >= self.width-1 ): # si le compteur a fait une ligne complète
|
||||||
|
|
Loading…
Reference in New Issue