matlab图像处理(一)--图片读写

 

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,[ ])后它的灰度级范围得到拉伸。

              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产品的工具箱有四十多个,分别涵盖了数据获取、科学计算、控制系统设计与分析、数字信号处理、数字图像处理、金融财务分析以及生物遗传工程等专业领域。

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值