我的问题是我有一个 png
格式的雷达图像。 (抱歉,但我不得不删除该图像,因为我的同事说它侵犯了德国气象局的版权)
我想在 MATLAB 中读取图像。然后读取所有的云,并用唯一的索引标记每个云。这意味着属于某个云的每个像素都标有相同的索引i
。计算每个云的 area(coa)
中心,然后我应该能够测量从一个 coa 到另一个云之间的距离。
我知道一些类似的工作是在 IDL 中完成的。我尝试使用它,但如果我能够在 MATLAB 中完成所有这些工作并更多地关注结果,而不是花时间学习 IDL,那么对我来说会容易得多。
所以,在开始之前,我想知道这一切在 MATLAB 中是否可行。如果是,您能指导我如何提取云并为其添加标签吗?
最佳答案
首先进行一些基本的图像分析,例如阈值处理或中值滤波等,以减少相关的噪声。
然后你可以使用bwlabel
用唯一的索引标记每个云。使用reigonprops
找到质心。
这是一个非常基本的代码示例:
d=imread('u09q8.png');
bw = im2bw(d,0.1); % thereshold at 50%
bw = bwareaopen(bw, 10); % Remove objects smaller than 10 pixels from binary image
bw=bwlabel(bw); % label each cloud
stats=regionprops(bw,'Centroid'); % find centroid coordinates of all labeled clouds
关于matlab - matlab中的图像标记和寻找质心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14455661/