1 """Hough transform module."""
3 from math import sin, cos, pi
10 def __init__(self, size):
12 self.dt = pi / size[1]
13 self.initial_angle = (pi / 4) + (self.dt / 2)
15 def transform(self, image):
16 image_s = pcf.hough(image.size, image.tostring(), self.initial_angle, self.dt)
17 image = Image.fromstring('L', image.size, image_s)
20 def lines_from_list(self, p_list):
23 lines.append(self.angle_distance(p))
26 def all_lines_h(self, image):
29 for x in xrange(image.size[0] / 2):
30 for y in xrange(image.size[1]):
32 lines1.append(self.angle_distance((x, y)))
34 for x in xrange(image.size[0] / 2, image.size[0]):
35 for y in xrange(image.size[1]):
37 lines2.append(self.angle_distance((x, y)))
38 return [lines1, lines2]
40 def all_lines(self, image):
43 for x in xrange(image.size[0]):
44 for y in xrange(image.size[1]):
46 lines.append(self.angle_distance((x, y)))
49 def angle_distance(self, point):
50 return (self.dt * point[1] + self.initial_angle, point[0] - self.size[0] / 2)