-"""Go image recognition lines-finding module"""
+"""Lines finding module."""
from functools import partial
import sys
import filters
from hough import Hough
-def find_lines(image, show_all, do_something, verbose):
-
- if verbose:
- print >> sys.stderr, "preprocessing"
-
- if show_all:
- do_something(image, "original image")
-
+def prepare(image, show_all, do_something, verbose):
+ # TODO comment
im_l = image.convert('L')
if show_all:
do_something(im_l, "ITU-R 601-2 luma transform")
if verbose:
print >> sys.stderr, "edge detection"
-
im_edges = filters.edge_detection(im_l)
if show_all:
do_something(im_edges, "edge detection")
im_h = filters.high_pass(im_edges, 100)
if show_all:
do_something(im_h, "high pass filters")
-
+
+ return im_h
+
+
+def find_lines(image, show_all, do_something, verbose):
+ """Find lines in the *image*."""
+ # TODO refactor into smaller functions
+
+ if verbose:
+ print >> sys.stderr, "preprocessing"
+
+ if show_all:
+ do_something(image, "original image")
+
+ im_h = prepare(image, show_all, do_something, verbose)
+
if verbose:
print >> sys.stderr, "hough transform"
return lines, lines_m[0][0], lines_m[1][0], bounds, im_hough
def combine(image1, image2):
+ """Return a list of points that are present in both images."""
im_l1 = image1.load()
im_l2 = image2.load()
return on_both
def line_from_angl_dist((angle, distance), size):
+ """Take *angle* and *distance* (from the center of the image) of a line and
+ size of the image. Return the line represented by two points."""
if pi / 4 < angle < 3 * pi / 4:
y1 = - size[1] / 2
x1 = int(round((y1 * cos(angle) + distance) / sin(angle))) + size[0] / 2