1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| # -*- coding: cp1252 -*-
import Image
import numpy
im = Image.open('/Users/thomashance/Desktop/tfe/prog/DSC00001.JPG').split()
larg, haut = im[0].size ## long et largeur de l'image
im[0].save('/Users/thomashance/Desktop/tfe/prog/r.png') ## juste pour voir ce que ca donne visuellement
im[1].save('/Users/thomashance/Desktop/tfe/prog/g.png') ## juste pour voir ce que ca donne visuellement
im[2].save('/Users/thomashance/Desktop/tfe/prog/b.png') ## juste pour voir ce que ca donne visuellement
r = numpy.array(list(im[0].getdata())) ## création d'un tableau avec R
g = numpy.array(list(im[1].getdata())) ## création d'un tableau avec G
b = numpy.array(list(im[2].getdata())) ## création d'un tableau avec B
n = numpy.where(g<70, 255, 0) ## seuillage sur G, on conserve les pixels en dessous de 70 => il ne reste que les noires
matrix = numpy.reshape(n, (larg,haut))## mettre la matrice en forme, sinon bugs
noire = Image.new('L', (larg, haut))## création d'une instance d'image
noire.putdata(list(matrix.flat))## "transformation de la matric en image
noire.save('/Users/thomashance/Desktop/tfe/prog/noir.jpg')## on la sauve
noire.show() ## prévi.
v = numpy.where(b<70, 255, 0) ## seuillage sur B, on conserve les pixels en dessous de 70 => on obtient les noires et les vertes
n = 255-n ## on inverse l'image des taches noires
v &= n ## et binaire avec l'image sans les taches noires, permet de rcuprer que les taches vertes
matrix2 = numpy.reshape(v, (larg,haut))
vert = Image.new('L', (larg, haut))
vert.putdata(list(matrix2.flat))
vert.save('/Users/thomashance/Desktop/tfe/prog/vert.tiff')
vert.show() |
Partager