matlab 读取shp面文件,在matlab中将处理结果输出为shp文件

在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=

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值