空间域图像处理主要分为灰度变换和空间滤波两类。灰度变换在像素上操作,主要以改变对比度和阈值处理为目的。空间滤波涉及改善性能的操作,如对每一个像素的领域处理来平滑或锐化图像。本章的基本处理模型个g(x,y)=T[f(x,y)],f 是输入图像,g 是处理后的图像,T 是点(x,y)的邻域上定义的关于f 的一种算子。灰度变换
1、图像反转
2、对数变换
3、幂律(伽马)变换
4、分段线性变换函数
Imadjust 灰度图像进行亮度变换的基本IPT 工具,语法
g=imadjust(f,[low_inhigh_in],[low_outhigh_out],gamma)参数说明:
输入图像应为uint8,uint16,double 类图像,输出图像与输入图像有相同的类。除图像f 外,函数的所有输入输出均指定在0和1之间,而不论图像f 的类。
[low_inhigh_in]或[low_out
到默认值[01].
具体应用见IP48的例子
Intrans 是负片,对数,伽马,对比度拉伸的集成函数。
5、直方图均衡(重点)库函数程序IP59.m high_out]使用空矩阵([])会得
空间滤波
(一)平滑空间滤波器
平滑滤波器用于模糊处理和降低噪声,因此常用于预处理的任务中,常称为均值滤波器。
1、平滑线性滤波器
2、统计排序(非线性)滤波器
库函数ordfilt2(f,order,domain)
(i )最小值
(ii )最大值
(iii )中值
3、图像处理工具箱的介绍
Fspecial 用来生成滤波掩模的W 的函数见程序test_fspecial.mclear all ;
close all ;
clc;
w_average=fspecial('average' ,[33]);
w_disk=fspecial('disk' ,4); %矩形平均滤波器%圆形平均滤波器w_gaussian=fspecial('gaussian' ,[33],0.5);%高斯滤波器%8-23行代码是库函数fspecial 中生成高斯滤波掩模的具体代码p2=[33];
p3=0.5;
siz =(p2-1)/2;
std =p3; %标准差
[x,y]=meshgrid(-siz(2):siz(2),-siz(1):siz(1));
arg =-(x.*x+y.*y)/(2*std*std);
h =exp(arg);%在此之前都是严格按照p93页的公式计算的
%下面的代码将上述生成的作h/sum(h(:))
h(h
sumh =sum(h(:));
if sumh ~=0,
h =h/sumh;
end ;
w_laplacian=fspecial('laplacian' ,0.5);
拉斯滤波器
w_log=fspecial('log' ,[55],0.5);%大小为5*5,标准差%大小为3*3的拉普为0.5的高斯——拉普拉斯滤波器
%%27-43行代码是库函数fspecial 中生成高斯——拉普拉斯滤波掩模的具体代码. 参照P460的公式
%first calculate Gaussian
p2=[55];
p3=0.5;
siz =(p2-1)/2;
std2=p3^2;
[x,y]=meshgrid(-siz(2):siz(2),-siz(1):siz(1));
arg =-(x.*x+y.*y)/(2*std2);
h =exp(arg);
h(h
sumh =sum(h(:));
if sumh ~=0,
h =h/sumh;
end ;
%now calculate Laplacian
h1=h.*(x.*x+y.*y-2*std2)/(std2^2);
h =h1-sum(h1(:))/prod(p2);%make the filter sum to zero ,sum(h)->0;
(二) 锐化空间滤波器
1、关于一阶二阶微分的分析(P98)
2、二阶微分图像锐化——拉普拉斯算子
close all ;
clear all ;
clc;
f=imread('Fig0338(a)(blurry_moon).tif');
figure,imshow(f);
原图
w=fspecial('laplacian' ,0);
g1=imfilter(f,w,'replicate' );
figure,imshow(g1,[]);
结果分析:上图的所有像素值都为正,。由于滤波器的中心为负数,所以我们希望得到带负值的拉普拉斯图像。上面的代码中,输入计算的图像为uint8类,使用imfilter 滤波后的输出图像将会转化为与输入
图像相同的类,所有负值被剪掉为0. 所以可以再滤波前将输入图像转化为double 类。代码如下
f=im2double(f);
w=fspecial('laplacian' ,0);
g2=imfilter(f,w,'replicate' );
figure,imshow(g2,[]);
g=f-g2;%相减恢复失去的色调
figure,imshow(g);
空间域图像处理主要分为灰度变换和空间滤波两类。灰度变换在像素上操作,主要以改变对比度和阈值处理为目的。空间滤波涉及改善性能的操作,如对每一个像素的领域处理来平滑或锐化图像。本章的基本处理模型个g(x,y)=T[f(x,y)],f 是输入图像,g 是处理后的图像,T 是点(x,y)的邻域上定义的关于f 的一种算子。灰度变换
1、图像反转
2、对数变换
3、幂律(伽马)变换
4、分段线性变换函数
Imadjust 灰度图像进行亮度变换的基本IPT 工具,语法
g=imadjust(f,[low_inhigh_in],[low_outhigh_out],gamma)参数说明:
输入图像应为uint8,uint16,double 类图像,输出图像与输入图像有相同的类。除图像f 外,函数的所有输入输出均指定在0和1之间,而不论图像f 的类。
[low_inhigh_in]或[low_out
到默认值[01].
具体应用见IP48的例子
Intrans 是负片,对数,伽马,对比度拉伸的集成函数。
5、直方图均衡(重点)库函数程序IP59.m high_out]使用空矩阵([])会得
空间滤波
(一)平滑空间滤波器
平滑滤波器用于模糊处理和降低噪声,因此常用于预处理的任务中,常称为均值滤波器。
1、平滑线性滤波器
2、统计排序(非线性)滤波器
库函数ordfilt2(f,order,domain)
(i )最小值
(ii )最大值
(iii )中值
3、图像处理工具箱的介绍
Fspecial 用来生成滤波掩模的W 的函数见程序test_fspecial.mclear all ;
close all ;
clc;
w_average=fspecial('average' ,[33]);
w_disk=fspecial('disk' ,4); %矩形平均滤波器%圆形平均滤波器w_gaussian=fspecial('gaussian' ,[33],0.5);%高斯滤波器%8-23行代码是库函数fspecial 中生成高斯滤波掩模的具体代码p2=[33];
p3=0.5;
siz =(p2-1)/2;
std =p3; %标准差
[x,y]=meshgrid(-siz(2):siz(2),-siz(1):siz(1));
arg =-(x.*x+y.*y)/(2*std*std);
h =exp(arg);%在此之前都是严格按照p93页的公式计算的
%下面的代码将上述生成的作h/sum(h(:))
h(h
sumh =sum(h(:));
if sumh ~=0,
h =h/sumh;
end ;
w_laplacian=fspecial('laplacian' ,0.5);
拉斯滤波器
w_log=fspecial('log' ,[55],0.5);%大小为5*5,标准差%大小为3*3的拉普为0.5的高斯——拉普拉斯滤波器
%%27-43行代码是库函数fspecial 中生成高斯——拉普拉斯滤波掩模的具体代码. 参照P460的公式
%first calculate Gaussian
p2=[55];
p3=0.5;
siz =(p2-1)/2;
std2=p3^2;
[x,y]=meshgrid(-siz(2):siz(2),-siz(1):siz(1));
arg =-(x.*x+y.*y)/(2*std2);
h =exp(arg);
h(h
sumh =sum(h(:));
if sumh ~=0,
h =h/sumh;
end ;
%now calculate Laplacian
h1=h.*(x.*x+y.*y-2*std2)/(std2^2);
h =h1-sum(h1(:))/prod(p2);%make the filter sum to zero ,sum(h)->0;
(二) 锐化空间滤波器
1、关于一阶二阶微分的分析(P98)
2、二阶微分图像锐化——拉普拉斯算子
close all ;
clear all ;
clc;
f=imread('Fig0338(a)(blurry_moon).tif');
figure,imshow(f);
原图
w=fspecial('laplacian' ,0);
g1=imfilter(f,w,'replicate' );
figure,imshow(g1,[]);
结果分析:上图的所有像素值都为正,。由于滤波器的中心为负数,所以我们希望得到带负值的拉普拉斯图像。上面的代码中,输入计算的图像为uint8类,使用imfilter 滤波后的输出图像将会转化为与输入
图像相同的类,所有负值被剪掉为0. 所以可以再滤波前将输入图像转化为double 类。代码如下
f=im2double(f);
w=fspecial('laplacian' ,0);
g2=imfilter(f,w,'replicate' );
figure,imshow(g2,[]);
g=f-g2;%相减恢复失去的色调
figure,imshow(g);