python - 在图像上绘制曲线
问题描述
我有一个带有一些点的图像,我需要在图像上绘制最适合的线。这些点将构成一条多项式线。
这是我到目前为止所得到的:
#The coordinates are filled in earlier (self.lx, self.ly)
z = np.polyfit(self.lx, self.ly, 2)
lspace = np.linspace(0, 100, 100)
draw_x = lspace
draw_y = np.polyval(z, draw_x) #I am unsure of how to draw it on to the image
解决方案
要在图像上绘制折线,您可以使用 opencv 的折线:
绘制多边形
要绘制多边形,首先需要顶点坐标。将这些点放入一个形状为 ROWSx1x2 的数组中,其中 ROWS 是顶点数,它应该是 int32 类型。在这里,我们用黄色绘制一个带有四个顶点的小多边形。
pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32)
pts = pts.reshape((-1,1,2))
cv.polylines(img,[pts],True,(0,255,255))
注意如果第三个参数为 False,您将获得连接所有点的折线,而不是闭合形状。cv.polylines() 可用于绘制多条线。只需创建要绘制的所有线条的列表并将其传递给函数。所有线条都将单独绘制。与为每条线调用 cv.line() 相比,绘制一组线是一种更好更快的方法。
推荐阅读
- docker - 在 Docker 上设置 Varnish + Drupal
- scala - 使用 akka http 的 Web 套接字的单元测试用例
- android - Android 生产调试问题
- c# - 工具条状态标签等于 (=) 字符
- angular - Angular 6 使用新的 RxJS 处理 403 响应
- php - laravel 中是否有用于身份验证登录的默认 URL?
- vue.js - 切换语言 VueI18n
- angular - 具有包含“:”的属性的 Json 响应
- spring-boot - 如何在 WildFly 10 中将爆炸战争部署为文件夹
- google-cloud-dataflow - PubSub 水印不前进