Skip to content
Snippets Groups Projects
Commit b04b1a16 authored by Taddeus Kroes's avatar Taddeus Kroes
Browse files

Fixed 80 character limit.

parent 81644280
No related branches found
No related tags found
No related merge requests found
......@@ -18,30 +18,30 @@ class LicensePlate:
self.height = int(properties['height'])
self.read_xml()
def are_corners_sorted(corners):
''' Check if points are sorted clockwise, starting in the left-top
corner.'''
'''Check if points are sorted clockwise, starting in the left-top
corner.'''
x0, y0 = corners[0].to_tuple()
x1, y1 = corners[1].to_tuple()
x2, y2 = corners[2].to_tuple()
x3, y3 = corners[3].to_tuple()
return x0 < x1 and y1 <= y2 and x2 >= x3 and y3 > y0
def sort_corners(corners):
'''Sort the corners clockwise, starting in the left-top corner. '''
'''Sort the corners clockwise, starting in the left-top corner.'''
tuples = []
output = []
for point in corners:
tuples.append(point.to_tuple())
bot1 = (0, 0)
bot2 = (0, 0)
top1 = None
top2 = None
# Get bottom points (where the y value is the largest). The top points
# are the points that are not a bottom point.
for tup in tuples:
......@@ -50,7 +50,7 @@ class LicensePlate:
top1 = bot2
else:
top2 = bot2
if tup[1] > bot1[1]:
bot2 = bot1
bot1 = tup
......@@ -61,7 +61,7 @@ class LicensePlate:
top1 = tup
else:
top2 = tup
# First point is the smallest x-value top point, second is the other
# top point
if top1[0] < top2[0]:
......@@ -70,7 +70,7 @@ class LicensePlate:
else:
output.append(Point(top2[0], top2[1]))
output.append(Point(top1[0], top1[1]))
# Third point is the bottom point with the largest x-value, fourth is
# the other bottom point
if bot1[0] > bot2[0]:
......@@ -79,9 +79,9 @@ class LicensePlate:
else:
output.append(Point(bot2[0], bot2[1]))
output.append(Point(bot1[0], bot1[1]))
return output
# sets the entire license plate of an image
def retrieve_data(self, corners):
x0, y0 = corners[0].to_tuple()
......@@ -111,16 +111,16 @@ class LicensePlate:
or_coor = dot(P, ([[i],[j],[1]]))
or_coor_h = (or_coor[1][0] / or_coor[2][0],
or_coor[0][0] / or_coor[2][0])
data[j][i] = self.pV(or_coor_h[0], or_coor_h[1])
return data
def get_transformation_matrix(self, matrix):
# Get the vector p and the values that are in there by taking the SVD.
# Since D is diagonal with the eigenvalues sorted from large to small on
# the diagonal, the optimal q in min ||Dq|| is q = [[0]..[1]]. Therefore,
# p = Vq means p is the last column in V.
# Since D is diagonal with the eigenvalues sorted from large to small
# on the diagonal, the optimal q in min ||Dq|| is q = [[0]..[1]].
# Therefore, p = Vq means p is the last column in V.
U, D, V = svd(matrix)
p = V[8][:]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment