《数字图像处理》--冈萨雷斯(第二章)
2017-09-10 10:29
309 查看
基本原理
数字图像的表示
坐标约定:多数图像处理书籍中所用的坐标约定
图形处理工具箱中所用的坐标约定
图像的矩阵表示
读取图像
>> f = imread(filename);
filename 是一个含有图像文件全名的字符串,此处可以用相对路径和绝对路径
>>size(f)
函数size可以给出一幅图像的行数和列数
>> whos f
函数whos可以显示出一个数组的附加信息
显示图像
>> imshow(f,G)
f是一个图像数组,G是显示该图像的灰度级数(若G省略,则默认的灰度级数是256)
其他表示法:
>> imshow(f,[low,high])
>> imshow(f,[ ])
同时显示两个图像
>> imshow(f), figure, imshow(g)
保存图像
>> imwrite(f,'filename')
>> imwrite(f,'firstImage','tif')
或
>> imwrite(f,'firstImage.tif')
使用imfinfo保存图像
>> imfinfo filename
执行完此命令后会输出该图片的相关信息,可通过相关信息了解该图片相关属 性
imwrite的另一种常用但只适用于tif图像的语法
imwrite(g,'filename.tif','compression','parameter','resolution',[colres rowres])
利用print保存图像可以获得更多的输出参数
print -fno -dfileformat -rreson filename
图像类和类型间的转换
im2uint8
函数im2uint8将输入中所有小于0 的值设置为0 ,所有大于1 的值设置为 255 再将所有的数都乘255,并将结果四舍五入为最接近的整数后,就完成了转换。
im2double
数组索引
作用:简化了数组操作,而且提高了程序的运行效率。向量索引
向量的第一个元素下标为1.'行向量转换为列向量
函数 linkspace
x = linspace(a, b, n)
矩阵索引
矩阵中分号的作用,与前面提到的取消命令的输出或在一行中写入多条命令时所用分号的作用是不同的矩阵中最后一个元素的索引可用 end 来代替
其中E显示了A中行1列2,行3列2,行1列3,行3列3对应的值
使用数组索引对图像进行简单的操作
翻转
此处遇到的问题:
当用此图片进行翻转时,出现如下状况:
经过检验发现 size(f) 有三个参数,上网查询知道是由于原图片为彩色图像,改为黑白图像即可
原图像
翻转后的图像
部分图像
一些重要的标准数组
zeros(M,N)ones(M,N)
true(M,N)
false(M,N)
magic(M)
rand(M,N)
randn(M,N)
M函数编程简介
M文件组成部分
函数定义行H1行
帮助文本
函数体
命令
函数行:
函数定义行的形式为:function [outputs] = name(inputs)
输入必须在()内,输出必须在[ ]内,但是如果输出只有一个变量则可以 省略[ ]
H1行:
该行提供了关于M文件的重要摘要信息
帮助文本:
跟在H1行后面的文本块,为函数提供注释或在线帮助。
函数体:
包含了所有执行计算并给输出变量赋值的MATLAB代码。
例如执行sumprod.m文件
>> edit sumprod
运算符
执行数值计算的算术运算符在数量上比较操作数的关系运算符
执行韩式AND、OR和NOT的逻辑运算符
一些重要的变量和常数
函数 | 返回值 |
---|---|
ans | 最新的答案 |
eps | 浮点数的相对精度 |
i(或j) | 虚数单位 |
NaN或nan | Not-a-Number |
pi | 3.14159265358979 |
realmax | 计算机所能表示的最大浮点数 |
realmin | 计算机所能表示的最小浮点数 |
version |
流控制
if、else、for 、 while、 break、continue… 将例2.12中的
“`
for r = rx:rowhogh xcount = xcount + 1; ycount = 0; for c = cy:colhigh ycount = ycount + 1; s(xcount,ycount) = f(r, c); end end
“`
for改成while
r = rx; while r~=rowhigh r = r + 1; xcount = xcount + 1; ycount = 0; c = cy; while c~=colhigh c = c + 1; ycount = ycount + 1; s(xcount,ycount) = f(r, c); end end
代码优化
交互式I/O
单元数组与结构简介
相关文章推荐
- 《数字图像处理》MATLAB版-冈萨雷斯
- 《数字图像处理》冈萨雷斯学习笔记5:彩色图像处理
- 《数字图像处理 第三版》(冈萨雷斯)——第十二章 目标识别
- 《数字图像处理》冈萨雷斯版 读书笔记(五)
- 冈萨雷斯《数字图像处理》第三章:亮度变换和空间滤波
- 区域生长(冈萨雷斯数字图像处理)
- 数字图像处理(冈萨雷斯第3版)第二章
- 冈萨雷斯《数字图像处理》学习笔记二——数字图像基础
- 《数字图像处理 第三版》(冈萨雷斯)——第三章 灰度变换和空间滤波
- 《数字图像处理 第三版》(冈萨雷斯)——第四章 频率域处理
- 《数字图像处理》冈萨雷斯学习笔记1:基本原理
- 《数字图像处理》冈萨雷斯学习笔记4:图像复原
- 《数字图像处理 第三版》(冈萨雷斯)——第五章 图像复原与重建
- 《数字图像处理》--冈萨雷斯(第三章)
- 《数字图像处理》冈萨雷斯学习笔记3:频域处理
- 冈萨雷斯《数字图像处理》学习笔记一:绪论
- 《数字图像处理 第三版》(冈萨雷斯)——第六章 彩色图像处理
- 《数字图像处理》--冈萨雷斯(第九章)
- 《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波
- 《数字图像处理》冈萨雷斯版 读书笔记(一)