史蒂夫在图像处理与matlab

图像处理概念,算法和matlab

Upslope地区 - 高原检测

在我的以前的Upslope区域帖子,我在马萨诸塞州米尔福德北池塘周围展示了这款像素流的图表:

请注意,池塘中的像素没有箭头。事实上,Pixelflow.M-File I以前所显示的M-File I无法计算这些像素的像素流动方向或大小,因为它们处于平坦区域,或者高原。进一步来说,Pixelflow.返回流动方向对于没有下坡邻居的任何像素。

有一个简单的方法来找到所有这些像素使用形态侵蚀。平面结构单元的侵蚀等效于局部最小算子。如果一个像素及其邻居的最小值等于这个像素本身,那么我们就称它为平台像素。

s = load('upslope_sample_dem');池塘= s.Zm(140:280, 160:230);Plateaus = imerosion (pond, ones(3,3)) == pond;imshow(高原、'InitialMagnification''合身') 标题('Plateaus'

我想将Plateaus分为三种类型:

  • 水平的水平,但没有上坡邻居;这些都被称为区域最大值
  • 高山的平原但没有下坡邻居;这些都被称为区域最小值
  • Plateaus与上坡和下坡邻居

图像处理工具箱具有查找区域最大值和区域最小值的函数:

max_plateaus = imregionalmax(池塘);imshow(max_plateaus,'InitialMagnification''合身') 标题('Max Plateaus'
min_plateaus = imregionalmin(池塘);imshow(min_plateaus,'InitialMagnification''合身') 标题('闵PLATEAUS'

现在,我们可以通过使用逻辑运算符来识别高原上的像素,包括相邻的上坡和下坡:

mid_plateaus = plateaus&〜(max_plateaus | min_plateaus);imshow(mid_plateaus,'InitialMagnification''合身') 标题('MID PLATEAUS'

下次我将努力计算这些不同种类的高原像素的流动方向的过程。




发布MATLAB®7.4

|
  • 打印
  • 发电子邮件

评论

要发表评论,请点击在这里登录您的MathWorks帐户或创建新的。