Python:创建形状未知的蒙版

问题描述 投票:1回答:1

我正在尝试提取具有“未知”形状的蒙版。我将更好地解释自己:

我的原始数据由NaN组成的矩阵或多或少围绕着真实数据。我使用了sobel运算符来检测边缘:

#data is a matrix with Nan
mask = np.isnan(data)
data[mask] = 0
data[~mask] = 1 
out = sobel(data) #sobel is a function that returns the gradient

sobel output

在图中,报告了sobel操作的输出。由于原始数据在真实数据中也具有NaN,因此sobel运算符将检测内部边缘。我想尝试一种仅检测外部边缘(看起来像菱形的图形)的方法。考虑到不仅该形状可以改变(可以是正方形或矩形),而且位置也可以改变(即可以偏心,或者相对于图像尺寸很小)。我得到的结果应该是一个蒙版,其中所有外部像素都设置为True(或False),而所有内部像素都设置为False(或True)。

谢谢!

我正在尝试提取具有“未知”形状的蒙版。我将更好地说明自己:我的原始数据由NaN组成的矩阵或多或少围绕着真实数据。我用了...

python-3.x image-processing masking edge-detection
1个回答
1
投票

一种可能的部分解决方案是使用opening操作,该操作定义为腐蚀然后扩张。我使用了skimage提供的那一项:

© www.soinside.com 2019 - 2024. All rights reserved.