Нахождение угла поворота внутри номерного знака - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь исправить искажения внутри номерных знаков, такие как:

Distorted license plates

Однако я не могу найти надежный способ обнаружитьугол поворота.Я пытался использовать собственные значения как здесь , но это не удалось.

Я также думал об обнаружении линий Хафа, но результаты остаются плохими.

Что я могу сделать, чтобы улучшитьобнаружение вращения?

1 Ответ

0 голосов
/ 29 декабря 2018

Найдите контур пластины, а затем найдите угол пластины по cv2.minAreaRect

#preprocessing steps
...
#find angle
im2, contours, hierarchy = cv2.findContours(preprocessed_sloping_plate,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

#contour with the largest area is possibly the plate
max_area = 0
max_cnt = None
for cnt in contours:
    area = cv2.contourArea(cnt)
    if(area > max_area):
        max_area = area 
        max_cnt = cnt

min_rect = cv2.minAreaRect(max_cnt)
(x,y,w,h,angle) = min_rect

#rotate
M = cv2.getRotationMatrix2D((w/2, h/2), angle, 1.0)
rotated_plate = cv2.warpAffine(preprocessed_sloping_plate, M, (w,h))
...