171031 Matlab数字图像处理-01-绪言
- 导入显示保存图像
- 数据类型
- 灰度级图像
- 二值图像
- 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-绪言相关推荐
- Matlab数字图像处理 01 图像数据的表示与基本运算
第一章 图像数据的表示与基本运算 1.1 读取和显示图像文件 1.2 图像类型与图像数据 1.2.1 RGB真彩色图像 1.2.2 索引图像 1.2.3 灰度图像 1.2.4 二值图像 1.2.5 视 ...
- 数字图像处理01:imadjust函数的Pyhton实现
版权声明:本文为博主原创文章,未经博主允许不得转载. 数字图像处理01:imadjust函数的Pyhton实现 1.imadjust函数 Matlab的工具箱函数:imadjust(f,[low_in ...
- 【基于matlab数字图像处理GUI代码】_数字图像处理考核论文_大作业_项目
基于matlab数字图像处理GUI代码 代码: function varargout = Image_processing_GUI(varargin) % IMAGE_PROCESSING_GUI M ...
- 《精通Matlab数字图像处理与识别》一6.2 傅立叶变换基础知识
本节书摘来自异步社区<精通Matlab数字图像处理与识别>一书中的第6章,第6.2节,作者 张铮 , 倪红霞 , 苑春苗 , 杨立红,更多章节内容可以访问云栖社区"异步社区&qu ...
- matlab fspeical,MATLAB数字图像处理.doc
MATLAB数字图像处理 MATLAB常用图像操作 转换图像类型 例1.对一幅图像进行二值化处理,代码及结果如下: load trees BW=im2bw(X,map,0.4); imshow(X,m ...
- Matlab数字图像处理——图像处理工具箱Image Processing Toolbox
Image Processing Toolbox 图像处理工具箱包含的功能: 图像的读取和保存 图像的显示 创建GUI 图像的几何变换 图像滤波器设计及线性滤波 形态学图像处理 图像域变换 图像增强 ...
- Matlab数字图像处理——图像文件的读取
文章目录 一.Matlab中获取图像信息的函数 imfinfo 二.Matlab读取图像文件的函数 imread 三.Matlab保存图像文件的函数 imwrite 完整目录 一.Matlab中获取图 ...
- matlab数字图像处理课程设计报告,数字图像处理初步-实验1
MATLAB数字图像处理初步 通过实验对MatLab软件的基本使用基本的了解,学会使用MatLab软件来读取一个特定格式的图像,并通过相关的命令语句对图像进行格式转换.图像压缩.二值化等的处理,掌握利 ...
- matlab对于处理数字图像的优点,学习MATLAB数字图像处理经验谈
学习MATLAB数字图像处理经验谈 学习数字图像处理经验谈 (赵小川) 一.面向应用:层层分解.抓住要点 我们学习数字图像处理的最终目的还是应用,不管是用它来研制产品还是研发项目抑或是研究课题,都要用 ...
最新文章
- 管道通信C语言,Go语言通道(chan)——goroutine之间通信的管道
- 为什么 ConcurrentHashMap 的读操作不需要加锁?
- centos 安装 svn
- elixir官方入门教程 模式匹配
- Python学习(四)
- python爬虫爬取网页图片_Python爬虫实现抓取网页图片
- P3870 [TJOI2009]开关 线段树 异或
- 浙大网新实训项目介绍
- 数据库连接数过多 too many
- 玄学小记.5 ~ Bluestein's algorithm
- Global.asax.cs中的方法(包括自定义方法)的含义
- ResNeX论文概述
- iFK蓝牙耳机的EQ调节
- [转载]静息态fMRI、DTI、VBM
- 最全编程开发常用单词词汇
- 互联网医疗仅剩的平台型超级独角兽,微医如何冲出重围?
- matlab中在同一图形窗口中绘制出一个周期内的正弦曲线和余弦曲线,多选(3分) 在一个图形窗口同时绘制[0,2π]的正弦曲线、余弦曲线,可以使用命令( )。...
- 申请著作权的流程有哪些
- js实现网页中英文翻译
- GL_INVALID_OPERATION
热门文章
- 微信小程序:十二星座运势查询
- 目标检测学习笔记——SSD以及改进模型DSSD的原理解读及SSD的Tensorflow代码实现(图文并茂)
- Linux for h4100 - installing Linux to the ipaq h4150 (老树出新芽)
- 阿里程序员,过完年第一天就要被劝退!让人感觉现实是如此残酷!
- 疫情期间对通证经济的一些思考
- 基于生成对抗网络结构的图像修复(GAN)
- 苹果CMS搭建影视网站教程
- pdf大小如何压缩?
- c语言资料大全收集,C语言库函数大全(收集资料).pdf
- el-table表格数据 中文 键值渲染