Передача координат Хафа в космическую область - PullRequest
0 голосов
/ 30 марта 2020

У меня есть задание, в котором мне нужно определить края простого прямоугольника на этом изображении. Я немного растерялся в последней части, где мой учитель просит нас извлечь пространственные координаты из координат Хафа, используя ? = ?cos (?) + ?sin (?). enter image description here

Он сказал:

"Найдите пересечение этих линий, которое соответствует четырем углам пластины. Получите эти координаты и примените двоичная маска на исходном изображении для того, чтобы получить только номерной знак. Когда вы получаете пиксельные координаты углов номерного знака, вы можете использовать функцию, предусмотренную этим назначением.

Для расчета пересечения точки, мы можем использовать нормальную форму: xcos (theta) + ysin (theta) - rho. Если мы создадим матрицу с этим уравнением, заменив x и y положением пикселей и theta, rho параметрами обнаруженного линии, мы получим матрицу, для которой интенсивности будут принимать значение 0, когда мы находимся на линии. Таким образом, мы можем идентифицировать пиксели в изображении, принадлежащем линии. Мы можем повторить для всех обнаруженных линий и использовать этот результат чтобы найти место, где пересекаются линии. "

Я заблокирован здесь: / Я пытался что-то, но это далеко от хороший способ, я думаю .. я действительно не понимаю, как правильно использовать ? и ? для выполнения работы.

from skimage.feature import peak_local_max
import math  

Local_Max= peak_local_max(out, num_peaks=6,min_distance=15 ,exclude_border=False)

# cadrage is the input of hough_line...its the rectangle
y,x = cadrage.shape
array = np.arange(x*y).reshape(y,x)

# filling the matrix with the equation
for i in range(y):
    for j in range(x):
        array[i,j] = (i * math.cos(angles[1])) + (j * math.sin(angles[1])) - d[1]

...