在matlab中读入shp文件很简单,一个函数shaperead就可以了,但输出为shp文件就稍微麻烦一些了。shp文件实际上就是一个struct,因此得到处理结果后,要先将数据变成struct结构,然后调用shapewrite函数就可以了。

clc;clear;close all;
[pic, R] = geotiffread('boston.tif'); %读取tif图像
gray=rgb2gray(pic);
bw=im2bw(gray,0.1); %阈值分割
bw=1-bw;
bw1 = bwareaopen(bw,30000); %删除面积小于500000的区域
bw2=imfill(bw1,'holes'); %填充孔洞
figure(1),imshow(bw2);
bw3=bwboundaries(bw2); %得到边缘轮廓,一个轮廓为一个Line
num=size(bw3,1); %行数
STR = 'struct(''Geometry'',values ,''X'', values,''Y'', values,''ID'',values)';
values = cell(num, 1); %为结构体赋初值
S = eval(STR);
clear values;
for i=1:num
data=bw3{i,1}; %得到轮廓线的坐标,一个N*2的矩阵,此坐标为本地图像坐标
S(i).Geometry='Line';
S(i).ID=i;
[x,y]=pix2map(R,data(:,1),data(:,2)); %将本地图像坐标转换为地理坐标
S(i).X=[x;NaN]';
S(i).Y=[y;NaN]';
end
figure(2),axis off;
mapshow('boston.tif'); %绘制遥感影像
mapshow([S.X], [S.Y],'Color','r'); %绘制轮廓线
shapewrite(S,'water.shp'); %输出shp文件,会生成后缀名为shp,shx和dbf的三个文件

在matlab中将处理结果输出为shp文件的更多相关文章

  1. 将Matlab中的矩阵输出到txt文件

    将矩阵输出到txt文件中的方法,遍寻网络,始见真经!!! fid=fopen('C:Documents and Settingscleantotal.ped','wt');%写入文件路径 matrix ...

  2. 在matlab中实现遥感影像和shp文件的结合显示

    clc;close all;clear; road=shaperead('boston_roads.shp'); %读取shape文件 figure, mapshow('boston.tif'); % ...

  3. Python中将一个对象倒序输出的4种方法

    Python中将一个对象倒序输出的4种方法就用列表来举例说明吧: >>> lst = [1,2,3,4,5,6] #创建测试列表 #方法1: >>> lst.rev ...

  4. 微软BI 之SSIS 系列 - 在 SSIS 中将指定目录下的所有文件分类输出到不同文件夹

    开篇介绍 比如有这样的一个需求,旧的一个业务系统通常将产出的文件输出到同一个指定的目录下的不同子目录,输出的文件类型有 XML,EXCEL, TXT 这些不同后缀的文件.现在需要在 SSIS 中将它们 ...

  5. 将filenames里的每个字符串输出到out文件对象中注意行首的缩进

    在Linux上用强大的shell脚本应该也可以完成,可是使用Windows的朋友呢?其实象这样一个简单任务用Python这个强大脚本语言只要几条语句就可以搞定了.个大家知道,要完成这样一个任务根本不用 ...

  6. 结合C++和GDAL实现shapefile(shp)文件的读取

    工具:vs2012+GDAL 2.0 数据:中国省界SHP文件bou2_4p.shp   可点击下载 包含头文件: #include "ogrsf_frmts.h" 代码: int ...

  7. ArcGIS学习记录—KMZ KML与SHP文件互相转换

      1.在google earth中绘制边界  工具栏中选择"Add Polygon".随意绘制一个多边形.  右击添加的图层名(左侧)保存位置为,选择保存为kmz或kml文件.  ...

  8. arcmap从excel坐标数据生成点shp文件

    概述 今天试图在ArcMap中将excel数据转成点文件,在"Display XY Data"的时候,无法选择X,Y字段,很是纳闷,原来Excel中列的格式是文本,导致无法选择.有 ...

  9. GDAL1.11版本号对SHP文件索引加速測试

    GDAL库中对于矢量数据的读取中能够设置一些过滤器来对矢量图形进行筛选.对于Shapefile格式来说.假设数据量太大,设置这个过滤器时间慢的简直无法忍受.好在GDAL1.10版本号開始支持读取Sha ...

随机推荐

  1. Windows平台的Eclipse-javaEE-mars相关配置

    平台:winddow10 前提: 1>  搭建好了jdk1.8.0_60环境 2>  下载放置好了apache-tomcat-8.0.24 3>  下载好了eclipse-jee-m ...

  2. Java 之 内部类

    (static修饰的成员属于整个类,而不属于单个对象) 定义:将一个类放到另一个类的内部定义,这个在内部定义的类就叫做内部类(也有的成嵌套类),包含内部类的类被称为外部类(也有的称宿主类). 1.非静 ...

  3. 最锋利的Visual Studio Web开发工具扩展:Web Essentials详解(转)

    Web Essentials是目前为止见过的最好用的VS扩展工具了,具体功能请待我一一道来. 首先,从Extension Manager里安装:最新版本是19号发布的2.5版 然后重启你的VS开发环境 ...

  4. JSON转换类(二)--List转换成Json、对象集合转换Json等

    #region List转换成Json /// <summary> /// List转换成Json /// </summary> public static string Li ...

  5. redis客户端--jedis

    一.jedis jedis 是 redis推荐的java客户端.通过Jedis我们可以很方便地使用java代码的方式,对redis进行操作.jedis使用起来比较简单,它的操作方法与redis命令相类 ...

  6. Java + eclipse + awt 编写锻炼打字小软件(未完成)

    进入前界面: import java.awt.*; public class Welcome extends JFrame implements Runnable{ Thread t; private ...

  7. Heartbeat+LVS构建高可用负载均衡集群

    1.heartbeat简介: Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里 ...

  8. Intent详解

    ntent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重要. 一.什么是Intent 1.Intent的概念: Android中提供了Intent机制来协助应用间的交互与通 ...

  9. pig 介绍与pig版 hello world

    前两天使用pig做ETL,粗浅的看了一下,没有系统地学习,感觉pig还是值得学习的,故又重新看programming pig. 以下是看的第一章的笔记: What is pig? Pig provid ...

  10. 读高性能JavaScript编程学英语 第一章第三页第一段话

    When the browser encounters a <script> tag, as in this HTML page, there is no way of knowing w ...