• 导入显示保存图像
  • 数据类型
  • 灰度级图像
  • 二值图像
  • M函数编程
  • 算数运算符
  • 关系运算符
  • 流控制
  • 数组索引
  • 函数句柄单元数组和结构
  • 单元矩阵
  • 结构
  • 代码优化
  • 计时函数
  • meshgrid函数
  • A final example

01.导入/显示/保存图像

导入

f = imread('chess.jpeg');
% 结尾分号抑制图像数据的输出

显示

imshow(f);

避免覆盖显示多个

imshow(f)
figure
%单独再增加一个figure窗口
imshow(g)

保存

imwrite(f,'path\filename')
%需要目录存在

指定质量保存JPEG

%q是0-100中间的一个整数,数字越小,劣化越高
q=1
%对于JPEG压缩,图像尺寸不变,但内存减少
imwrite(f,'path\filename',q)

指定质量保存TIF

imwrite(g,'filenme.tif','compression','parameter',...,'resolution',[colres, rowres])
% parameter: 指定压缩方式
% [colres, rowres]:指定分辨率 dpi

02.数据类型

常用(单字节/元素):
unit8: [0-255]
logical: [0或1]

医学(双字节/元素)-傅里叶变换:
unit16: [0,65535] 无符号16比特整数
int16: [-32768,32767] 有符号16比特整数

单精度浮点类:4字节/元素
双精度浮点数:8字节/元素

03.灰度级图像

unit8: [0-255]
unit16: [0-65535]
doubel: [±10308\pm{10}^{308}] (8字节/元素)
single: [±10308\pm{10}^{308}] (4字节/元素)

04.二值图像

将数组A转换成逻辑数组:B=logical(A)B=logical(A)
非零元素 → 1
零元素 → 0

判断是否为逻辑数组:islogical(C)islogical(C)
是 → return 1
否 → return 0

将逻辑数组转换成数值数组
B=class−name(A)B=class-name(A)

class_name:
im2unit8( )
im2unit16( )
im2double( )
im2single( )
mat2gray( )

example: g=mt2gray(A,[Amin,Amax])g = mt2gray(A,[Amin, Amax])

当A中元素小于Amin时→0
当A中元素大于Amax时→1

05.M函数编程

M文件的组成部分
- 函数定义行
- H1行
- 帮助文本
- 函数体
- 注释

function [outputs] = fun_name(inputs)

  • function 总是出现在左侧
  • fun_name字母开头,可以任意选择
  • 输出参数在方括号内
  • 输入参数在圆括号内
  • 如果函数只有单个输出参数,可以不适用括号直接给出
  • 如果函数没有输出,则仅仅使用function即可,不需要圆括号或等号

几个常用的m文件操作函数
help function_name 查询函数的功能: H1行+帮助文本
lookfor keyword ???
edit averge.m 编辑m文件

06.算数运算符

矩阵算术-线性代数运算-A*B
数组算术-逐个元素运算 A.*B

% 表1.2 数字与矩阵的算术运算符,其中a与b是标量

07.关系运算符

% 表1.3 关系运算符
运算符 名称
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
~= 不等于
% 表1.4 逻辑运算符
运算符 名称 场景
& 逐个元素“与” 数组
l 逐个元素“或” 数组
~ 逐个元素或标量“非” 数组
&& 标量“与” 标量-if/while/for
ll 标量“或” 标量-if/while/for

08.流控制

%1.5 流控制语句

09.数组索引

  • 向量的定义
v = [1 2 3 4 5 6]
  • 向量的转置
v.'
  • 向量的索引
v(2)  % 单个索引
v(1:3) % 切片索引
v(3:end) % 末尾索引
v([1 3 5]) % 元素索引
v(1:2:end) % 等差索引
  • 矩阵的定义
A = [1 2 3; 4 5 6; 7 8 9]
A =1     2     34     5     67     8     9
  • 行索引
A(2,:)
  • 列索引
A(:,2)

-计算每一列的和

sum(A)

-计算总和

sum(A(:)) % 用单冒号将矩阵转换成列向量
  • 逻辑索引
>> D= logical([1 0 0 ;0 1 0 ;0 0 1])D =1     0     00     1     00     0     1>> AA =1     2     34     5     67     8     9>> A(D)ans =159
  • 矩阵单一下标索引
A(8)等效于A(2,3)

10.函数句柄、单元数组和结构

定义: 函数句柄是一种Matlab数据类型,其优点是可将函数句柄作为调用中的参量传递到另外一个函数.
两种形式:1. 简单函数句柄 2. 匿名函数句柄

% 简单函数句柄
>> f=@sin
f = @sin
>> f(pi/4)
ans =0.7071
% 匿名函数句柄,表达形式:@(input-argument-list) expressionexample-1: g = @(x) x.^2example-2: r = @(x,y) sqrt(x.^2+y.^2)

11.单元矩阵

单元矩阵提供了一种在变量名下组合一套对象(数字、字符、其他单元矩阵)的方法

f = imread('chess.jpg')
g = [1 2; 3 4]
char_array = {'a','b'}
C = {f ,g ,char_array}
C{3} % 通过相对位置查看内容-{}
C(3) % 通过相对位置参看变量的描述-()
% 注意: C单元体内为对象的副本,而非指针,故对原始对象的修改不会影响后面生成的单元矩阵

12.结构

类似单元矩阵,不同的是:结构的元素由用户定义的称为字段的名称寻址。
字段名是任意的,但需要是字母开头

exampe:

fucntion s = image_stats(f)
s.dm = size(f);
s.AI = means2(f);
s.ATrows = mean(f,2);
s.AIcols = mean(f,1);

13.代码优化

  • 预分配数组
  • 向量话循环

14.计时函数

tic % 前面
function % 中间
toc % 结尾
% timeit(function_name)
f = @() sin(x);
timeit(f)

15.meshgrid函数

[C,R]=meshgrid(c,r)[C,R]=meshgrid(c,r) % C列在前,R行在后

%example
>> [X,Y] = meshgrid(1:3,10:14)
X =1     2     31     2     31     2     31     2     31     2     3
Y =10    10    1011    11    1112    12    1213    13    1314    14    14
>> X+Y
ans =11    12    1312    13    1413    14    1514    15    1615    16    17

A final example

function f =twodsin2(A,u0,u0,M,N)
r = 0:M - 1; %Row coordinates
c = 0:N - 1; %Colume coordinates
[C,R] = meshgrid(c,r);
f = A*sin(u0*R+v0*C);% 测量时间
f = @() twodsin(1,1/(4*pi),1/(4*pi),512,512)
timeit(f)% 绘制图形,使用imshow自动确定范围的语法
g = twodsin(1,1/(4*pi),1/(4*pi),512,512)
imshow(g,[])

171031 Matlab数字图像处理-01-绪言相关推荐

  1. Matlab数字图像处理 01 图像数据的表示与基本运算

    第一章 图像数据的表示与基本运算 1.1 读取和显示图像文件 1.2 图像类型与图像数据 1.2.1 RGB真彩色图像 1.2.2 索引图像 1.2.3 灰度图像 1.2.4 二值图像 1.2.5 视 ...

  2. 数字图像处理01:imadjust函数的Pyhton实现

    版权声明:本文为博主原创文章,未经博主允许不得转载. 数字图像处理01:imadjust函数的Pyhton实现 1.imadjust函数 Matlab的工具箱函数:imadjust(f,[low_in ...

  3. 【基于matlab数字图像处理GUI代码】_数字图像处理考核论文_大作业_项目

    基于matlab数字图像处理GUI代码 代码: function varargout = Image_processing_GUI(varargin) % IMAGE_PROCESSING_GUI M ...

  4. 《精通Matlab数字图像处理与识别》一6.2 傅立叶变换基础知识

    本节书摘来自异步社区<精通Matlab数字图像处理与识别>一书中的第6章,第6.2节,作者 张铮 , 倪红霞 , 苑春苗 , 杨立红,更多章节内容可以访问云栖社区"异步社区&qu ...

  5. matlab fspeical,MATLAB数字图像处理.doc

    MATLAB数字图像处理 MATLAB常用图像操作 转换图像类型 例1.对一幅图像进行二值化处理,代码及结果如下: load trees BW=im2bw(X,map,0.4); imshow(X,m ...

  6. Matlab数字图像处理——图像处理工具箱Image Processing Toolbox

    Image Processing Toolbox 图像处理工具箱包含的功能: 图像的读取和保存 图像的显示 创建GUI 图像的几何变换 图像滤波器设计及线性滤波 形态学图像处理 图像域变换 图像增强 ...

  7. Matlab数字图像处理——图像文件的读取

    文章目录 一.Matlab中获取图像信息的函数 imfinfo 二.Matlab读取图像文件的函数 imread 三.Matlab保存图像文件的函数 imwrite 完整目录 一.Matlab中获取图 ...

  8. matlab数字图像处理课程设计报告,数字图像处理初步-实验1

    MATLAB数字图像处理初步 通过实验对MatLab软件的基本使用基本的了解,学会使用MatLab软件来读取一个特定格式的图像,并通过相关的命令语句对图像进行格式转换.图像压缩.二值化等的处理,掌握利 ...

  9. matlab对于处理数字图像的优点,学习MATLAB数字图像处理经验谈

    学习MATLAB数字图像处理经验谈 学习数字图像处理经验谈 (赵小川) 一.面向应用:层层分解.抓住要点 我们学习数字图像处理的最终目的还是应用,不管是用它来研制产品还是研发项目抑或是研究课题,都要用 ...

最新文章

  1. 管道通信C语言,Go语言通道(chan)——goroutine之间通信的管道
  2. 为什么 ConcurrentHashMap 的读操作不需要加锁?
  3. centos 安装 svn
  4. elixir官方入门教程 模式匹配
  5. Python学习(四)
  6. python爬虫爬取网页图片_Python爬虫实现抓取网页图片
  7. P3870 [TJOI2009]开关 线段树 异或
  8. 浙大网新实训项目介绍
  9. 数据库连接数过多 too many
  10. 玄学小记.5 ~ Bluestein's algorithm
  11. Global.asax.cs中的方法(包括自定义方法)的含义
  12. ResNeX论文概述
  13. iFK蓝牙耳机的EQ调节
  14. [转载]静息态fMRI、DTI、VBM
  15. 最全编程开发常用单词词汇
  16. 互联网医疗仅剩的平台型超级独角兽,微医如何冲出重围?
  17. matlab中在同一图形窗口中绘制出一个周期内的正弦曲线和余弦曲线,多选(3分) 在一个图形窗口同时绘制[0,2π]的正弦曲线、余弦曲线,可以使用命令( )。...
  18. 申请著作权的流程有哪些
  19. js实现网页中英文翻译
  20. GL_INVALID_OPERATION

热门文章

  1. 微信小程序:十二星座运势查询
  2. 目标检测学习笔记——SSD以及改进模型DSSD的原理解读及SSD的Tensorflow代码实现(图文并茂)
  3. Linux for h4100 - installing Linux to the ipaq h4150 (老树出新芽)
  4. 阿里程序员,过完年第一天就要被劝退!让人感觉现实是如此残酷!
  5. 疫情期间对通证经济的一些思考
  6. 基于生成对抗网络结构的图像修复(GAN)
  7. 苹果CMS搭建影视网站教程
  8. pdf大小如何压缩?
  9. c语言资料大全收集,C语言库函数大全(收集资料).pdf
  10. el-table表格数据 中文 键值渲染