MATLAB绪言

第一章 绪言!

MATLAB简介

MATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国The MathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。(具体资料查看链接MATLAB详细介绍)

数字图像表示

图像可以定义为一个二维函数f(x,y),x,y是空间(平面)坐标,且任何坐标对(x,y)处的幅度f称为图像在这一点的亮度。
对于MATLAB来讲,每一个图像会被看做一个矩阵,对图像的操作其实就是对矩阵的操作。

4种图像类型

  • 灰度级图像(Gray-scale images)

    灰度图通常由一个unit8、unit16、单精度类型或者双精度类型的数组描述,其实质是一个数据矩阵I,该矩阵中的数据均代表了一定范围内的灰度级,每一个元素与图像的一个像素点相对应,通常0代表黑色,1、255或65635(为数据矩阵的取值范围上限)代表白色。

  • 二值图像(Binary images)

    在二进制图中,像素的取值为两个离散数值0或1中的一个,0代表黑色,1代表白色

A=[1 0 1;0 1 0; 1 0 1];
imshow(A,'InitialMagnification','fit')          

以下是效果图
二值图像
* 索引图像(Indexed images)

索引图像包括一个数据矩阵X,一个颜色映像矩阵Map。其中Map是一个包含三列、若干行的数据阵列,其中每个元素的值均为[0, 1]之间的双精度浮点型数据。Map矩阵的每一行分别表示红色、绿色和蓝色的颜色值。在MATLAB中,索引图像是从像素值到颜色映射表值的“直接映射”。像素颜色由数据矩阵X作为索引指向矩阵Map进行索引,例如,值1指向矩阵Map中的第一行,值2指向第二行,以此类推。
索引图像的作用就是体积小,方便传输,只需要把索引表传输过去,接收方用对应的RGB颜色表还原就行。索引图像
* RGB图像(RGB images)

RGB图像又称为真彩图像,它使用R、G、B 3个分量标识一个像素的颜色,R、G、B分别代表红、绿、蓝3种不同的基础颜色,通过3基色可以合成出任意颜色。所以对一个尺寸nxm的彩色图像来说,MATLAB中则存储为一个nxmx3 的多维数据数组,其中数组中的元素定义了图像中每一个像素的红、绿、蓝颜色值。图形文件格式把RGB图像存储为24位的图像,红、绿、蓝分量分别占用8位,因而理论上可以有2^24种颜色。
RGB图像

索引

逻辑索引

D = logical([1 0 0; 0 0 1;0 0 0])

D =

 3×3 logical 数组

  1   0   0
  0   0   1
  0   0   0

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

A =

    1     2     3
    4     5     6
    7     8     9

A(D)

ns =

   1
   6

图像的输入/输出、显示 、查询

  • 图像的读入 imread

    使用函数 imread 可以将图片读入MATLAB环境中,imread支持多数流行的图像格式,包括 JPEG、JPEG200和TIFF。
    基本语法: imread(‘filename’),其中filename是一个含有图像文件全名字符串。
    例如: >>f = imread(‘chestxray.jpg’),f为一个图像数组。

  • 图像的输出 imwrite

    使用函数 imwrite 可以将图像写入当前目录。
    基本语法:imwrite(f,’filename’)。
    imwrite还可以有其他的参数,比较常用的适用于JPEG图像的imwrite语法是 imwrite(f,’filename.jpg’,’quality’,q) , 其中 q 是从0 到 100之间的一个整数,对JPEG压缩,数字越小,劣化越高。

  • 图像的显示 imshow

    使用函数 imshow 可将图像显示在MATLAB桌面上
    基本语法: imshow(f)
    注意:如果之前使用imshow显示过一幅图片,现在要显示另一幅图片,MATLAB就会用新的图片取代图形窗口中的另一幅图片。想要保留第一幅图片并输出第二幅图片可使用函数 figure
    例如:

    imread('123.jpg');
    > imshow(A)
    > f = imread('123.jpg');
    > imshow(f)
    > g = imread('2.jpg');
    > figure,imshow(g)
  • 图像的查询 iminfo

    info=iminfo(‘文件名’)

    info = imfinfo('2.jpg')
    info = 
           Filename: 'F:\matlab\mywork\2.jpg'
        FileModDate: '31-Mar-2017 21:56:43'
           FileSize: 33732
             Format: 'jpg'
      FormatVersion: ''
              Width: 512
             Height: 628
           BitDepth: 24
          ColorType: 'truecolor'
    FormatSignature: ''
    NumberOfSamples: 3
       CodingMethod: 'Huffman'
      CodingProcess: 'Progressive'
            Comment: {}
        Orientation: 0
           DateTime: ''
      DigitalCamera: [1×1 struct]

关系运算符

1.算数运算符

MATLAB算术运算符分为两类:矩阵运算和数组运算。矩阵运算是按线性代数的规则进行运算,而数运算是数组对应元素间的运算。算术运算符及相关运算方式、说明见下表:

运算符运算方式说明
+,-矩阵运算加 减
*,/矩阵运算乘 除
\矩阵运算矩阵左除
^矩阵运算乘方
矩阵运算转置
:矩阵运算索引
+,-数组运算加 减
.*,./数组运算乘 除
.\数组运算数组左除
.^数组运算乘方
.’数组运算数组转置

2.关系运算符

关系运算用于比较两个同维数组或同维向量的对应元素,结果为一个同维的逻辑数组。关系运算符及说明见下表:

运算符说明
>大于
<小于
.>=大于等于
<=小于等于
==等于
~=不等于

3.逻辑运算

MATLAB提供了两种类型的逻辑运算:一般逻辑运算和捷径运算

运算符与函数说明
&(and)逻辑与
(or)
~(not)逻辑非
xor逻辑异或
&&指标量值的捷径与

4.特殊运算符

% 注释
[] 生成向量和矩阵
@ 句柄

函数句柄 ,单元数组和结构

句柄运算符:@ 相当于C语言中的取址运算

function s = image_start(f)
s.dm = size(f);%大小
s.AI = maen2(f)
s.AIrows = mean(f,2)%平均值
s.AIcols = mean(f,1)

基于函数 f(x,y) = Asin(u0x + v0y)

function f = twodsin1(A,u0,v0,M,N)
f = zeros(M,N);
for c = 1:N
   v0y = v0 * (c - 1);
   for r = 1:M
       u0x = u0 * (r - 1);
      f(r,c) = A * sin(u0x + v0y);
   end
end

调用上面的函数会生成图像
f = twodsin1(1,1/(4*pi),1/(4*pi),512,512);
imshow(f,[])twodsin1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值