在matlab中进行图像处理,一般使用的都是图像本地坐标,以左上角(1,1)开始。处理完成后,如果要将结果在带地理坐标的遥感影像中显示,或者需要输出成shp文件,就需要涉及到本地坐标和地理坐标的转换,我们可以使用pix2map函数来实现这个功能。
clc;clear;close all;
[pic, R] = geotiffread(
'boston.tif'); %
读取tif图像
figure(1),imshow(pic);% pic即为本地图像,下面对本地图像进行操作
gray=
rgb2gray(pic);
bw=im2bw(gray,
0.1); %
阈值分割
bw=
1-
bw;
bw1 = bwareaopen(bw,
500000); %
删除面积小于500000的区域
bw2=imfill(bw1,
'holes'); %
填充孔洞
figure(2),imshow(bw2);
bw3=bwboundaries(bw2); %
得到边缘轮廓
data=bw3{
1,
1}; %得到轮廓线的坐标,一个N*
2的矩阵,此坐标为本地图像坐标
[lonX,latY]=pix2map(R,data(:,
1),data(:,
2)); %
将本地图像坐标转换为地理坐标
figure(3),axis off;
mapshow('boston.tif'); %
显示带地理坐标的遥感影像
mapshow(lonX,latY,'Color',
'r'); %在遥感影像上显示轮廓
转载于:https://www.cnblogs.com/denny402/p/4679106.html
相关资源:各显卡算力对照表!