Matlab读取带有地理信息的图像

目前需要读取遥感影像并对像元值进行重新计算后再输出图像。

代码如下:

[A, R]= geotiffread('pathname:\ filename')      %得到文件的像元值矩阵A和地理信息R

B= A.* 0.0001                                               %将A进行处理,得到所需要的值

geotiffwrite('pathname:\ newfilename', B, R)   %重新输出图像

但是系统显示图片上的错误。

我看到geotiffwrite参考页里面的syntax第一行就是这么写的:geotiffwrite(filename,A,R)。不知道错在哪。

geotiffread

Read GeoTIFF file

Syntax

[A,R] = geotiffread(filename)

[X,cmap,R] = geotiffread(filename)

[A,refmat,bbox] = geotiffread(filename)

[X,cmap,refmat,bbox] = geotiffread(filename)

[___] = geotiffread(filename,idx)

[___] = geotiffread(url,___)

[A,R] = geotiffread(filename) reads a georeferenced grayscale, RGB, or multispectral image or data grid from the GeoTIFF file specified by filename into A and creates a spatial referencing object, R.

MATLAB 遥感影像的读写操作,带空间坐标信息!

filepath=''E:\Sciencetific Work\北洛河_状头.tif';'

[Data, R] = geotiffread(filepath);   %读取带有空间信息的地理数据,返回数据,和地理栅格空间参考信息spatialref.GeoRasterReference

info = geotiffinfo('shanghai_roi_WGS2.tif');   %geotif的信息

geotiffwrite('shanghai_roi_WGS5.tif',Y,R, 'GeoKeyDirectoryTag',

info.GeoTIFFTags.GeoKeyDirectoryTag);  %写出带有地理信息的geotif文件

MATLAB中使用Inf和-Inf(infinite)分别代表正无穷量和负无穷量,NaN表示非数值量 (Not a Number)

Matlab中提示:Maximum recursion

limit of 500 reached. Warning:Function tic has the same name as MATLAB builtin. We suggest you rename the function to avoid a potential name conflict.

解决方法:You accidentally named one of your own files tic.m 重命名即可

Matlab中读取图片灰度值:

imread函数:Read image from graphics file

example:  I=imread(‘C:\Users\Administrators\Desktop\beforeclass’);

D=rgb2gray(I);  将彩色图像转换为灰度图像

D包含的就是灰度值

imcrop函数:Crop Image 裁剪图像

I=imread('图像名字(带扩展名及路径)');%首先读入一幅待裁剪的图像

I2=imcrop(I,[a b c d]);%利用裁剪函数裁剪图像,其中,(a,b)表示裁剪后左上角像素在原图像中的位置;c表示裁剪后图像的宽,d表示裁剪后图像的高

关于矩形区域[Xmin Ymin Width Height],Xmin是横向第Xmin个像素,Ymin是纵向第Ymin个像素;

imhist函数:显示区域的像素值和灰度值的关系

功能:显示图像的直方图。

输入数据类型可以是无符号8位、16位、有符号16位、单精浮点、字符型、逻辑型等数据。

用法:

imhist(I,n)  计算和显示图像I的直方图,n为指定的灰度级数目,默认为256。如果I是二值图像,那么n仅有两个值。

imhist(X,map)  计算和显示索引图像x的直方图,map为调色板。

[counts,x]= imhist(...)  返回直方图数据向量counts或相应的色彩值向量x。

举例:

I=imread('rice.tif')

imshow(I)

figure,imhist(I)

imhist只能对灰度图像画直方图,所以那样直接画是不行的,我给你改了一下,你再试试

L=imread('lily.tif');

subplot(1,2,1);

imhist(L);

This example illustrates how to use impixel to get pixel values.

1.  Display an image.

imshow canoe.tif

2. Call impixel. When called with no input arguments, impixel associates itself with the image in the current axes.

vals = impixel

3. Select the points you

want to examine in the image by clicking the mouse. impixel places a star at

each point you select.

4. When you are finished selecting points, press Return. impixel returns the pixel values in an n-by-3 array, where n is the number of points you selected. The stars used to indicate selected points disappear from the image.

pixel_values =

0.1294   0.1294    0.1294

0.5176        0         0

0.7765   0.6118    0.4196

1、使用imcrop做图像剪切,或用矩形块提取图像块区域;

2、可以使用pixval on(低版本),或impixelinfo;

clc; clear all; close all;

figure;

imshow('rice.png');

impixelinfo

3、使用Figure窗口的“Data cursor”图标来查看;

4、使用imview来查看;

clc; clear all; close all;

imview('rice.png');

strcmp:Compare strings withcase sensitivity

C/C++函数,比较两个字符串

设这两个字符串为str1,str2,

若str1==str2,则返回零;

若str1

若str1>str2,则返回正数。

matlab中函数,strcmp(s1,s2) 判断两个字符串s1和s2是否相同,相同返回true ,不同返回false

strcat 即 Strings Catenate,横向连接字符串。

语法

combinedStr= strcat(s1,s2, ...,sN)

描述

将数组s1,s2,...,sN水平地连接成单个字符串,并保存于变量combinedStr中。如果任一参数是元胞数组,那么结果combinedStr是一个元胞数组,否则,combinedStr是一个字符数组。

fread函数可从文件中读取二进制数据

A = fread(fid, count)

A = fread(fid, count, precision)

其中fid为指针所指文件中的当前位置,count指读取的数据个数, precision表示以什么格式的数据类型读取数据。

fclose(fid); closes an open file. fileID

is an integer file identifier obtained from fopen

matlab中这两个字符串查找的函数findstr(),

strfind()表明上看起来用法相似,效果也相似。一.

findstr(s1,s2)--在较长的字符串中查找较短的字符串出现的次数,并返回其位置,因此无论s1,s2哪个为长字符串,位置在前在后都没有关系。例:

s = 'Find the starting indices of the shorter string.';

findstr(s, 'the')

ans = 6 30

findstr('the', s)

ans = 6 30

二. strfind(s1,s2)--or strfind(s1,pattern),因此其意思在s1中搜索pattern。

例:

S = 'Find the starting indices of the pattern string';

strfind(S, 'in')

ans = 2 15 19 45

strfind(S, 'In')

ans = []

注意,第一个函数findstr函数中,不能识别元胞数组,该函数只能用于字符串中。而第二个函数strfind中,S可以是元胞数组格式的字符串。通过cell2mat()可以把cell结构转成数据,findstr(),strfind()函数只能对一维字符串数据进行操作,若是二维字符串则得使用别的函数。

在matlab中,无论是内建函数还是工具箱函数,2很常见, 这可能是因为2英文two和to发音相同。而2写起来也比较简单。 所以很多转换类函数都用2来命名而非to。

比如string to number, 不是命名为strTonum而是str2num。

Convert string to number

Matlab中读取txt文件

textread函数:[ID,X,Y,DEPTH]=textread(‘C:\Users\Administrator\Desktop\robertisland1.txt’,’%d%f %f %f’,’headerlines’,1);

headerlines表示开头跳过几行(有的文件开头有说明文字)

如何将MATLAB运行结果写入txt文件

a = [1,2,3,4,5,6,7,8,9];

fp = fopen('D:\ztq.txt','wt');

for i =1 : 9

fprintf(fp, '%d', a(i));

end

fclose(fp);

将数组a导入到D盘中的ztq.txt中。

矩阵的合并:

C=[A B] 在水平方向上合并矩阵A和B

C=[A;B] 在竖直方向上合并A和B

matlab中生成斐波那契数列:

function a=fib(n)

%

生成长度为n的斐波那契数列

if n==1

a=1;

elseif n==2

a=[1 1];

else

b=fib(n-1);

a=[b,b(end-1)+b(end)];

end

例子

fib(10)

ans =

1    1     2     3    5     8    13   21    34    55

Matlab中判断一个值发生变化

比如判断的变量为X。循环前设两个变量,VarA=0和VarB。在循环中:VarB=VarA,VarA=X(这两句顺序很重要),然后用if语句判断VarA是否等于VarB。如果相等说明X和上一个X相同。

MATLAB显示输出数据主要有三种方式,一种是直接在命令行输入数据项并且不加“;”符号,另外两种是利用disp函数和fprintf函数实现总的来说,使用fprintf最为灵活方便,可以输出任何格式

Matlab矩阵分割:

索引矩阵的一种特殊形式,不仅可以获得某个元素,也可获得某一行或某一列

I = A(i : j, m : n) %输出i到j行的m到n列

B1=Band(1:1000000;:)

Matlab中把1-100这100个整数排成一个矩阵:

x=1:100;

X=reshape(x,m,n);%m

和n分别为要生成矩阵的行数和列数

或者通过linspace函数创建一维数组

y = linspace(1,100)

&&和||是短路版本的逻辑与和逻辑或,称为short-circuit运算符。短路逻辑运算符的两边必须是逻辑标量值。比如单个逻辑变量,逻辑表达式都可以。

Matlab文件中出现asv格式文件

在MATLAB中编辑某个文件时,如果较长时间(系统默认是5分钟,可自行修改)没有对已经变动的文件进行保存,那么系统会自动保存,这就是asv文件,即automatically saved file或autosave的意思,只是备份文件。用记事本打开,和.m文件内容相同。

Matlab读取txt文件行数

越是底层的函数效率是越高的,只是使用不方便而已。MATLAB有一个fread函数,不过这是默认处理的是二进制文件,不过没有关系,文本文件只是一个编码而已,我们还是可以使用fread进行读取的。

tic;

fid=fopen('data.csv','rt');

row=0;

while ~foef(fid)

row=row+sum(fread(fid,'*char')==char(10));

%计算其中的回车个数,其中10是回车的ASCII编码

%'*char'表示每次读取一个字符,*表示输出也是字符

%放心fread现在已经可以自动识别中文了,万一还是识别不了,

% 请在fopen中指定文件编码格式,比如gbk

end;

fclose(fid);

row;

toc;

matlab输出矩阵

如矩阵a

a 不加分号即输出

disp(a) 即输出

matlab %,Matlab相关推荐

  1. matlab 样本均值,Matlab | Matlab从入门到放弃(4)——样本均值

    Matlab | Matlab从入门到放弃(4)--样本均值 Matlab | Matlab从入门到放弃(4)--样本均值 博主github:https://github.com/MichaelBee ...

  2. matlab 如何捕捉错误,【matlab|matlab运行错误捕捉方法】

    『傻大方知识库摘要_matlab|matlab运行错误捕捉方法』需安装VC2005运行库.Matlab错误提示往往以DOS窗口显示,错误提示经常一闪而过,无法查看具体错误信息,可以按照如下操作进行查看 ...

  3. wav数据提取 matlab,matlab 读取处理 wav 文件

    最近工作需要,要对wav文件中存储的声音信息进行分析处理.所以花了些时间收集了各种数学软件中处理wav文件的方法. Matlab Matlab 是最方便的.甚至于不用写任何代码就能读取wav文件(我用 ...

  4. [matlab]matlab cftool点了没反应

    [matlab]matlab cftool点了没反应 命名重复 首先排除是不是在同目录文件下新建了一个cftool.m文件,如果是的话将其改名,自定义为其他名字. 这就和写代码时同名变量覆盖一样,ma ...

  5. [C#] 调用MATLAB(Matlab COM接口) (一)调用函数

    目录 说明 一.Visual Studio 程序 1. Vs 新建项目 2. 编写 C# 程序 二.matlab.Execute() 1. MATLAB函数的输入输出 2. MATLAB Comman ...

  6. saber与matlab,MATLAB与SABER联合仿真(Co-sim)遇到的问题

    问题描述: 系统环境:WinXP SP3 简体中文 软件版本:Saber2008, Matlab R2008a. 仿真程序:throttle_controller, 对照软件给出的Tutorial执行 ...

  7. matlab app设计步骤_1.1数学建模与MATLAB–MATLAB入门

    1.1数学建模与MATLAB–MATLAB入门 关注本专栏,继续分享数学建模与MATLAB知识 一.MATLAB是什么? MATLAB 是目前在国际上被广泛接受和使用的科学与工程计算软件.虽然 Cle ...

  8. Matlab p文件 转换为m文件MATLAB matlab pcode,matlab p

    Matlab p文件 转换为m文件MATLAB matlab pcode,matlab p matlab p文件解密,matlab m文件 解码后的m源码文件内容可查看可编辑 YID:85467902 ...

  9. 牛顿法的matlab实现例题,【MATLAB|MATLAB牛顿插值法例题与程序Word版】

    『易坊知识库摘要_MATLAB|MATLAB牛顿插值法例题与程序Word版』x12345678y22.523.324.421.7025.228.524.825.4二.数学原理假设有n+1个不同的节点及 ...

  10. 矩阵实验室matlab下载,matlab matlab(矩阵实验室) v6.5.0迷你版

    matlab matlab(矩阵实验室) v6.5.0迷你版 matlab(矩阵实验室)使用方法很简单,解压后运行:binmatlab.bat即可运行.matlab(矩阵实验室)目录列表.MINI版m ...

最新文章

  1. 铁大Facebook——电梯演讲
  2. AWS-CLI-V2-Install
  3. Linux系统云主机教程,新开的linux云主机磁盘挂载教程
  4. wxWidgets:wxStatusBar 示例
  5. 使用Repeater实现类似GridView编辑功能
  6. 关于ubuntu 14.04 dpkg 问题
  7. 当女朋友问你会不会出轨的时候,该怎么回答?
  8. 使用ffmpeg进行h.264编码
  9. div生成图片_Vue生成分享海报(含二维码)
  10. python基础1之 由来、种类、优缺点、安装环境
  11. Python项目开发基础 -- 函数参数与数据库连接参数
  12. 2019—2020学年第一学期高一数学教学工作计划
  13. 小米网卡驱动linux,小米笔记本pro 15.6寸安装ubuntu16.04无法使用wifi的解决方法
  14. Android存储子系统
  15. oracle忘记密码找回
  16. C语言popcount函数,C/C++中__builtin_popcount()的使用及原理
  17. 《java入门第一季》之面向对象(static关键字)
  18. qpython 3h怎么使用_尿管周围漏尿怎么办?7 大对策解决留置导尿问题
  19. Excel工作表单保护密码忘记如何找回
  20. 找不到文件Disk1000005.vmdk解决办法

热门文章

  1. dnf提示磁盘碎片需要整理_什么是磁盘碎片?我还需要进行碎片整理吗?
  2. jeecg官网(jeecg官网 ios开发)
  3. 用FreeBSD10搭建基于ZFS的iSCSI服务
  4. 仿微信发送位置(高德地图定位)
  5. java 字符串中判断字母大小写方法
  6. 哪里有免费大文件传输平台?通过这4个网站免费来进行大文件传输
  7. 在CSDN高校俱乐部校园巡讲中遇到的几个共性问题
  8. 编写程序,提示用户输入学号、成绩
  9. 杰理之调音限幅器 压缩器【篇】
  10. w7计算机休眠网络就断了,设置Win7电脑休眠时不断开WiFi教程