首页 > 其他分享 >在matlab中进行地理坐标和像素坐标的相互转换

在matlab中进行地理坐标和像素坐标的相互转换

时间:2023-12-22 09:11:30浏览次数:23  
标签:figure pic 像素 num2str 坐标 地理坐标 matlab

clc;close all;clear;
%地理坐标和像素坐标的相互转换
[pic,R]=geotiffread('boston.tif'); %读取带地理坐标信息的tif影像
[m,n,~]=size(pic);

%像素坐标转换为地理坐标
figure(1),imshow(pic),title('不带地理坐标的静态图片');
hold on; scatter(n/4,m/4,500,'r.');  %选择1/4处像素坐标,并在图上标示
[lon,lat]=pix2map(R,m/4,n/4);  %转换为地理坐标
figure(2),mapshow(pic,R);
mapshow(lon,lat,'Marker','.','MarkerEdgeColor','r');
title('带地理坐标的tif影像');
axis off;
%打印结果
disp(['(',num2str(m/4),',',num2str(n/4),') -> (',num2str(lon),',',num2str(lat),')']); 

%地理坐标转换为像素坐标。注意地理坐标从左下角开始,而像素坐标从左上角开始
%左下角开始点地理坐标为[R.XLimWorld(1),R.YLimWorld(1)]
%R.RasterWidthInWorld表示图像的地理宽度
x=R.XLimWorld(1)+(3/4)*R.RasterWidthInWorld;  %获取图像3/4处的地理坐标
y=R.YLimWorld(1)+(1/4)*R.RasterHeightInWorld;
figure(3),mapshow(pic,R),axis off;
mapshow(x,y,'Marker','*','MarkerEdgeColor','r');
[row,col]=map2pix(R,x,y);
figure(4),imshow(pic);
hold on;
scatter(col,row,100,'r*');
%命令行中打印结果
disp(['(',num2str(x),',',num2str(y),') -> (',num2str(row),',',num2str(col),')']); 

 

 像素坐标转地理坐标:pix2map

地理坐标转像素坐标:map2pix

Matlab地理坐标转换功能

标签:figure,pic,像素,num2str,坐标,地理坐标,matlab
From: https://www.cnblogs.com/liylllove/p/17920525.html

相关文章

  • matlab 全局变量的使用举例
    昨天在写项目时,想要把获取到的临时变量放入一个全局变量,为以后的使用做准备,结果总是出错,今天做了一个小程序,放在这里备用。自定义函数:global_p.mfunctiony=global_p(x)%H1注释行%测试全局变量的用法globalp;%3、声明p是全局变量p=p+1;%4、对全局变量p的操作fprint......
  • Matlab 之 数据元素访问
    Matlab的含义是矩阵实验室,其特征之一就是数据的向量化操作,借此提升软件运行效率。那么,必然会涉及数据元素的访问。Matlab主要支持下面一些形式的访问:(1)array-inde:A(i)(2)cell-index:C{i}(3)structfield:S.fieldname不同的访问方式,效率差别很大,我们以单个元素或者域的访问为例,探讨......
  • MATLAB边缘检测
    使用如下命令可生成不同边沿检测算法下的图案:1%对同一副图像分别使用6种边缘检测算法进行处理234A=imread('chepai.jpg');%读入图像chepai.jpg,赋给变量A5A=rgb2gray(A);67bw1=edge(A,'sobel');8bw2=edge(A,'prewitt');9bw3=edge(A,......
  • matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类|附代码数据
    全文下载链接:http://tecdat.cn/?p=19751本示例说明如何使用长短期记忆(LSTM)网络对序列数据进行分类。最近我们被客户要求撰写关于LSTM的研究报告,包括一些图形和统计输出。要训练深度神经网络对序列数据进行分类,可以使用LSTM网络。LSTM网络使您可以将序列数据输入网络,并根据序列......
  • MATLAB常用日期和时间函数
    在MATLAB中得到系统当前日期、时间也是经常用到的内容,由以下函数实现。1.生成指定格式日期和时间datestr-生成指定格式日期和时间,是字符型变量。>> datestr(now) %其中now是获取当前日期和时间ans=    30-Dec-200916:05:16其中输出格式可由用户指定,共有31种格式,以下是......
  • Matlab文件操作
    1、 Matlab文件操作主要有三个步骤:首先打开文件,然后对文件进行读写操作,最后要关闭文件。2、 fid=fopen(文件名,打开方式)'r'只读,文件必须存在(缺省的打开方式)'w'写文件,若文件已存在则原内容将被覆盖;若文件不存在则新建一个'a'在文件末尾添加,文件若不存......
  • 写一个MATLAB脚本删除一个.m文件的所有注释和空行,输出到一个新.m文件,文件名加上_modif
    请注意,这个脚本仅处理了最简单的情况,真正的Matlab代码可能包含更复杂的结构,如多行字符串、嵌套的字符串、转义字符等,处理这些情况可能需要更复杂的逻辑。%Specifytheinput.mfilenameinputFileName='originalScript.m';outputFileName=[inputFileName(1:end-2)'_modi......
  • Matlab常用小技巧及部分快捷键
    Matlab常用小技巧一:1.m文件如果是函数,保存的文件名最好与函数名一致,这点都很清楚。不过容易疏忽的是,m文件名的命名尽量不要是简单的英文单词,最好是由大小写英文/数字/下划线等组成。原因是简单的单词命名容易与matlab内部函数名同名,结果会出现一些莫名其妙的错误。例如,写个m文件......
  • Matlab-三维视图的自动旋转
    %figure%plot3(...);%xlabel('X轴');%ylabel('Y轴');%zlabel('Z轴');%title('标题');%gridon%打开网格%%fori=1:2:360%%view(a,b):a是角度,b是仰视角%view(i,20);%pause(0.06);%end例子,show_3D.m:clearall;closeall......
  • python调用matlab
    官网链接:https://ww2.mathworks.cn/help/matlab/matlab_external/call-user-script-and-function-from-python.html?lang=enhttps://ww2.mathworks.cn/help/matlab/matlab_external/install-the-matlab-engine-for-python.html安装用于 Python 的 MATLAB 引擎API要在Pyt......