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种颜色。
索引
逻辑索引
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,[])
- MATLAB绪言
- 绪言
- 171031 Matlab数字图像处理-01-绪言
- 第一章 绪言
- 信息安全--一: 绪言
- "我是一棵树"绪言
- 开博绪言
- 成功的那些事儿--绪言
- struts2+spring+hibernate+json+jquery+flexigrid开发笔记-绪言
- 移动GIS原理与开发——框架、算法与实战 绪言
- matlab
- Matlab
- MATLAB
- matlab
- matlab
- matlab
- matlab
- MATLAB
- 【Jquery学习】第二部分
- 如何实现PLC与THINGWORX工业物联网平台对接
- 欢迎使用CSDN-markdown编辑器
- 【Linux】Shell
- 【handlerbars】模板引擎备忘录
- MATLAB绪言
- 第一章 绪言
- tomcat_ssl环境配置实现单向和双向认证
- Js鼠标放上去图片变大变小
- 一种动态屏幕适配的方法
- 名企笔试:2013 Facebook招聘笔试(查找相同url)
- 线性方程解法(齐次,非齐次)
- ajax传递给后台数组参数方式
- Redux-connect( )介绍