gpt4 book ai didi

python - 在图像上绘制曲线?

转载 作者:太空宇宙 更新时间:2023-11-03 23:07:35 26 4
gpt4 key购买 nike

假设我有一张带有一些黑色像素的图像。我知道黑色像素的所有坐标,我正在寻找黄线。

给定:我图像中黑色像素的坐标。

寻找:最适合黑色像素的黄色多项式

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)

提前致谢

最佳答案

Google 快速搜索:https://docs.opencv.org/2.4/modules/core/doc/drawing_functions.html#polylines

还有这个:Opencv polylines function in python throws exception

在任何情况下,您都需要在您感兴趣的点计算多项式,然后适本地格式化这些点(折线希望它们在 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

关于python - 在图像上绘制曲线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55955419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com