Построить изогнутую линию на изображении? - PullRequest
1 голос
/ 02 мая 2019

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

дано: координаты черного пикселя в моем изображении.

ищу: желтый многочлен, который лучше всего подходит длячерные пиксели

enter image description here

import cv2
import numpy as np

cv2.imread("foo.jpg")
#search for the black pixels and save the coordinates.

#coordinates of all pixels (example)
x = np.array([0.0, 1.0, 2.0, 3.0,  4.0,  5.0]) 
y = np.array([0.0, 0.8, 0.9, 0.1, -0.8, -1.0]) 
z = np.polyfit(x, y, 2)
p = np.poly1d(z)

Если я все правильно понимаю, теперь я создал многочлен (желтая линия на изображении) с помощью np.poly1d().Но как я могу нарисовать это на моем bgr_img?

Редактировать:

Пока это мой код:

import cv2
import numpy as np

img = cv2.imread("white_foo.jpg") #1000x1000 pixel

#lets say these are my black pixels in a white image.
x = np.array([122, 224, 210, 350,  380,  250, 490, 623, 711, 819, 900])
y = np.array([536, 480, 390, 366, 270, 240, 180, 210, 280, 400, 501])

#calculate the coefficients.
z = np.polyfit(x, y, 2)
lspace = np.linspace(0, 1000, 100)

#here I want to draw the polynomial which I calculated with polyfit on my image

cv2.imshow("test", img)
cv2.waitKey(0)

Заранее спасибо

1 Ответ

0 голосов
/ 02 мая 2019

Появился быстрый гугл: https://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html#polylines

и это: Функция полилиний Opencv в python выдает исключение

В любом случае вам нужно оценить полиномв точках, которые вас интересуют, затем отформатируйте эти точки соответствующим образом (polylines хочет, чтобы они были в контейнере int32, отформатированном как [[x_1, y_1], [x_2, y_2], ... , [x_n, y_n]]).Затем просто вызовите функцию.

draw_x = lspace
draw_y = np.polyval(z, draw_x)   # evaluate the polynomial

draw_points = (np.asarray([draw_x, draw_y]).T).astype(np.int32)   # needs to be int32 and transposed

cv2.polylines(img, [draw_points], False, (0,0,0))  # args: image, points, closed, color

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...