教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教学研究 >

利用Matlab从图像中提取数据

来源:网络收集 时间:2026-08-23
导读: 科技信息○IT论坛○SCIENCETECHNOLOGYINFORMATION2010年第11期 利用Matlab从图像中提取数据 王淑娟张玉叶 (中国人民解放军海军航空工程学院青岛分院 【摘法。 【关键词】Matlab;图像处理 山东青岛266041) 要】Matlab软件提供的图像处理功能能够从图像中提

科技信息○IT论坛○SCIENCE&TECHNOLOGYINFORMATION2010年第11期

利用Matlab从图像中提取数据

王淑娟张玉叶

(中国人民解放军海军航空工程学院青岛分院

【摘法。

【关键词】Matlab;图像处理

山东青岛266041)

要】Matlab软件提供的图像处理功能能够从图像中提取数据,本文以读取图像数据为例,阐述了利用matlab从图像中提取数据的方

ExtractedDataFromImagebyMatlabWANGShu-juanZHAGNYu-ye

(QingdaoBranchofNAEA,QingdaoShandong,266041)

【Abstract】DatacanbeextractedfromimagebythefunctionofimageprocessingwhichsuppliedbyMatlab.Thearticleexplainsthemethodofextractingdatafromimageusingmatlabwiththeexampleofreadingimagedata.

【Keywords】Matlab;Imageprocessing

0引言3图像数据提取

随着卫星遥感的发展,所获取的海洋数据也越来越丰富。这些卫星观测数据绝大部分可以从相应的网站上下载,或者通过向相应卫星管理机构索取数据光盘获得。这些数据的格式有二进制格式的,有ASCII码格式的,还有图像格式的。对于二进制格式和ASCII码格式的数据,提供数据的网站或光盘里会附有说明文档或者读取程序,而图像格式的一般只是在网页上供浏览,一般网站都不会提供软件来从图像中提取数据,而Mathworks公司的Matlab软件提供的图像处理功能可以帮助我们方便的处理这些图片。

下面以图1为例,叙述如何从中提取SST数据。图1为2003年1月1日东中国海的SST等值线图,从美国海军研究实验室Stennis空间中心网站获得。

1Matlab图像处理的文件格式

图像文件格式的种类比较多,常见的有JPEG,TIFF,BMP,PNG,GIF等,这些图像文件格式Matlab都支持。在Matlab中,一幅图像可能包含一个数据矩阵或者包含一个颜色映射表矩阵,Matlab中有四种基本的图像类型:索引图像,RGB图像,灰度图像,二进制图像。Matlab中图像文件信息查询的函数是imfinfo,调用格式为info=imfinfo(‘filename’),其中的ColorType项就表示图像类型。

索引图像包含一个数据矩阵和一个颜色映射表矩阵,其中颜色映射表矩阵是一个三列,若干行的矩阵,其每一个元素的值均为区间[0,1]之间的双精度浮点型数据,从第一列到第三列分别表示红色,绿色和蓝色的颜色值。索引图像是从像素值到颜色映射表值的直接映射,像素的颜色由数据矩阵作为索引指向颜色映射表矩阵进行索引。数据矩阵与颜色映射表矩阵之间的关系取决于图像数据矩阵的类型。如果图像数据矩阵是双精度类型的,则值1指向颜色映射表矩阵的第一行;如果图像矩阵是8位或16位无符号整形的,则值0指向颜色映射表矩阵的第一行。Matlab中用来加载图像的函数为imread,对于索引图片,其调用格式为

图12003年1月1日东中国海SST

(引自NavalResearchLaboratoryStenniSpaceCenterhttp://www7300.nrlssc.navy.mil/altimetry/images/arc_html/arc.ecs_Jan_1_2003.html)

3.1

[x,map]=imread(‘filename’)。

RGB图像,又称真彩图像,它由一个m×n×3的数据矩阵组成,其中m×n是像素点的个数,矩阵包括图像中每个像素的红,绿,蓝值,像素的颜色由该像素在数据矩阵中对应位置上的红,绿,蓝的灰度值的组合来确定。在Matlab中,对于RGB图像的,imread函数的调用格式

判断图像的类型

首先判断图像的类型,调用imfinfo函数,info=imfinfo(‘sst.gif’),输出结果为

x=imread(‘filename’)。

灰度图像包含一个数据矩阵,该矩阵中的元素分别代表了图像中相应像素的灰度值。对于灰度图像的,imread函数的调用格式x=

imread(‘filename’)。

二进制图像包含一个数据矩阵,图像中每个像素对应0或1值。对于二进制图像的,imread函数的调用格式x=imread(‘filename’)。

2获取图像

美国海军研究实验室Stennis空间中心网站nrlssc.navy.mil/altimetry/)提供全球数个海区的每日的SSH和SST数据所绘成的等值线图,以及JASON-1所测得的海表面风速图。这些图片一般都有几年的时间序列,有比较高的利用价值。可以利用下载软件导入地址列表,对这些图片进行批量下载。

Filename:'sst.gif'

FileModDate:'06-Jan-200307:00:17'FileSize:45835Format:'GIF'FormatVersion:'87a'

Width:621Height:862BitDepth:7

ColorType:'indexed'FormatSignature:'GIF87a'BackgroundColor:0AspectRatio:0

ColorTable:[128x3double]Interlaced:'no'

其中ColorType的值为indexed,表示这是索引图片。按照索引图片读取方法读入图片,[x,map]=imread(‘sst.gif’),得到两个矩阵,x数据矩阵,大小为862×621,表明该图像由862×621个像素点组成。x

中每个

49

2010年第11期SCIENCE&TECHNOLOGYINFORMATION○IT论坛○科技信息

元素的值就是对应像素点的颜色索引值。提取数据的基本思想就是用所求点的颜色索引值与色标(ColorBar)中各点的颜色的索引值对比,索引值相同的点温度相同,由此可以确定所求点的温度值。3.2确定各像素点对应的经纬度

在获取数据的时候,需要确定各像素点对应的经纬度。因此在Matlab中将图片中心所示的陆地和海区以外的区域“裁”去,“裁剪”的程序如下:

%读入图片

[data,map]=imread('sst.gif');[x,y]=size(data);%确定左边界fori=1:xforj=1:y

if(data(i,j)~=1)&&(data(i,j)~=0)%1,0分别表示黑,白,与颜色映射表有关

left=j;breakendendend

%确定上边界fori=1:x

if(data(i,left)~=1)&&(data(i,left)~=0)up=i;breakendend

%确定右边界real=0i=x/2

%跳过色标forj=y:-1:1

if(real==1&&data(i,j)==1)break

elseif(data(i,j)~=0)real=1;temp=j;endend

forj=temp:-1:1

if(data(i,j)~=1)&&(data(i,j)~=0)right=j;breakendend

%确定下边界j=(y-1)/2fori=x:-1:1

if(data(i,j)~=1)&&(data(i,j)~=0)bottom=i;

breakendend

data=data(up:bottom,left:right)image(data)colormap(map)

图2是“裁剪”后得到的图片,横坐标和纵坐标单位都是像素,与图1中所标的经纬度对比就可确定各像素点的经纬度了。用同样的方法可以将色标”裁剪”出来,然后将色标中各种颜色的索引值和对应的温度值分别存到数组ref和value中。最后将data中的各个元素的值与ref中颜色索引值对比,确定各个元素对应的温度。3.3提取数据

%获取温度

图22003年1月1日东中国海的SST数据

fori=1:xforj=1:yfork=1:60

ifdata(i,j)==ref(k)

temp_data(i,j)=value(k);data(i,j)=100;endendendendfori=1:xforj=1:y

ifdata(i,j)~=100

temp_data(i,j)=99;%该点是陆地或无值endendend3.4

保存数据

最后将数据写入文件。%写入文件%写入文件

f_id=fopen('sst.dat','w');fori=1:xforj=1:y

fprintf(f_id,'%2i',temp_data(i,j));endend

这样,就从该图片中提取出了2003年1月1日东中国海的SST数据。

4结束语

Matlab软件提供的图像处理功能能够从图像中提取数据,常见的图像文件格式如JPEG,TIFF,BMP,PNG,GIF等图像文件格式Matlab都支持。

对得到的数据可以作进一步的处理,从而得到 …… 此处隐藏:2331字,全部文档内容请下载后查看。喜欢就下载吧 ……

利用Matlab从图像中提取数据.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1568760.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)