def func_get_line_coords(blank_canvas, coord_pairs_to_draw):
to_return = list()
for idx, coord_pair in enumerate(coord_pairs_to_draw):
cv2.line(blank_canvas, coord_pair[0], coord_pair[1], idx+1, 1)
to_return.append(np.argwhere(blank_canvas==idx+1))
return to_return
blank_canvas = np.zeros((1000,1000), dtype=np.uint8)
coord_pairs_to_draw = [[(23, 76), (900, 4)], [(890, 640), (32, 500)], [(876, 43), (29, 900)], [(1, 3), (709, 82)], [(47, 23), (900, 900)]]
pixel_coords = func_get_line_coords(blank_canvas, coord_pairs_to_draw)
В соответствии с заголовком я пытаюсь получить список координат для линии, полученной между 2 координатами с помощью cv2. Я не заинтересован в самом графике, и кажется, что необходимость фактически нарисовать линию, а затем найти совпадающие координаты, может оказаться ненужной затратами . Выше приведена самая быстрая реализация, которую я могу придумать (это игрушечный пример) с использованием этого типа подхода.
Я пытаюсь придерживаться результатов, «как бы вырабатывал opencv», чтобы избежать несоответствий со значениями, если я позже заговор с самим opencv (я не уверен, может ли точное положение пикселя варьироваться между различными алгоритмами, которые использует opencv).
EDIT : я немного отредактировал вопрос, чтобы передать это У меня есть подход (путем рисования и извлечения), но я стремлюсь ускорить это и думал, что устранение ничьей, тогда чтение может быть способом сделать это.