Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从matplotlib等高线图中提取特定路径_Python_Image Processing_Numpy_Matplotlib - Fatal编程技术网

Python 从matplotlib等高线图中提取特定路径

Python 从matplotlib等高线图中提取特定路径,python,image-processing,numpy,matplotlib,Python,Image Processing,Numpy,Matplotlib,我有以下等高线图: fig, axes = plt.subplots(1,6, figsize=(18,3)) for idx in range(6): axes[idx].contour(KX[kxl:kxr,kxl:kxr],KY[kxl:kxr,kxl:kxr],eigs[kxl:kxr,kxl:kxr,idx].real, levels=[0]) axes[idx].set_xlabel(x_label_k) axes[0].set_ylabel(y_label_k)

我有以下等高线图:

fig, axes = plt.subplots(1,6, figsize=(18,3))

for idx in range(6):
    axes[idx].contour(KX[kxl:kxr,kxl:kxr],KY[kxl:kxr,kxl:kxr],eigs[kxl:kxr,kxl:kxr,idx].real, levels=[0])
    axes[idx].set_xlabel(x_label_k)

axes[0].set_ylabel(y_label_k)

将它们重叠会产生下图:

fig, ax = plt.subplots(1,1, figsize=(4,4))

for idx in range(6):
    ax.contour(KX[kxl:kxr,kxl:kxr],KY[kxl:kxr,kxl:kxr],eigs[kxl:kxr,kxl:kxr,idx].real, levels=[0])

ax.set_xlabel(x_label_k)
ax.set_ylabel(y_label_k)

从上图中,我感兴趣的是绘制编辑后的下图中显示的4个“圆形”形状:

如果可能的话,我想要一对(kx,ky)点,它们组成了这些细长的圆,没有来自其他工件的任何点

我已经看到有一种从等高线图中提取点值的方法,但是,它给了我一组(20002000)点,我不知道如何过滤。我在想也许可以根据等高线图的路径做些什么


请注意,实际上可以在6个图的行中看到圆形状的起源,但问题是为了组成2个较小的内圆,必须组合子图2、3、4和5。对于较大的外部点,则更简单,因为它们在子地块5和6中相对分离良好。

当您从等高线中提取了一组点时,请尝试。给出了一个在C#中实现的从噪声点中提取圆的方法。给出了一个通用而简单的
Python
实现

您还可以尝试
最小二乘圆拟合
,其中给出了
Python
中的示例

祝你好运