1 """Hough transform module."""
10 def __init__(self, size, dt, init_angle, image):
13 self.initial_angle = init_angle
17 def Transform(cls, image):
20 initial_angle = (pi / 4) + (dt / 2)
21 image_s = pcf.hough(size, image.tostring(), initial_angle, dt)
22 image_t = Image.fromstring('L', size, image_s)
23 return cls(size, dt, initial_angle, image_t)
25 def apply_filter(self, filter_f):
26 return Hough(self.size, self.dt, self.initial_angle,
29 def lines_from_list(self, p_list):
32 lines.append(self.angle_distance(p))
35 def all_lines_h(self):
36 im_l = self.image.load()
38 for x in xrange(self.size[0] / 2):
39 for y in xrange(self.size[1]):
41 lines1.append(self.angle_distance((x, y)))
43 for x in xrange(self.size[0] / 2, self.size[0]):
44 for y in xrange(self.size[1]):
46 lines2.append(self.angle_distance((x, y)))
47 return [lines1, lines2]
50 im_l = self.image.load()
52 for x in xrange(self.size[0]):
53 for y in xrange(self.size[1]):
55 lines.append(self.angle_distance((x, y)))
58 def angle_distance(self, point):
59 return (self.dt * point[1] + self.initial_angle,
60 point[0] - self.size[0] / 2)