用MATLAB进行图像处理

图像处理概念、算法和MATLAB

定位美国大陆的分界线,第7部分——把它放在一起

今天是我的大陆分水岭系列.在之前的文章中,我使用计算美国大陆分水岭的问题作为探索数据导入、图像显示缩放、分水岭变换、标签矩阵、局部和区域最小值、二值图像操作、边界跟踪和可视化技术的工具。

在这最后一篇文章中,我认为将所有计算步骤集中在一个简短的脚本中会很有用,从数据导入到可视化。

%导入瓷砖e10g和f10g。Data_size = [6000 10800 1];%数据有1个波段。精度=' int16 = > int16”%将16位带符号的整数读入int16数组。header_bytes = 0;交错=“bsq”%乐队顺序。对1波段不重要。byte_order =“ieee-le”;E = multibandread (“e10g”, data_size, precision, header_bytes,...交错,byte_order);F = multibandread (“f10g”, data_size, precision, header_bytes,...交错,byte_order);[e, f];%裁剪数据。dem = EF(1:4000, 6000:14500);做一个海洋面具。Ocean_mask = dem == -500;%修改海洋掩码,使其只包含两个连接的组件左边和右边。[M, N] = size(dem);ocean_mask = bwselect(ocean_mask, [1 N], [1 1]);%修改DEM,使其唯一的区域最小值是ocean_mask%像素。Dem_modified = imimposemin(dem, ocean_mask);%计算修正DEM的分水岭变换。L =分水岭(dem_modified);想象结果。首先,将分水岭的输出转换为颜色%的形象。太平洋= [0.2 1 0.2];大西洋= [0.3 0.3 1];山脊= [1 0 0];rgb = label2rgb(L,[太平洋;大西洋)、岭);%将彩色分水岭图像叠加到DEM上。imshow(民主党,3000年[-500],“InitialMagnification”“健康”)举行h = imshow (rgb);集(h,“AlphaData”, 0.2);描出分水岭脊线,并将其叠加为一条粗红线。b = bwboundaries(L == 0,4);b1 = b {1};这里只有一条边界——山脊线。x = b1 (:, 2);y = b1 (: 1);情节(x, y,“r”“线宽”2);

就是这样!我希望你喜欢这个系列。

对于使用DEM数据进行有趣的计算和可视化,你有自己的想法吗?请发表评论。

关于这个系列

本系列探讨了计算美国大陆分水岭位置的问题。这道分水岭将大西洋和太平洋流域划分为北美大陆。

作为一个算法开发问题,计算分水岭让我们可以探索数据导入和可视化、操作二值图像掩模、标签矩阵、区域最小值和分水岭变换等方面。

  • 第1部分——介绍。数据导入和显示。multibandreadimshow
  • 第2部分——分水岭变换。分水岭label2rgb
  • 第3部分——区域最小值。imerodeimregionalmin
  • 第4部分——海洋面具。二进制图像处理,bwselect
  • 第6部分-计算和可视化的划分。分水岭label2rgbbwboundaries
  • 第7部分-把它们放在一起。一个脚本可以做所有的事情,从数据导入到计算和分割的可视化。

数据来源:全球任务团队和其他人(Hastings, David A, Paula K. Dunbar, Gerald M. Elphingstone, Mark Bootz, Hiroshi Murakami, Hiroshi Maruyama, Hiroshi Masaharu, Peter Holland, John Payne, Nevin A. Bryant, Thomas L. Logan, j.p。穆勒,冈特·施莱尔,约翰·s·麦克唐纳)编。, 1999年。全球陆地一公里基高程(GLOBE)数字高程模型,版本1.0。美国国家地球物理数据中心,科罗拉多州博尔德市百老汇325号,80305-3328http://www.ngdc.noaa.gov/mgg/topo/globe.html)和cd - rom。




MATLAB®7.8发布

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。