MATLAB绪言

来源:互联网 发布:中国烟草待遇 知乎 编辑:程序博客网 时间:2024/05/17 06:58

  • 第一章 绪言
    • MATLAB简介
    • 数字图像表示
    • 4种图像类型
    • 索引
    • 图像的输入输出显示 查询
    • 关系运算符
    • 函数句柄 单元数组和结构

第一章 绪言!

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   0A = [1  2 3;4 5 6;7 8 9]A =    1     2     3    4     5     6    7     8     9A(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);   endend

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

原创粉丝点击