http://blog.sciencenet.cn/m/Print.aspx?id=201738
one picture is worth more than ten thousand words.
宁金鹏/ 文
1.读入图片:imread('filename')
如:f=imread('chest.jpg');
注意:1.括号内为单引号,注意与C区分
2.命令行最后为冒号,否则会吃苦头的哦,呵呵
3.保证图片chest.jpg在当前目录下,否则要给出图片的完全路径
如:f=imread('D:/myimages/chest.jpg');
4.filename后要跟图片格式后缀。
2.显示图片:imshow(f,[ ])
注:上述为推荐使用方式,即使用imshow(f),也可以,二者之间的区别可以从下面两幅图的显示上看出
第一幅图片的灰度级较小,而,通过imshow(f,[ ])后它的灰度级范围得到拉伸。
imshow(f,[ ])是imshow(f,[ min high])的特例,即将f的实际最小对应到min,而其最大灰度级对应到max。
而对于f中小于等于min的灰度级显示为黑色,大于等于max的灰度级显示为白色。
3.写入图片:imwrite(f,'filename')
其中对于JEPG格式的图片有
imwrite(f,'filename.jpg','quality',q) 0<=q<=100
下面看一个简单的小程序:
for q=0:5:100
filename=sprintf('series_%3d.jpg',q);
imwrite(f,filename,'quality',q);
end
此程序写入quality=0,5,10.......共21种quality的图片,下面看下quality分别为0、5、15、25、50以及原图的显示
其中对于TIF格式的图片有:
imwrite(g,'filename.tif','compression','parameter','resolution',[colres rowres])
注:compression:压缩比率
parameter:none/packbits/ccitt
resolution:分辨率
例如:原始图片为:jpg格式,200dpi,450*450
由450/200=2.25,知 宽*高=2.25*2.25,要使其变为宽*高=1.5*1.5,不损失pixels,知compression为none
resolustion=200*2.25/1.5=300
于是: imwrite(f,'jinpeng.tif','compression','none','resolution',[300 300])
也可以如下显示:
res=round(200*2.5/1.5);
imwrite(f,'jinpeng.tif','compression','none','resolution',res);
结果如下图所示:
********因blog系统不支持.tif格式,故无法上传。。。。
注:imread支持图像格式有.tif/.jpg/.gif/.bmp/.png/.xwd,其中对于imwrite()不支持.gif格式。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
小常识:matlab简要介绍
[1] Matlab作为美国 MathWorks公司开发的用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境。是目前最好的科学计算类软件。
作为和Mathematica、Maple并列的三大数学软件。其强项就是其强大的矩阵计算以及仿真能力。要知道Matlab的由来就是Matrix + Laboratory = Matlab,所以这个软件在国内也被称作《矩阵实验室》。
每次MathWorks发布Matlab的同时也会发布仿真工具Simulink。在欧美很多大公司在将产品投入实际使用之前都会进行仿真试验,他们所主要使用的仿真软件就是Simulink。
Matlab提供了自己的编译器:全面兼容C以及Fortran两大语言。所以Matlab是工程师,科研工作者手上最好的语言,最好的工具和环境。
[2] Matlab的名称源自Matrix Laboratory ,它是一种科学计算软件,专门以矩阵的形式处理数据。
Matlab将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛地应用於科学计算、控制系统、信息处理等领域的分析、仿真和设 计工作,而且利用Matlab产品的开放式结构,可以非常容易地对Matlab的功能进行扩充,从而在不断深化对问题认识的同时,不断完善Matlab产 品以提高产品自身的竞争能力。
目前Matlab产品族可以用来进行:
·数值分析
·数值和符号计算
·工程与科学绘图
·控制系统的设计与方针
·数字图像处理
·数字信号处理
·通讯系统设计与仿真
·财务与金融工程
Matlab是Matlab产品家族的基础,它提供了基本的数学算法,例如矩阵运算、数值分析算法,Matlab集成了 2D和3D图形功能,以完成相应数值可视化的工作,并且提供了一种交互式的高级编程语言——M语言,利用M语言可以通过编写脚本或者函数文件实现用户自己 的算法。
MATLAB Compiler 是一种编译工具,它能够将那些利用 MATLAB 提供的编程语言——M语言编写的函数文件编译生成为函数库、可执行文件COM组件等等。这样就可以扩展Matlab功能,使Matlab 能够同其他高级编程语言例如 C/C++ 语言进行混合应用,取长补短,以提高程序的运行效率,丰富程序开发的手段。利用M语言还开发了相应的Matlab专业工具箱涵数供用户直接使用。这些工具 箱应用的算法是开放的可扩展的,用户不仅可以查看其中的算法,还可以针对一些算法进行修改,甚至允许开发自己的算法扩充工具箱的功能。
目前Matlab产品的工具箱有四十多个,分别涵盖了数据获取、科学计算、控制系统设计与分析、数字信号处理、数字图像处理、金融财务分析以及生物遗传工程等专业领域。