• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Matlab图像处理(01)-Matlab基础

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

枫竹梦对于Matlab几乎是零基础,只是在上学的时候稍稍接触一点,万万没有想到现在还能用到Matlab。进入正题>>>

图像的基本概念

一幅图像可以被定义为一个二维函数f(x,y),x和y表示空间坐标,f在(x,y)处的取值(振幅)为图像在该点的亮度。对于灰度图像来讲,即为灰度。对于RGB彩色系统来讲,即为R、G、B三个分量图像的灰度的合成。


要将一幅图像转换为数字形式,就要求数字化坐标和振幅。将坐标数字化称为取样,将振幅数字化称为量化。当f和x,y分量的振幅都是有限且离散的量时,称该图像为数字图像。


一幅有着M行N列的图像,称图像的大小为MxN。在多数的图像处理书箱中图像的原点字义在(x,y)=(0,0)处。所以x的取值为从0到M-1,y的取值为从0到N-1。在Matlab中原点定义在(1,1)处。

Matlab图像处理基本函数

首先需要了解的是如何读取图像,显示图像,保存图像。

读取图像

读取图像使用imread()如:

imread(\'image_filename\')
支持的图像格式有TIFF、JPEG、GIF、BMP、PNG、XWD(X Window转储)。

注意:文件名需要写明扩展名,不可省略。文件名使用单引号来界定。如果需要让Matlab不输出读取结果,则以分号结尾。

当文件中不包含路径信息时,默认从当前目录中进行文件的查找,如果使用其他目录中的文件可以使用相对目录或者绝对路径的形式。

image = imread(\'test.jpg\');
将读取的数据保存在变量image中。


size(image)
给出图像的大小,以数组的形式给出。当前为了得到图像的行数和列数,可以这样:
[M, N] = size(image);
M即为图像的行数,N为图像的列数。


当然也可以使用whos命令进行查看:

>> whos image
  Name          Size                Bytes  Class    Attributes

  image      1029x1248            1284192  uint8  

上面的>>为Matlab的命令提示符。

显示图像

显示图像的函数为
imshow(f, G)
f为图像的数组,也就是上面使用imread读取的结果。G是显示该图像的灰度级数,如果省略G,默认灰度级数是256。

imshow(f, [low, high])
会将所有小于或等于low的值都显示为黑色。所有大于或等于high的值显示为白色。介于二者之间的按照默认的级数显示为中等亮度值。


imshow(f, [])
会将low设置为数组f的最小值,将变量high设置为数组f的最大值。这对于输出动态范围较小或者既有正值又有负值的图像非常有用。


在Matlab中如果需要显示另一幅图片,直接使用imshow会在已打开的figure窗口中显示图像,若要在新的窗口中显示图像可以使用figure函数,如:

figure, imshow(image)

同时显示两幅图片:

imshow(image1), figure, imshow(image2)


在Matlab的较早版本中,使用pixval函数可以交互地显示像素的亮度值。在较的新的版本中使用impixelinfo函数替代了pixval。如下图左下角:



保存图像

保存图像的函数是imwrite,语法为imwrite(image, \'filename\'),filename必须包含合法的图片扩展名,否则需要提供第三个参数如:
imwrite(image, \'image1\', \'tif\');
imwrite(image, \'image2.tif\');
在filename中不 包含路径信息,则将文件写在当前工作目录中。对于JEPG格式的图片,语法为:
imwrite(image, \'image3.jpg\', \'quality\', 70)
最后的数字70,表示JPEG的压缩的质量,为0~100之间,数值越大,质量越好。默认为75。

使用函数imfinfo可以显示图像的其他信息,如:
>> imfinfo bubbles5.jpg

ans = 

           Filename: \'bubbles5.jpg\'
        FileModDate: \'24-Apr-2017 23:38:34\'
           FileSize: 7904
             Format: \'jpg\'
      FormatVersion: \'\'
              Width: 720
             Height: 688
           BitDepth: 8
          ColorType: \'grayscale\'
    FormatSignature: \'\'
    NumberOfSamples: 1
       CodingMethod: \'Huffman\'
      CodingProcess: \'Sequential\'
            Comment: {}
可以看到,图像文件的大小为7904字节,宽高信息,8位灰度图像等。

当然可以将图像的信息保存在变量中,在后续的计算中进行使用。
k = imfinfo(\'bubbles5.jpg\');
width = k.Width;





鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi与DirectX之DelphiX(4):初识TDXTimer发布时间:2022-07-18
下一篇:
delphi boolean 类型转成string型发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap