我一直在使用matplotlib.pyplot.contour
绘制图像的轮廓,我想知道如何实现轮廓绘图,但我发现pyplot.contour
的代码很难理解。我有这样的想法,对于灰度图像,每个像素都有一个强度值,为了绘制其轮廓,我可能会选择一组强度值,比如将范围[min-intensity-value, max-intensity-value]
划分为10个段[min-intensity-value, val0, val1,..., val8, max-intensity-value]
,然后对于每个片段的边界强度值(如val0, val1,...,val8
),找出所有具有相同强度值的像素,我认为这些像素将形成一个等高线。
我的想法是正确的方法吗?希望任何人都可以给我一个关于如何实现它的基本想法。 感谢。
答案 0 :(得分:1)
您使用相同颜色连接所有值的想法将无效,因为无法保证这些值已连接。另外,考虑例如两个相等颜色的像素在角落处接触的情况:没有办法说明这些像素是否已连接或例如另一条对角线。
我认为这个问题基本上就是你想要实现的目标。如果您只想对图像进行矢量化,则可以使用现有的工具,例如POtrace。如果您需要特殊的东西或有特殊的输入数据,那么当您告诉人们这一点时,您将获得更好的结果。在这种情况下,我还需要一两个小时从他们的网站上查找POtrace算法的非常好的描述,也许你可以从中借用一些好的想法?