数据图像处理——期末复习知识点二2(含matlab简单命令考察)

考试题型:选择题10/2‘ |填空题 10/1’ |判断题 10/1‘|简答题 6/5’|综合题 3/10‘
!!PS:注意本文仅供学习参考,如有误差可以私信联系我进行修改哦~~

二、 综合题

  1. 几何变换
  2. 图像压缩
  3. 微分锐化

三、 填空题

1.数字图像的质量在很大程度上取决于采样和量化中所用的采样数和灰度级。
空间分辨率是图像中可辨别的最小细节,采样值是决定一幅图像空间分辨率的主要参数。
灰度分辨率指在灰度级别中可分辨的最小变化,由量化的等级决定,灰度级通常是2的整数次幂。
2.如果图像出现伪轮廓则说明灰度级数不够
3. 如何增强?提高对比度,增加清晰度
4. 图像的位置变换主要是用于目标识别中的目标配准

四、 MATLAB简单命令

1.读写图像文件

imread(‘peach.jpg’); %读取一幅后缀名为.jpg 的彩色图像
imwrite(f, ‘filename’) %说明:filename 是一个含有图像文件全名(和扩展名)的字符串,文件格式也可由第三个输入参量指定。如 filename 中不包括路径信息,则函数将文件保存到当前工作目录。
imshow 函数用于图像文件的显示
figure 或者 figure(窗口名称):用于设定图像显示窗口
imfinfo 函数显示图片的详细信息包括:文件名、文件最后修改日期、文件大小(以字节为单位)、文件格式、图像的长和宽(以像素为单位)、图像的颜色深度等
size()函数显示其尺寸大小
title 给图像加标题
subplot 把图形窗口分成多个矩形部分,每个部分可以分别用来进行显示。
subplot(m,n,p)分成 m*n 个小窗口,在第 p 个窗口中创建坐标轴为当前坐标轴,用于显示图形。

2.图像类型转换

rgb2gray把真彩图像转换为灰度图像
im2bw通过阈值化方法把图像转换为二值图像
举例:I=im2bw(j,level)
Level 表示灰度阈值,取值范围 0~1(即 0.n),表示阈值取自原图像灰度范围的 n%。注意:如果取默认值的话,level 可以省掉。
uint8()将矩阵中的 double 类型数据转换为 uint8 类型。因为imshow 函数只能显示 uint8 类型的数据,所以如果数据的类型是 double,那么将无法正常显示,所以要先进行转换。
double() 将数据转换成 double 类型,用于浮点计算。

3.图像的增强

灰度调整
imadjust 函数对其进行灰度或颜色调整,实现图像整体变亮、整体变暗
J = imadjust(I,[low_in,high_in],[low_out,high_out])
将图像 I 中的亮度值映射到 J 中的新值,即将 low_in 至 high_in 之间的值映射到 low_out 至high_out 之间的值。它们都可以使用空的矩阵[ ],默认值是[0 1]。
举例:i=imread(‘w01.tif’);
j=imadjust(i,[0.3,0.7],[ ]);将图像 i 转换为 j,使灰度值从 0.3~0.7 与缺省值 0~1 相匹配

4.运算函数

1、zeros 生成全 0 数组或矩阵
举例: B = zeros(m,n) or B = zeros([m n]) 返回一个 m*n 全 0 矩阵
2、取整函数:floor 最小取整函数、round 四舍五入取整函数、ceil 最大取整函数
举例:a = [-1.9, -0.2, 3.4, 5.6, 7.0];I=round(a);I =[ -2 0 3 6 7]
3、ones 函数:生成全 1 矩阵

imhist()
函数功能:用于数字图像的直方图计算或显示
调用格式:imhist(I,n):计算和显示图像 I 的直方图,n 为指定的灰度级数目,默认为 256。如果 I 是二值图像,那么 n 仅有两个值。
示例:i=imread(‘w01.tif’);imhist(i); //注意:直方图的显示不需要 imshow 函数,imhist 函数包含了计算和显示双重功能。
[counts, x] = imhist(…)返回直方图数据向量 counts,相应的色彩值向量 x。

histeq()
函数功能:用于数字图像的直方图均衡化
调用格式:J = histeq(I, n) 均衡化后的级数 n,缺省值为 64。如果级数为缺省的 64,则可以不用填写。
示例:i=imread(‘w01.tif’); j=histeq(i);
//注意:histeq 函数只负责直方图的均衡化,不能用于显示直方图以及图像,显示图像需要用imshow 函数,显示直方图需要 imhist 函数。

imresize(I,x)
函数功能:该函数用于对图像做缩放处理。
调用格式
B = imresize(A, m):返回的图像 B 的长宽是图像 A 的长宽的 m 倍,即缩放图像。 m 大于 1,则放大图像; m 小于 1,缩小图像。
B = imresize(A, [numrows,numcols]):numrows 和 numcols 分别指定目标图像的高度和宽度。显而易见,由于这种格式允许图像缩放后长宽比例和源图像长宽比例不相同,因此所产生的图像有可能发生畸变。

imrotate()
函数功能:对图像进行旋转操作。
调用格式
B = imrotate(A, angle)
B = imrotate(A, angle, method)
B = imrotate(A, angle, method, bbox)
调用格式说明
将图像 A绕图像的中心点旋转 angle 度,正数表示逆时针旋转,负数表示顺时针旋转。返回旋转后的图像矩阵。使用 method 参数可以改变插值算法,method 参数可以为下面这三个值:
‘nearest’:最邻近线性插值(Nearest-neighbor interpolation)
‘bilinear’: 双线性插值(Bilinear interpolation)
‘bicubic’: 双三次插值(或叫做双立方插值)(Bicubic interpolation)
//注意:method 调用的时候,需要将方法的单引号一并写上去。
bbox 参数用于指定输出图像属性:
‘crop’:通过对旋转后的图像 B 进行裁剪,保持旋转后输出图像 B 的尺寸和输入图像 A 的尺寸一样。
‘loose’:使输出图像足够大,以保证原图像旋转后超出图像尺寸范围的像素值没有丢失。一般这种格式产生的图像的尺寸都要大于原图像的尺寸。

flipdim()
函数功能:图像镜像,包括水平镜像、垂直镜像
语法格式:
B=flipdim(A,dim)
A 表示一个图像(矩阵),dim 指定翻转方式。
dim 为 1,表示每一列进行逆序排列,即垂直镜像;
dim 为 2,表示每一行进行逆序排列,即水平镜像;
//注意:低版本的 matlab 还可以用 mirror 函数实现图像镜像,但是高版本的已经不支持 mirror 函数了。mirror 函数的用法和 flipdim()函数的用法一样。
//注意:和 imrotate 函数旋转效果不一样。

imnoise()
函数功能:表示添加噪声污染一幅图像,叫做噪声污染图像函数
调用格式
g=imnoise(f, ‘gaussian’, m, var) 将均值 m、方差为 var 的高斯噪声加到图像 f 上,默认值是均值 m 为0,方差 var 为 0.01 的噪声。取默认值时,m 和 var 的值可以不填写。
g=imnoise(f,‘salt & pepper’, d) 用椒盐噪声污染图像 f,其中 d 是噪声密度(即包括噪声值的图像区域的百分比)。默认的噪声密度为 0.05。取默认值时,d 的值可以不填写。

medfilt2()
函数功能:二维中值滤波
%特别说明:medfilt2()函数只能针对二维图像进行滤波,无法直接对彩色图像进行滤波;故,如果需要对彩色图像进行滤波,需要将彩色图像分成 R、G、B 三个分量分别进行处理,然后再合成。
//注意:合成可以利用拆分三通道的反过程,也可以利用 cat 函数。
调用格式
B = medfilt2(A) %%A 是待去噪图像
B = medfilt2(A, [m n]) [m n]表示邻域块的大小,默认值为[3 3]。

cat()
函数功能:构造多维数组(矩阵)
调用格式
C = cat(dim,A1,A2,A3)
dim=3,表示构造三维矩阵,将 A1、A2、A3 构造成三维矩阵。
C = cat(dim,A,B)
dim 为 1 时,将矩阵上下拼接:[A;B],dim 为 2 时,将矩阵左右拼接。

imfilter()
函数功能:对任意类型数组或多维图像进行滤波、去噪
调用格式
B = imfilter(A, h) 其中 h 是滤波器,需要利用 fspecial()函数生成

fspecial()
函数功能:建立预定义的滤波算子,即生成滤波器。
%特别说明:
1、 fspecial 不能生成中值滤波算子,中值滤波必须利用 medfilt2()函数完成
2、 fspecial 不能单独使用,其必须和 imfilter()函数一起使用,才能完成滤波。
调用格式
h = fspecial(type)
h = fspecial(type, para) 其中 type 指定的滤波算子的类型,para 为指定的滤波算子相应的参数,如果取默值,可以不写,type 取值如下:
‘average’:均值滤波,para 参数为 hsize 代表模板尺寸,默认值为[3,3],
‘gaussian’:高斯低通滤波,有两个参数,hsize 表示模板尺寸,默认值为[3 3],sigma 为滤波器的标准差,单位为像素,默认值为 0.5.
‘laplacian’: 为拉普拉斯算子,参数 alpha 用于控制算子形状,取值范围为[0,1],默认值为 0.2
‘prewitt’: prewitt 滤波算子,用于边缘增强,大小为[3 3],无参数
‘sobel’: sobel 滤波算子,用于边缘提取,无参数
‘log’:为拉普拉斯高斯算子,有两个参数,hsize 表示模板尺寸,默认值为[3 3],sigma 为滤波器的标准差,单位为像素,默认值为 0.5.
示例:h = fspecial(‘log’, hsize, sigma)

edge()
函数功能:图像边缘检测函数
调用格式
Image=edge(I, method),其中,image 是边缘检测后的图像,I 是待处理图像,method 是处理方法,
其取值为:
‘sobel’: sobel 算子
‘roberts’:roberts 算子
‘log’: Laplacian-Gaussian 算子
‘prewitt’:prewitt 算子
例子:
BW = edge(I, ‘sobel’) 自动选择阈值用 Sobel 算子进行边缘检测。
BW = edge(I, ‘sobel’, thresh) 根据所指定的敏感度阈值 thresh,用 Sobel 算子进行边缘检测,它忽略了
所有小于阈值的边缘,当 thresh 为空时,自动选择阈值。
BW = edge(I, ‘sobel’, thresh, direction) 根据所指定的敏感度阈值 thresh,在所指定的方向 direction 上,
用 Sobel 算子进行边缘检测。Direction 可取的字符串值为 horizontal(水平方向)、vertical(垂直方向)
或 both(两个方向)。

strel()
函数功能:创建形态学结构元素。
调用格式:
SE= strel(shape, parameters),其中 shape 是结构元素的形状,parameters 是参数。
常用 shape 形状:
SE = strel(‘square’, 3) 创建 3×3 的正方形结构元素
SE = strel (‘diamond’, R) 创建一个指定大小 R 平面钻石形状的结构化元素。R 是从结构化元素原点到其点的距离,必须为非负整数。
SE = strel (‘disk’, R, N) 创建一个指定半径 R 的平面圆盘形的结构元素。这里 R 必须是非负整数. N须是 0, 4, 6, 8.当 N 大于 0 时,圆盘形结构元素由一组 N(或 N+2)个周期线结构元素来近似。当 N 等于0 时,不使用近似,即结构元素的所有像素是由到中心像素距离小于等于 R 的像素组成。N 可以被忽略,此时缺省值是 4。注: 形态学操作在 N>0 情况下要快于 N=0 的情形。

imerode()
函数功能:腐蚀图像
调用格式:
Image = imerode(I, SE) ,其中,Image 是处理后图像,I 是待处理图像,SE 是结构元素。

imdilate()
函数功能:膨胀图像
调用格式:
Image = imdilate(I, SE) ,其中,Image 是处理后图像,I 是待处理图像,SE 是结构元素。

imopen()
函数功能:图像开运算
调用格式:
Image = imopen(I, SE) ,其中,Image 是处理后图像,I 是待处理图像,SE 是结构元素。

imclose()
函数功能:图像闭运算
调用格式:
Image = imclose(I, SE) ,其中,Image 是处理后图像,I 是待处理图像,SE 是结构元素

rgb2hsv(I)
函数功能:将 RGB 彩色图像转换成 HSV(HSI)彩色空间。
调用格式
Image=rgb2hsv(I),其中,image 是转换后的图像,I 是待处理图像

histeq(I)
函数功能:直方图均衡化
调用格式
Image=histeq(I),其中,image 是转换后的图像,I 是待处理图像

fft2
函数功能:用于数字图像的二维傅立叶变换。
调用格式:
i=imread(‘image’);
j=fft2(i); 其中 i 是待处理图像,j 是转换后频谱。
注意:
1) 由于 MATLAB 无法显示复数图像,因此变换后的结果还需进行求模运算,即调用 abs 函
数。例如,abs(j), j 是傅里叶变换频谱.
2) 之后常常还进行对数变换,即调用 log 函数,以减缓傅里叶谱的快速衰减,更好地显示高频
信息。例如,log(1+abs(f)),中 abs 的结果有可能是 0,log0 的结果就是无穷大了,所以 abs
要加 1,这样就可以避免这种情况。

ifft2
函数功能:用于数字图像的二维傅立叶反变换
调用格式:
i=imread(‘image’);
j=fft2(i);
k=ifft2(j);
单狭缝图像 幅度谱(频谱坐标原点在左上角)
幅度谱(频谱坐标原点在屏幕中央) 以对数方式显示频谱

fftshift
函数功能:用于将变换后图像频谱中心从矩阵的原点移动到矩阵的中心
调用格式:
B=fftshift(i)

imrotate
函数功能:旋转图像
调用格式:
F=imrotate(f, 90); 对图像 f 旋转 90°

circshift
函数功能:对图像矩阵中的数据进行移位操作
调用格式:
F=circshift(f, [a,b]); 对图像 f 向下移动 a 列,向右移动 b 列

猜你喜欢

转载自blog.csdn.net/qq_46304554/article/details/128647481
今日推荐