在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:numdata=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文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Panabit安装测试小结
- 下一篇: machine learn in pyt