第一章 MATLAB数字图像处理编程基础
1 为什么用MATLAB
MATLAB的图像处理工具箱(Image Processing Toolbox,IPT)封装了一系列不同图像处理需求的标准算法,它们都是通过直接或间接调用MATLAB中矩阵运算和数值运算函数来完成图像处理任务。
2 MATLAB R2011a简介
2.1文件操作函数
1.addpath函数
1.addpath函数
向path变量中加入指定的目录路径,其原型如下。
addpath('dir','dir','dir3'...'-flag')
参数说明:
dir为要加入的目录路径,这些变量必须是绝对路径;
flag可以有来指定函数行为:
(flag=0或begin,flag参数省略时,默认为此项)时,这些路径被添加到搜索路径最前面;
(flag=1或end),路径被添加到搜索路径列表最后。
可以在addpath函数前后查看path变量内容,以确定添加成功。
2.genpath函数
生成包含指定目录下所有子目录的路径变量,其原型如下。
p=genpath('directory');
参数说明:
(1)参数directory为指定的目录。
(2)返回值:
函数返回包含指定目录本身和其全部子目录的数据。 返回值也可以直接提供为addpath函数,从而直接添加一个目录与其全部子目录到路径列表。
函数用途示例:可以方便调用一个程序工具箱路径,就可以直接使用工具箱中的函数文件了。
3.打开与编辑M文件
open filname//打开文件
edit filename//编辑文件
4.查看工作空间的变量
who whos
5.读取保存工作区中的变量
save filename arg1 arg2 arg3...
load filename arg1 arg2 arg3...
用处:matlab与vc相比执行效率不高,可根据需要在希望中断程序时保存程序的所有上下文变量,以备之后随时从中断点开始执行
6.生成特殊矩阵函数
| 函数名称 | 用途 |
|
eye |
产生单位矩阵 |
| zeros | 产生全部元素为0的矩阵 |
| ones | 产生全部元素为1矩阵 |
| true | 产生全部元素为真的逻辑矩阵 |
| false | 产生全部元素为假的逻辑矩阵 |
| rand | 产生均匀分布随机矩阵 |
| randn | 产生正态分布随机矩阵 |
| randperm | 产生随机排列 |
| limspace | 产生线性等分的矩阵 |
| logspace | 产生对数等分向量 |
| company | 产生伴随矩阵 |
| hadamarb | 产生hadamarb矩阵 |
| magic | 产生幻方矩阵 |
| hib | 产生hibert矩阵 |
| invhilb | 产生逆hibert矩阵 |
7.获得矩阵大小和维度
size(A,dim)
(1)A为需要查看大小的数组
(2)dim为指定的要查看的维数。dim省略时返回一个包含数组从第一维到最后一维大小的数组 ndims(A)
返回A的维数
8.获取矩阵子块
| 命令 | 用途 |
| A(M,N) | 提取m行n列位置的一个元素 |
| A(:N) | 提出第n列 |
| A(M,:) | 提出第M行 |
| A(m1:m2,n1:n2) | 提出m1到m2行,n1到n2列的一个子块 |
| A(m:end,n) | 提出m行到最后一行,第n列的一个 |
| A(:) | 将矩阵按列存储得到一个长列向量 |
9.细胞数组(Cell Array)
例:
Cell={'Harry',15,[1 0;15 2]};
元素访问:
Cell{1}='Harry';
Cell{2}=15;
Cell{3}={1 0;15 2}; 用圆括号形式的索引可以得到变量的描述,如下所示:
>>Cell(3)
ans=
{2*2 double}
10.结构体
Struct.Name='Harry';
Struct.Age=15;
Struct.SalaryMatrix={1 0;15 2};
>>
Struct%显示结构体的内容
Struct=
Name:'Harry'
Age:15
SalaryMatrix:[2*2 double]
>> Struct.SalaryMatrix ans = [ 1] [0]
[15] [2]
%访问结构体的内部字段
>>
name=Struct.Name;
11常用图像处理函数
MATLAB函数分有:数值函数,矩阵函数,逻辑函数等。
| 函数 | 用途 |
| all | 是否所有元素非零 |
| any | 是否至少有一元素非零 |
| isempty | 是否空矩阵 |
| isequal | 是否两矩阵相同 |
| isinf | 判断有无inf元素 |
| isnan | 判断有无nan元素 |
| isreal | 判断是否实矩阵 |
| find | 返回一个由非零元素下标组成的矩阵 |
| det | 计算方阵对应的行列式 |
| diag | 抽取对角线元素 |
| eig | 求特征值和特征向量 |
| flipud | 上下翻转 |
| inv | 求逆矩阵 |
| lu | 三角分解 |
| norm | 求范数 |
| orth | 正交化 |
| poly | 求特征多项式 |
| qr | 正交三角分解 |
| rank | 求矩阵的秩 |
| svd | 奇异值分解 |
| trace | 求矩阵的迹 |
| Tril | 抽取上三角矩阵 |
| tnu | 抽取下三角阵 |
第一章 MATLAB数字图像处理编程基础的更多相关文章
- matlab数字图像处理 入门基础
本代码基于张铮主编的<数字图像处理与机器视觉>一书. 源图片:lena A = imread ('lena.jpg'); %读入图像lena.jpg,赋给变量A %imwrite(A,'l ...
- 第一章 T-SQL查询和编程基础 T-SQL语言基础(2)
T-SQL查询和编程基础 (2) 1.3 创建表和定义数据完整性 注意:表是属于架构,而架构又是属于数据库的 -- Create a database called testdb IF DB_ID(' ...
- 第一章 T-SQL查询和编程基础 T-SQL语言基础(1)
T-SQL查询和编程基础(1) 1.1 理论背景 SQL是为查询和管理关系型数据库管理系统(RDBMS)中的数据而专门设计的一种标准语言. RDBMS是一种基于关系模型的数据库管理系统,关系模型则是一 ...
- MATLAB数字图像处理(二)图像增强
1 图像增强 1.1 直方图均衡化 对于灰度图像,可以使用直方图均衡化的方法使得原图像的灰度直方图修正为均匀的直方图. 代码如下: I2=histeq(I1); ...
- 第一章 了解Web及网络基础
第一章 了解Web及网络基础 Web建立基础.HTTP如何诞生发展 1.使用HTTP协议访问Web 在浏览器地址栏中输入URL之后过程: 1)DNS 解析:浏览器查询 DNS,获取域名对应的 IP 地 ...
- MATLAB数字图像处理(一)基础操作和傅立叶变换
数字图像处理是一门集计算机科学.光学.数学.物理学等多学科的综合科学.随着计算机科学的发展,数字图像处理技术取得了巨大的进展,呈现出强大的生命力,已经在多种领域取得了大量的应用,推动了社会的发展.其中 ...
- MATLAB数字图像处理基础
图像的输入.输出和显示 1.图像的输入 imread('filename'), 实际中写的是 >> f = imread('sky.jpg'); 2.图像的显示 imshow ...
- 第一章:大数据 の Linux 基础 [更新中]
本课主题 Linux 休系结构图 Linux 系统启动的顺序 Linux 查看内存和 CPU 指令 环境变量加载顺序 Linux 内存结构 Linux 休系结构图 Linux 大致分为三个层次,第一层 ...
- 第九章:Python の 网络编程基础(一)
本課主題 何为TCP/IP协议 初认识什么是网络编程 网络编程中的 "粘包" 自定义 MySocket 类 本周作业 何为TCP/IP 协议 TCP/IP协议是主机接入互网以及接入 ...
随机推荐
- 利用yarn多队列实现hadoop资源隔离
大数据处理离不开hadoop集群的部署和管理,对于本来硬件资源就不多的创业团队来说,做好资源的共享和隔离是很有必要的,毕竟不像BAT那么豪,那么怎么样能把有限的节点同时分享给多组用户使用而且互不影响呢 ...
- ES怎么进行字段添加索引,并保留原有数据
1.先将原索引进行备份 curl -XPOST '192.168.46.163:9200/_reindex?pretty' -H 'Content-Type: application/json' -d ...
- 转:svn 更新指定文件夹
通常由于创建很多个branch和tag,当我们要去checkout指定tag和branch的时候,会不得不把整个branch/tag目录checkout出来.是不是有点傻??!!! 那么如何有选择ch ...
- Python线程操作
一.全局锁 1.在Python中,Python代码的执行由Python虚拟机来控制,而在Python虚拟机中,同一时刻只有一个线程在执行,就像单CPU的系统中运行多个进程那样,内存中可以存放多个程序, ...
- Solidworks 好的测试题模拟题
题目:按照下图构建草图,注意设置必要的几何约束. 问题: 1.参照下图所示参数时请问其中绿色区域的面积为多少平方毫米? 题目:参照下图绘制草图轮廓,注意图中各线条之间均为相切过渡. 问题: ...
- 2015级C++第7周项目 友元、共享数据保护、多文件结构
[项目1-成员函数.友元函数和一般函数有差别]參考解答 (1)阅读以下的程序,体会凝视中的说明(要执行程序,请找到课程主页并复制代码) //例:使用成员函数.友元函数和一般函数的差别 #include ...
- 自上而下渐显图片的CSS3实现
代码地址如下:http://www.demodashi.com/demo/12160.html 目录 一.实现思路 二.所用特性 三.示例代码 四.实例效果 五.组件化(Vue) 一.实现思路 从效果 ...
- java ee xml 学习
该文章对j2ee的xml各种标签做了详细全面的说明 http://01121264-163-com.iteye.com/blog/1530063
- 类中的internal成员可能是一种坏味道
前言 最近除了搞ASP.NET MVC之外,我也在思考一些编程实践方面的问题.昨天在回家路上,我忽然对一个问题产生了较为清晰的认识.或者说,原先只是有一丝细微的感觉,而现在将它和一些其他的方面进行了联 ...
- .net core 2.0小白笔记(一):开发运行环境搭建
小白一枚,有任何不妥之处敬请指教 这里不讨论什么设计模式,什么架构,什么什么,就是入门,简单的入门,虽然能跨平台,但是这里还是在win的环境下进行,不扯的那么远 其实官网文档写的挺不错的了,就是偶尔有 ...