《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波

第一、图像的亮度变换

一、图像直方图

灰度直方图主要应用与图像分割和图像灰度变换等处理过程中,它是图像灰度值得函数,统计一幅图像中各个灰度级出现的次数或概率。

b = imhist(f,b);  %灰度直方图  b是用于形成直方图的“收集箱”的个数

图像直方图归一化

f = imread('C:\Users\hepanhui\Desktop\red.gif');
figure;          %打开新窗口
[M,N] = size(f);           
[counts,x] = imhist(f,32); %计算有32个小区间的灰度直方图
counts = counts/M/N;       %计算归一化灰度直方图各区间的值
stem(x,counts);            %绘制归一化直方图

输入red图像:                                                               输出归一化直方图:                                                                                   

《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第1张图片   《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第2张图片
二、灰度的Gamma变换

y=(x+esp)^r   其中x,y取值范围为[0,1];esp为补偿系数;r为Gamma系数

Gamma变换是根据r的不同取值选择性的增强低灰度区域的对比度或者高灰度区域的对比度。

                   《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第3张图片


g = imadjust(f, [low_in high_in], [low_out high_out],gamma)

若high_out小于low_out,则输出亮度会反转。

f = imread('C:\Users\hepanhui\Desktop\lena.jpg');
figure;          %打开新窗口
imshow(imadjust(f,[],[],0.5));
title('Gamma 0.5');

输入lena图像:                                                                                            Gamma 0.5:

《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第4张图片  《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第5张图片

三、对数变换

t=clog(k+s)    c为尺度比例常数,s为源灰度值,k为常数

灰度的对数变换可以增强一幅图像中较暗部分的细节,可用来扩展被压缩的高值图像中的较暗像素。广泛应用于频谱图像的显示中。

注意:log函数会对输入图像矩阵s中的每个元素进行操作,但仅能处理double类型的矩阵。而从图像文件中得到的图像矩阵大多是uint8类型的,故需先进行im2double数据类型转换。

f = imread('C:\Users\hepanhui\Desktop\red.gif');
F = fft2(im2double(f));
F = fftshift(F);   %FFT频谱平移
F = abs(F);
T = log(F+1);      %频谱对数变换
figure;imshow(F,[]);title('未经变换的频谱');
figure;imshow(T,[]);title('对数变换后');

未经变换的频谱:                                     对数变换后:

《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第6张图片 《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第7张图片

四、直方图均衡化

g = histeq(f,nlev)  %f为输入图像 nlev是为输入图像指定的灰度级数

图像易受光照、视角、方位、噪声等的影响。使得同一类图像的不同变形体之间的差距有时大于该类图像与另一类图像之间的差距,影响图像识别、分类。图像归一化就是将图像转换到唯一的标准形式以抵抗各种变换,从而消除同类图像不同变形体之间的外观差异。也称为图像灰度归一化。

原图像:                                           直方图:

《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第8张图片        《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第9张图片


图像变亮后灰度均衡化

《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第10张图片        《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第11张图片

第二、图像的几何变换

一、图像平移

strel    %用来创建形态学结构元素
translate(SE,[y,x])   %原结构元素SE上y和x方向平移
imdilate   %形态学膨胀

l = imread('C:\Users\hepanhui\Desktop\lena.jpg');
se = translate(strel(l),[180 190]);
B = imdilate(l,se);
figure;subplot(1,2,1),subimage(l);
title('原图像');
subplot(1,2,2),subimage(B);title('平移后图像');

                                     《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第12张图片

二、图像镜像

B = imtransform(A,TFORM,method);
TFORM = makeform(transformtype,Matrix);   %空间变换结构

《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第13张图片

参数transformtype指定了变换的类型,常见的’affine’为二维或多维仿射变换,包括平移、旋转、比例、拉伸和错切等。Matrix为相应的仿射变换矩阵。

A = imread('C:\Users\hepanhui\Desktop\lena.jpg');
[height,width,dim] = size(A);
tform = maketform('affine',[-1 0 0;0 1 0;width 0 1]);
B = imtransform(A,tform,'nearest');
tform2 = maketform('affine',[1 0 0;0 -1 0;0 height 1]);
C = imtransform(A,tform2,'nearest');
figure;
subplot(1,3,1),imshow(A);title('原图像');
subplot(1,3,2),imshow(B);title('lena水平镜像');
subplot(1,3,3),imshow(C);title('lena垂直镜像');

《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第14张图片


三、图像转置

A = imread('C:\Users\hepanhui\Desktop\lena.jpg');
tform = maketform('affine',[0 1 0;1 0 0;0 0 1]);
B = imtransform(A,tform,'nearest');
figure;
subplot(1,2,1),imshow(A);title('原图像');
subplot(1,2,2),imshow(B);title('转置后图像');

《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第15张图片

四、图像中心旋转

B = imrotate(A,angle,method,'crop');%angle为旋转角度,正值为逆时针旋转,可选参数method为imrorate函数指定插值方法,crop选项会裁剪旋转后增大的图像,保持和原图像的大小

A = imread('C:\Users\hepanhui\Desktop\lena.jpg');
B = imrotate(A,30,'nearest','crop');
figure;
subplot(1,2,1),imshow(A);title('原图像');
subplot(1,2,2),imshow(B);title('逆时针中心旋转30度');

《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第16张图片


第三、空间域图像增强

一、噪声增加

h = imnoise(l,type,parameters);

A = imread('C:\Users\hepanhui\Desktop\lena.jpg');
B = imnoise(A,'gaussian',0,0.02);%imnoise(f,'gaussian',m,var)中的方差是实际方差除以灰度级的平方,所以如果标准差25,var=25^2/255^2=0.0096
C = imnoise(A,'salt & pepper',0.02);
figure;
subplot(1,3,1),imshow(A);title('原图像');
subplot(1,3,2),imshow(B);title('添加高斯白噪声');
subplot(1,3,3),imshow(C);title('添加椒盐白噪声');

《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第17张图片


二、空间域滤波

滤波过程就是在图像f(x,y)中逐点移动模板,使模板中心和点(x,y)重合,滤波器在每一点(x,y)的响应是根据模板的具体内容并通过预先定义的关系来计算的。

                       《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第18张图片

B = imfilter(f,w,option1,option2,……);

f 为要进行滤波操作的图像。

w为滤波操作使用的模板,为一个二维数组,可自己定义。

option1……是可选项,包括:

1、边界选项(’symmetric’’replicate’’circular’

2、尺寸选项(’same’’full’

3、模式选项(corrconv


三、滤波器的设计

h = fspecial(type,parameters)

parameters为可选项,是和所选定的滤波器类型type相关的配置参数,如尺寸和标准差等。

type 为滤波器的类型。其合法值如下:

                        《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第19张图片


四、中值滤波

中值滤波本质上是一种统计排序滤波器。中值不同于均值,是指排序队列中位于中间位置的元素的值。中值滤波并非线性滤波器。对于某些类型的随机噪声具有非常理想的降噪能力。典型的应用就是消除椒盐噪声。

h = medfilt2(l1,[m,n]);%m和n为中值滤波处理的模板大小,默认为3*3

五、图像锐化

图像锐化主要用于增强图像的灰度跳变部分,主要通过运算导数(梯度)或有限差分来实现。主要方法有:Robert交叉梯度,Sobel梯度,拉普拉斯算子,高提升滤波,高斯-拉普拉斯变换。

1、Robert交叉梯度

《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第20张图片

w1对接近正45°边缘有较强响应,w2对接近负45°边缘有较强响应。


I=imread('C:\Users\hepanhui\Desktop\lena.jpg');
I=double(I);%双精度化
w1=[-1 0;0 1];
w2=[0 -1;1 0];
G1=imfilter(I,w1,'corr','replicate');%正45°梯度
G2=imfilter(I,w2,'corr','replicate');%负45°梯度
G=abs(G1)+abs(G2);%计算Robert梯度
figure;
subplot(1,3,1),imshow(G,[]);title('Robert梯度');
subplot(1,3,2),imshow(abs(G1),[]);title('正45°梯度');
subplot(1,3,3),imshow(abs(G2),[]);title('负45°梯度');

《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第21张图片


2、Sobel交叉梯度

《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第22张图片

      对水平边缘有较大响应                                   对垂直边缘有较大响应

3、拉普拉斯算子

《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第23张图片

I=imread('C:\Users\hepanhui\Desktop\lena.jpg');
Id=double(I);%双精度化
h_1=fspecial('log',5,0.5);%大小为5,sigma=0.5的LOG算子
I_1=imfilter(Id,h_1,'corr','replicate');
h_2=fspecial('log',5,2);%大小为5,sigma=2的LOG算子
I_2=imfilter(Id,h_2,'corr','replicate');
figure;
subplot(1,2,1),imshow(uint8(abs(I_1)),[]);title('大小为5,sigma=0.5的LOG算子');
subplot(1,2,2),imshow(uint8(abs(I_2)),[]);title('大小为5,sigma=2的LOG算子');

《数字图像处理》冈萨雷斯学习笔记2:亮度变换与空间滤波_第24张图片

你可能感兴趣的:(图像处理,二维数组,应用,设计)