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 33 34 35 36 37 38 39 40 41 42 43
| #Ouvrir une image.
#Conversion de l'image 12bits en 8bits
#Rotation de l'Image
#Déterminer une valeur de seuil
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy
import scipy.ndimage
import Image
from math import hypot, pi, cos, sin
#Ouverture du fichier
lena = Image.open('C:/Users/emilie/Desktop/Stage/matlab_pg_pour_ilids/gouttes_defocalisees_1.TIF').convert('I')
def hough(lena, ntx=1, mry=255):
"Calcul de la transformation de hough"
nimx, mimy = lena.size
mry = int(mry/2)*2 #Make sure that this is even
him = Image.new("L", (ntx, mry), 255)
phim = him.load()
rmax = hypot(nimx, mimy)
dr = rmax / (mry/2)
dth = pi / ntx
for jx in xrange(nimx):
for iy in xrange(mimy):
col = lena[jx, iy]
if col == 255: continue
for jtx in xrange(ntx):
th = dth * jtx
r = jx*cos(th) + iy*sin(th)
iry = mry/2 + int(r/dr+0.5)
phim[jtx, iry] = 1
return him
def test():
"Test Hough transform with pentagon."
him = hough(lena)
him.save("ho5.bmp")
if __name__ == "__main__": test() |
Partager