class Hough:
"""Hough transform.
- This class stores the transformed image and metainformation.
+ This class stores the parameters of the transformation.
"""
- def __init__(self, size, dt, init_angle, image):
+ def __init__(self, size, dt, init_angle):
self.size = size # this is a tuple (width, height)
self.dt = dt # this is the angle step in hough transform
self.initial_angle = init_angle
- self.image = image
@classmethod
- def Transform(cls, image):
- """Create Hough transform of the *image* with default parameters."""
- # TODO rename to transform?
+ def default(cls, image):
+ """Default parameters for Hough transform of the *image*."""
size = image.size
dt = pi / size[1]
initial_angle = (pi / 4) + (dt / 2)
- image_s = pcf.hough(size, image.tostring(), initial_angle, dt)
- image_t = Image.fromstring('L', size, image_s)
- return cls(size, dt, initial_angle, image_t)
+ return cls(size, dt, initial_angle)
+
+ def transform(self, image):
+ image_s = pcf.hough(self.size, image.tostring(), self.initial_angle,
+ self.dt)
+ image_t = Image.fromstring('L', self.size, image_s)
+ return image_t
def apply_filter(self, filter_f):
return Hough(self.size, self.dt, self.initial_angle,
lines.append(self.angle_distance(p))
return lines
- def all_lines_h(self):
+ def all_lines_h(self, image):
# TODO what is this?
- im_l = self.image.load()
+ im_l = image.load()
lines1 = []
for x in xrange(self.size[0] / 2):
for y in xrange(self.size[1]):