在python中绘制轮廓

Posted

技术标签:

【中文标题】在python中绘制轮廓【英文标题】:Plotting contour in python 【发布时间】:2019-02-27 03:41:42 【问题描述】:

我有一个形状为 (15,2) 的 np 数组 当我对该数组的第一维和第二维进行网格划分并编写该数组的函数,然后使用轮廓绘图时,输出为空白。我不明白出了什么问题。请指导我。

代码是:

M=[[12.647,4.2439],[13.744,8.9295],[13.93,9.191 ],[16.223,12.452 ],
   [16.475 , 12.784 ],
   [16.535 , 12.813 ],
   [16.774 , 13.377 ],
   [16.949 , 13.465 ],
   [17.295 , 13.494 ],
   [17.329 , 13.613 ],
   [18.183 , 14.683 ],
   [19.055 , 14.871 ],
   [19.098 , 15.487 ],
   [21.798 , 16.23  ],
   [22.241 , 16.411 ]]
x1,y1=np.meshgrid(M[:,0],M[:,1])
F=np.sqrt(x1**2 + y1**2)
plt.contour(x1,y1,F)

这里 M 是 (15,2) 的 np 数组。 M的值有问题吗?

【问题讨论】:

您好!请查看***.com/help/mcve 并相应地修改您的示例。这应该让人们更容易帮助你。目前,您的示例不起作用,因为您没有提供M 我更新它@sobek 。我应该提供 M 的值吗? 是的,这会很有帮助。 更新了@sobek。 【参考方案1】:

这是我跑步时得到的

import numpy as np
import matplotlib.pyplot as plt


M = np.array([[12.647, 4.2439],
              [13.744, 8.9295],
              [13.93, 9.191],
              [16.223, 12.452],
              [16.475, 12.784],
              [16.535, 12.813],
              [16.774, 13.377],
              [16.949, 13.465],
              [17.295, 13.494],
              [17.329, 13.613],
              [18.183, 14.683],
              [19.055, 14.871],
              [19.098, 15.487],
              [21.798, 16.23],
              [22.241, 16.411]])

x1, y1 = np.meshgrid(M[:, 0], M[:, 1])
f = np.sqrt(x1 ** 2 + y1 ** 2)
plt.contour(x1, y1, f)
plt.show()

这是你想要的吗?如果不是,请详细说明您希望看到的内容。

【讨论】:

我没有得到这个,我得到了一个空白方块。 复制并粘贴我上面发布的代码。如果你得到不同的东西,那么你的 python、numpy 或 matplotlib 安装存在问题。 知道了,谢谢!

以上是关于在python中绘制轮廓的主要内容,如果未能解决你的问题,请参考以下文章

python-opencv轮廓基本绘制

Opencv和python获取文档正确的轮廓并在图像上绘制

在python中以低维表示绘制距离轮廓

python 获取,缩放和绘制轮廓的中心

python --opencv图像处理轮廓(寻找轮廓绘制轮廓)详解

使用Python,OpenCV进行基本的图像处理——提取红色圆圈轮廓并绘制