实现图像等高线绘图的基本思路

Posted

技术标签:

【中文标题】实现图像等高线绘图的基本思路【英文标题】:basic idea to implement contour plotting of image 【发布时间】:2013-06-30 01:39:21 【问题描述】:

我一直在使用matplotlib.pyplot.contour绘制图像的轮廓,我想知道如何实现轮廓绘制,但是我发现pyplot.contour的代码我很难理解。我的想法是,对于灰度图像,每个像素都有一个强度值,为了绘制其轮廓,我可能会选择一组强度值,例如将范围 [min-intensity-value, max-intensity-value] 划分为 10 个段 [min-intensity-value, val0, val1,..., val8, max-intensity-value],然后对于每个段的边界强度值(如val0, val1,...,val8),找出所有具有相同强度值的像素,我认为这些像素将形成轮廓线。

我的想法是正确的方法吗?希望任何人都可以给我一个关于如何实现它的基本想法。 谢谢。

【问题讨论】:

【参考方案1】:

你用相同颜色连接所有值的想法行不通,因为不能保证它们是连接的。另外,考虑例如两个相同颜色的像素在拐角处接触的情况:没有办法说它们是否连接或例如另一个对角线。

我相信问题基本上是您想要实现的目标。如果您只想对图像进行矢量化,则有现成的工具可以做到这一点,例如POtrace。如果你需要一些特殊的东西或有特殊的输入数据,那么当你告诉人们这件事时,你会得到更好的结果。那样的话,我还要花一两个小时从他们的网站上查找关于 POtrace 算法的非常好的描述,也许你可以从中借鉴一些好的想法?

【讨论】:

以上是关于实现图像等高线绘图的基本思路的主要内容,如果未能解决你的问题,请参考以下文章

学术绘图丨Origin如何做三元等高线相图

MATLAB | 特殊绘图小合集 | 渐变面积图环形树状图不规则等高线填充图

MATLAB | 特殊绘图小合集 | 渐变面积图环形树状图不规则等高线填充图

Matplotlib_2

Matplotlib绘制函数的等高线与三维图像

Matplotlib绘制函数的等高线与三维图像