2016年春季学期研究生课程考核
(读书报告、研究报告)
考核科目:图像处理与分析
学生所在院(系):理学院数学系
学生所在学科:计算数学
学生姓名:
学号:
导师:
学生类别:
考核结果阅卷人
第 1 页(共 27 页)
1 实验目的
过MATLAB 软件编程熟悉MATLAB 图像处理的一般过程,例如图像的导入,对源图像进行手动加各种噪声(高斯噪声、瑞丽噪声、伽马噪声、指数噪声、椒盐噪声),通过热传导方程,热传导逆方程,PM 模型,TV 模型,LAPLACE 模型,P_LAPLACE 模型,P(x)_LAPLACE 模型,在对图像进行处理的过程中引入Signal_Noise_Ratio (信噪比SNR )、Peak_Signal_Noise_Ratio (峰值信噪比PSNR )、Mean_Absolute_Error (绝对均差MAE )对处理后的图像质量进行评判。
2实验原理
2.1热传导方程模型
Tikhonov 和Arsenin 提出如下模型:能量泛函
22min ()||||2u
E u u dx u f dx λ
Ω
Ω
=?+
-??
其对应的Euler_Lagrange 方程
0()
|0dE u v d εεε
=+= 由最速下降法求解可转化为如下的线性方程:
(),(,)(0,)(,0),0,(,)(0,)du
u u f x t T dt u x f x du
x t T d n
λ?=?--∈Ω???
=∈Ω
???=∈?Ω?? 注意:在用最速下降法推导方程的过程中左端项应该为:
0(),(,)(0,)(,0),0,(,)(0,)u u f x t T u x f x du
x t T d n
λ?
?=?--∈Ω??
=∈Ω
???=∈?Ω??
其中n
为外法向向量。然而,当时间t 足够长时,上述两种形式方程等价,即后
者是前者的稳定状态时的方程。
2.2热传导逆方程模型
(),(,)(0,)(,0),0,(,)(0,)du
u u f x t T dt u x f x du
x t T d n
λ?=-?--∈Ω???
=∈Ω
???=∈?Ω?? 在时间足够长时,上述方程等价于:
0(),(,)(0,)(,0),0,(,)(0,)u u f x t T u x f x du
x t T d n
λ?
?=-?--∈Ω??
=∈Ω
???=∈?Ω?? 2.3 PM 模型
((||))u
div C u u t
?=??? 其中
2
1
C(s)1(/)s K =
+
该方程的局部坐标表达式为:
2222||1()1||||(1())1()
NN TT u u K U U u u t K K
?-?=+???++ 其中,U NN 为沿着等灰度水平线的法向N 的方向导数,U TT 为沿着等灰度水平线的切向T 的方向导数。
2.4 TV 模型
Ridin ,Osher 和Fatemi 首次提出全变差(TV )模型
2min ()||||2u
E u u dx u f dx λ
Ω
Ω
=?+
-??
其对应的Euler_Lagrange 方程:
0()
|0dE u v d εεε
=+=
有最速下降法求解可转化为如下的线性方程:
2()(),(,)(0,)||(,0),0,(,)(0,)p u
u div u f x t T t u u x f x du
x t T dn
λ-???=--∈Ω??????
=∈Ω
???=∈?Ω??? 注意:在用最速下降法推到方程的过程中左端项应该为:
20()(),(,)(0,)||(,0),0,(,)(0,)p u div u f x t T u u x f x du
x t T dn
λ-??=--∈Ω?????
=∈Ω
???=∈?Ω??? 其中n
为外法向向量。
2.5 P_Laplace 模型
2min ()||||2p u
E u u dx u f dx λ
Ω
Ω
=?+
-??
其对应的Euler_Lagrange 方程:
0()
|0dE u v d εεε
=+=
有最速下降法求解可转化为如下的线性方程:
2||(,0),0,(,)(0,)p t u u x f x du
x t T dn -?????
=∈Ω
???=∈?Ω???
注意:在用最速下降法推到方程的过程中左端项应该为:
20()(),(,)(0,)||(,0),0,(,)(0,)p u div u f x t T u u x f x du
x t T dn λ-??=--∈Ω?????
=∈Ω
???=∈?Ω???
其中n
为外法向向量。然而,当时t 足够长时,上述两种形式方程等价,即
后者是前者的稳定状态时的方程。
2.6 P(x)_Laplace 模型
已知P_Laplace 模型
2()(),(,)(0,)||(,0),0,(,)(0,)p
u
u div u f x t T t u u x f x du
x t T dn
λ-???=--∈Ω??????
=∈Ω
???=∈?Ω??? 观察在P_Laplace 模型中的缺陷是:在计算过程中,参数P 的值是人们事先取定的,没有根据图像的实际特定进行更新,自然就联想到当P 的值随着处理图像位置的不同而进行更新,根据PM 模型和TV 模型的处理图像的特点,对于P_Laplace 模型知道如下事实:
① 当p 趋近于1时,该模型的效果近似于TV 模型的结果; ② 当p 趋近于2时,该模型的效果近似于PM 模型的结果。 所以修改P_Laplace 模型如下:
2()||(,0),0,(,)(0,)p x t u u x f x du
x t T dn -?????
=∈Ω
???=∈?Ω???
其中n
为外法线方向
2()0()(),(,)(0,)||(,0),0,(,)(0,)p x u div u f x t T u u x f x du
x t T dn λ-??
=--∈Ω?????
=∈Ω
???=∈?Ω???
2.7 信噪比、峰值信噪比、绝对均差原理
1.峰值信噪比P eak_Signal_to_Noise_Ratio(PSNR)
2.绝对均值Mean_Absolute_deviation_Error(MAE)
3.信噪比Signal_to_Noise_Ratio(SNR)
3程序代码
3.1 线性热方程
clear all;
close all; clc;
Io=imread('lena.bmp'); %读入图像 if(ndims(Io)==3) %维数
Io=rgb2gray(Io); %转成灰色 rgb 表示红绿蓝 end
Io=double(Io);
std_n=10; %高斯噪声标准差 var_n=std_n^2; %高斯噪声标准差 NI=randn(size(Io))*std_n;
In=Io+NI; %在原图像上加噪声
dt=0.25; %网比(一般对于n 维
%dt<= (1/2)^n这样子差分方程
%迭代才稳定)
N=100; %迭代次数
lambda=0; %lambda赋初值
[Max_J1 Max_J2 Min_J3 ALLPSNR ALLSNR ALLMAE J]=HeatEq(In,Io,dt,N,lambda); %方程迭代(热方程迭代)
[MaxPSNR, Index1]=max(ALLPSNR)
[MaxSNR, Index2]=max(ALLSNR)
[MinMAE, Index3]=min(ALLMAE)
Print(Io,In,J,Max_J1,Max_J2,Min_J3,ALLPSNR,ALLSNR,ALLMAE,N);
3.2 反热方程模型
clear all;
close all;
clc;
Io=imread('pepper.bmp'); %读入图像
if(ndims(Io)==3) %维数
Io=rgb2gray(Io); %转成灰色 rgb表示红绿蓝
end
Io=double(Io);
% % % %%% Add noise %%% % % %
std_n=10; %高斯噪声标准差
var_n=std_n^2; %高斯噪声标准差
NI=randn(size(Io))*std_n; %产生一个随机矩阵,矩阵上的数服从标准正太分布;
%使得服从标准差为给定的数的正态分布
In=Io+NI;
%%%%%%%% 反方程图像处理 %%%%%%%%%
dt=-0.0001; %dt必须特别的小
N=10; %迭代次数(需要逐渐增加)lambda=0.00;
tic
[Max_J1 Max_J2 Min_J3 ALLPSNR ALLSNR ALLMAE J]=HeatEq(In,Io,dt,N,lambda);%方程迭代(热方程迭代)
toc
[MaxPSNR, Index1]=max(ALLPSNR)
[MaxSNR, Index2]=max(ALLSNR)
[MinMAE, Index3]=min(ALLMAE)
Print(Io,In,J,Max_J1,Max_J2,Min_J3,ALLPSNR,ALLSNR,ALLMAE,N);
热方程模型算法实现:
function [Max_J1 Max_J2 Min_J3 ALLPSNR ALLSNR ALLMAE J]=HeatEq(In,Io,dt,N,lambda) J = In;
Max_J1 = J;
Max_J2 = J;
Min_J3 = J;
for i=1:N
i
DxxI=J([2:end end],:)+J([1 1:end-1],:)-2*J; %函数关于X方向求二阶偏导
DyyI=J(:,[2:end end])+J(:,[1 1:end-1])-2*J; %函数关于Y方向求二阶偏导
J=J+dt*(DxxI+DyyI)-lambda*(J-In); %迭代
NowPSNR = psnr(uint8(J),Io) %调用psnr函数ALLPSNR(i)=NowPSNR;
if i>1 && ALLPSNR(i-1) < ALLPSNR(i)
Max_J1 = J;
end
NowSNR = snr(uint8(J),Io)
ALLSNR(i) = NowSNR;
if i>1 && ALLSNR(i-1) < ALLSNR(i)
Max_J2 = J;
end
NowMAE = mae(uint8(J),Io)
ALLMAE(i) = NowMAE;
if i>1 && ALLMAE(i-1) > ALLMAE(i)
Min_J3 = J;
end
end
3.3 PM模型
clear all
close all
clc
Io=imread('panda.png');% 读入一幅图像
if(ndims(Io) == 3)
Io = rgb2gray(Io);
end;% 选择一个颜色矩阵,并且变成双浮点型的,这一步没有可能报错.
Io=double(Io);
std_n=20; % Gaussian noise standard deviation
var_n=std_n^2; % Gaussian noise standard deviation
NI = randn(size(Io))*std_n; % White Gaussian noise
In = Io + NI; % noisy input image
N =20;
dt=0.25;
K=13; %比例系数
tic
[Max_J1 Max_J2 Min_J3 ALLPSNR ALLSNR ALLMAE J] = PM(Io,In,N,dt,K);
toc
[MaxPSNR, Index1]=max(ALLPSNR)
[MaxSNR, Index2]=max(ALLSNR)
[MinMAE, Index3]=min(ALLMAE)
Print(Io,In,J,Max_J1,Max_J2,Min_J3,ALLPSNR,ALLSNR,ALLMAE,N);
PM模型算法实现
function [Max_J1 Max_J2 Min_J3 ALLPSNR ALLSNR ALLMAE J] = PM(Io,In,N,dt,K)
J = In;
Max_J1 = J;
Max_J2 = J;
Min_J3 = J;
for i=1:N;
i
cn = J([1 1:end-1],:) - J;
cs =J([2:end end],:) - J;
cw = J(:, [1 1:end-1]) -J;
ce =J(:, [2:end end]) - J;
div = 1./(1+(abs(cn)/K).^2) .* cn...
+ 1./(1+(abs(cs)/K).^2) .* cs...
+ 1./(1+(abs(cw)/K).^2) .* cw...
+ 1./(1+(abs(ce)/K).^2) .* ce;
J= J+ dt * div;
NowPSNR = psnr(uint8(J),Io) %调用psnr函数ALLPSNR(i)=NowPSNR;
if i>1 && ALLPSNR(i-1) < ALLPSNR(i)
Max_J1 = J;
end
NowSNR = snr(uint8(J),Io)
ALLSNR(i) = NowSNR;
if i>1 && ALLSNR(i-1) < ALLSNR(i)
Max_J2 = J;
end
NowMAE = mae(uint8(J),Io)
ALLMAE(i) = NowMAE;
if i>1 && ALLMAE(i-1) > ALLMAE(i)
Min_J3 = J;
end
end
3.4 TV模型
clear all
close all
clc
Io=imread('comic.jpg');% 读入一幅图像
% 选择一个颜色矩阵,并且变成双浮点型的,这一步没有可能报错.
if(ndims(Io) == 3)
Io = rgb2gray(Io);
end;
Io=double(Io);
% % % %%% Add noise %%% % % %
std_n=20; % 高斯噪声比准差
var_n=std_n^2; % 高斯噪声比准差
NI = randn(size(Io))*std_n; % 白色高斯噪声
In = Io + NI; % 把噪声加到原图上面
N =100; %迭代图像
dt=0.2; %网比(一般对于n维时,dt<= (1/2)^n 这样子差分方程迭代才稳定)
lambda=0.01; %给lambda赋初值
tic
[Max_J1 Max_J2 Min_J3 ALLPSNR ALLSNR ALLMAE J] =TV(In,Io,dt,N,lambda,var_n);%调用函数
toc
[MaxPSNR, Index1]=max(ALLPSNR)
[MaxSNR, Index2]=max(ALLSNR)
[MinMAE, Index3]=min(ALLMAE)
Print(Io,In,J,Max_J1,Max_J2,Min_J3,ALLPSNR,ALLSNR,ALLMAE,N);
TV模型算法实现
function [Max_J1 Max_J2 Min_J3 ALLPSNR ALLSNR ALLMAE
J]=TV(In,Io,dt,N,lambda,var_n)
J=In;
Max_J1 = J;
Max_J2 = J;
Min_J3 = J;
ep=0.0001;
for i=1:N
i
DfJx=J([2:end end],:)-J; %函数关于X的一阶偏导(向后差分)
DbJx=J-J([1 1:end-1],:); %函数关于X的一阶偏导(向前差分)
DfJy=J(:,[2:end end])-J; %函数关于Y的一阶偏导(向后差分)
DbJy=J-J(:,[1 1:end-1]); %函数关于Y的一阶偏导(向前差分)
TempDJx=(ep+DfJx.*DfJx+((sign(DfJy)+sign(DbJy)).*min(abs(DfJy),abs(DbJy))./2).^ 2).^(1/2);%求梯度的模
TempDJy=(ep+DfJy.*DfJy+((sign(DfJx)+sign(DbJx)).*min(abs(DfJx),abs(DbJx))./2).^ 2).^(1/2);
DivJx=DfJx./TempDJx;
DivJy=DfJy./TempDJy;
% DivJx=DfJx./TempDJx^p;
% DivJy=DfJy./TempDJy^p;
%求散度
Div=DivJx-DivJx([1 1:end-1],:)+DivJy-DivJy(:,[1 1:end-1]);
% update lambda (fidelity term)
lambda = max(mean(mean(Div.*(J-In)))./var_n,0)
J= J+ dt * Div -dt*lambda*(J-In); %产生迭代
NowPSNR = psnr(uint8(J),Io) %调用psnr函数
ALLPSNR(i)=NowPSNR;
if i>1 && ALLPSNR(i-1) < ALLPSNR(i)
Max_J1 = J;
end
NowSNR = snr(uint8(J),Io)
ALLSNR(i) = NowSNR;
if i>1 && ALLSNR(i-1) < ALLSNR(i)
Max_J2 = J;
end
NowMAE = mae(uint8(J),Io)
ALLMAE(i) = NowMAE;
if i>1 && ALLMAE(i-1) > ALLMAE(i)
Min_J3 = J;
end
end
3.5 P_Laplace模型
clear all
close all
clc
Io=imread('fruit.jpg');% 读入一幅图像
if(ndims(Io) == 3)
Io = rgb2gray(Io);
end;% 选择一个颜色矩阵,并且变成双浮点型的,这一步没有可能报错. Io=double(Io);
% % % %%% Add noise
std_n=25; % Gaussian noise standard deviation
var_n=std_n^2; % Gaussian noise standard deviation
NI = randn(size(Io))*std_n; % White Gaussian noise
In = Io + NI; % noisy input image
N =50;
dt=0.2;
lambda=0.01;
p_b=1.9;
p_a=2.00; %% p_b
p=p_a:(p_b-p_a)/(N-1):p_b;
tic
[Max_J1 Max_J2 Min_J3 ALLPSNR ALLSNR ALLMAE
J]=P_laplace(In,Io,dt,N,p,lambda,var_n);
toc
[MaxPSNR, Index1]=max(ALLPSNR)
[MaxSNR, Index2]=max(ALLSNR)
[MinMAE, Index3]=min(ALLMAE)
Print(Io,In,J,Max_J1,Max_J2,Min_J3,ALLPSNR,ALLSNR,ALLMAE,N);
P_Laplace模型算法实现:
function [Max_J1 Max_J2 Min_J3 ALLPSNR ALLSNR ALLMAE
J]=P_laplace(In,Io,dt,N,p,lambda,var_n)
J=In;
Max_J1 = J;
Max_J2 = J;
Min_J3 = J;
ep=0.0001;
for i=1:N
i
DfJx=J([2:end end],:)-J; %函数关于X的一阶偏导(向后差分)
DbJx=J-J([1 1:end-1],:); %函数关于X的一阶偏导(向前差分)
DfJy=J(:,[2:end end])-J; %函数关于Y的一阶偏导(向后差分)
DbJy=J-J(:,[1 1:end-1]); %函数关于Y的一阶偏导(向前差分)
TempDJx=(ep+DfJx.*DfJx+((sign(DfJy)+sign(DbJy)).*min(abs(DfJy),abs(DbJy))./2).^ 2).^(1/2);%求梯度的模
TempDJy=(ep+DfJy.*DfJy+((sign(DfJx)+sign(DbJx)).*min(abs(DfJx),abs(DbJx))./2).^ 2).^(1/2);
DivJx=DfJx./TempDJx.^(2-p(i));
DivJy=DfJy./TempDJy.^(2-p(i));
Div=DivJx-DivJx([1 1:end-1],:)+DivJy-DivJy(:,[1 1:end-1]); %求散度
lambda = max(mean(mean(Div.*(J-In)))./var_n,0) % update lambda (fidelity term)
J= J+ dt * Div -dt*lambda*(J-In); %产生迭代
NowPSNR = psnr(uint8(J),Io) %调用psnr函数ALLPSNR(i)=NowPSNR;
if i>1 && ALLPSNR(i-1) < ALLPSNR(i)
Max_J1 = J;
end
NowSNR = snr(uint8(J),Io)
ALLSNR(i) = NowSNR;
if i>1 && ALLSNR(i-1) < ALLSNR(i)
Max_J2 = J;
end
NowMAE = mae(uint8(J),Io)
ALLMAE(i) = NowMAE;
if i>1 && ALLMAE(i-1) > ALLMAE(i)
Min_J3 = J;
end
end
3.6P(x)_Laplace模型
clear all
close all
clc
Io=imread('bird.jpg');% 读入一幅图像
% 选择一个颜色矩阵,并且变成双浮点型的,这一步没有可能报错.
if(ndims(Io) == 3)
Io = rgb2gray(Io);
end;
Io=double(Io);
% % % %%% Add noise %%% % % %
std_n=20;
var_n=std_n^2; % 高斯噪声比准差
NI = randn(size(Io))*std_n; % 白色高斯噪声
In = Io + NI; % 把噪声加到原图上面
N =20; %迭代图像
dt=0.2; %网比(一般对于n维时,dt<= (1/2)^n 这样子差分方程迭代才稳定)
lambda=0.01; %给lambda赋初值
sigma = 2;
k = 0.22;
tic
[Max_J1 Max_J2 Min_J3 ALLPSNR ALLSNR ALLMAE
J]=Px_laplace(In,Io,dt,N,sigma,k,lambda,var_n); %调用函数
toc
[MaxPSNR, Index1]=max(ALLPSNR)
[MaxSNR, Index2]=max(ALLSNR)
[MinMAE, Index3]=min(ALLMAE)
Print(Io,In,J,Max_J1,Max_J2,Min_J3,ALLPSNR,ALLSNR,ALLMAE,N);
P(x)_Laplace模型算法实现:
function [Max_J1 Max_J2 Min_J3 ALLPSNR ALLSNR ALLMAE
J]=Px_laplace(In,Io,dt,N,sigma,k,lambda,var_n)
%得到图像大小
[Ny,Nx]=size(Io);
a=1;
a1=1;
b=1;
b1=1;
ep=0.00001;
J = In;
Max_J1 = J;
Max_J2 = J;
Min_J3 = J;
for i=1:N
i
DfJx=J([2:end end],:)-J;
DbJx=J-J([1 1:end-1],:);
DfJy=J(:,[2:end end])-J;
DbJy=J-J(:,[1 1:end-1]);
Ng=ceil(6*sigma)+1;
Gaussian = fspecial('gaussian',[Ng Ng],sigma);
Is=conv2(J,Gaussian,'same');
[IGx,IGy] = gradient(Is);
NormGrad =IGx.^2 + IGy.^2;
p=1;
px=1- 1./ (1 + k* NormGrad.^p);
TempDJx=(ep+DfJx.*DfJx+((sign(DfJy)+sign(DbJy)).*min(abs(DfJy),abs(DbJy))./2).^
2).^(1/2);
TempDJy=(ep+DfJy.*DfJy+((sign(DfJx)+sign(DbJx)).*min(abs(DfJx),abs(DbJx))./2).^
2).^(1/2);
DivJx=DfJx./TempDJx.^px;
DivJy=DfJy./TempDJy.^px;
Div=DivJx-DivJx([1 1:end-1],:)+DivJy-DivJy(:,[1 1:end-1]);
lambda = max(mean(mean(Div.*(J-In)))./var_n,0) % update lambda (fidelity term) J= J+ dt * Div -dt*lambda*(J-In);
NowPSNR = psnr(uint8(J),Io) %调用psnr函数
ALLPSNR(i)=NowPSNR;
if i>1 && ALLPSNR(i-1) < ALLPSNR(i)
Max_J1 = J;
end
NowSNR = snr(uint8(J),Io)
ALLSNR(i) = NowSNR;
if i>1 && ALLSNR(i-1) < ALLSNR(i)
Max_J2 = J;
end
NowMAE = mae(uint8(J),Io)
ALLMAE(i) = NowMAE;
if i>1 && ALLMAE(i-1) > ALLMAE(i)
Min_J3 = J;
end
end
附:(a)处理结果输出函数:
function Print(Io,In,J,Max_J1,Max_J2,Min_J3,ALLPSNR,ALLSNR,ALLMAE,N)
figure(1)
subplot(2,2,1)
imshow(Io,[]);
title('原图像')
subplot(2,2,2)
imshow(In,[]);
title('加噪声之后的图像')
subplot(2,2,3)
imshow(Io,[]);
title('原图像')
subplot(2,2,4)
imshow(J,[]);
title('处理结果')
figure(2)
subplot(2,2,1)
imshow(Max_J1,[]);
title('ALLPSNR值最大时图像')
subplot(2,2,2)
imshow(Max_J2,[]);
title('ALLSNR值最大时图像')
subplot(2,2,3)
imshow(Min_J3,[]);
title('ALLPMAE值最小时图像')
subplot(2,2,4)
imshow(J,[]);
title('处理结果')
x=1:N;
figure(3)
subplot(2,2,1)
plot(x,ALLPSNR)
title('ALLPSNR图像')
subplot(2,2,2)
plot(x,ALLSNR)
title('ALLSNR图像')
subplot(2,2,3)
plot(x,ALLMAE)
title('ALLPMAE图像')
[Ny,Nx]=size(J);
x=1:Nx;
level=fix(Ny/2);
y=J(level,:);
y1=Io(level,:);
y2=In(level,:);
figure(4)
subplot(2,1,1); plot(x,y,x,y1);
title('SmoothImage And OriginalImage')
subplot(2,1,2); plot(x,y,x,y1,x,y2);
title('NoiseImage And OriginalImage')
(b)图像处理评价指标代码
(1)峰值信噪比实现代码如下:
function s = snr(noisydata, original)
%将noisydata,original转化为double型
noisydata = double(noisydata);
original = double(original);
mean_original = mean(original(:));%求original的平均值
tmp = original - mean_original;
var_original = sum(sum(tmp.*tmp));%求original的方差
noise = noisydata - original;%求noise的平均值
mean_noise = mean(noise(:));
tmp = noise - mean_noise;
var_noise = sum(sum(tmp.*tmp));%求noise的的方差
ifvar_noise == 0
s = 999.99; %% INF. clean image
else
s = 10 * log10(var_original / var_noise);%compute signal-to-noise-ratio (SNR) of a noisy signal/image
end
return
(2) 绝对均差实现代码如下:
function E = mae(noisydata, original)
%将noisydata,original转化为double型
noisydata=double(noisydata);
original=double(original);
[m,n] = size(noisydata);
noise = abs(noisydata - original);
nostotal = sum(sum(noise));
E=nostotal/(m*n);%compute root-mean-square-error (RMSE) of a noisy signal/image
Return
(3) 峰值信噪比实现代码如下:
function s = psnr(noisydata, original)
%将noisydata,original转化为double型
noisydata=double(noisydata);
original=double(original);
[m,n] = size(noisydata);%获得noisydata矩阵的行数与列数
peak=255*255*m*n;%计算峰值
noise =noisydata - original;
nostotal = sum(sum(noise.*noise));
ifnostotal == 0
s = 999.99; %% INF. clean image
else
s = 10 * log10(peak./nostotal);%计算峰值性噪比
end
return
4 实验结果
图像处理实验报告 姓名:陈琼暖 班级:07计科一班 学号:20070810104
目录: 实验一:灰度图像处理 (3) 实验二:灰度图像增强 (5) 实验三:二值图像处理 (8) 实验四:图像变换 (13) 大实验:车牌检测 (15)
实验一:灰度图像处理题目:直方图与灰度均衡 基本要求: (1) BMP灰度图像读取、显示、保存; (2)编程实现得出灰度图像的直方图; (3)实现灰度均衡算法. 实验过程: 1、BMP灰度图像读取、显示、保存; ?图像的读写与显示操作:用imread( )读取图像。 ?图像显示于屏幕:imshow( ) 。 ?
2、编程实现得出灰度图像的直方图; 3、实现灰度均衡算法; ?直方图均衡化可用histeq( )函数实现。 ?imhist(I) 显示直方图。直方图中bin的数目有图像的类型决定。如果I是个灰度图像,imhist将 使用默认值256个bins。如果I是一个二值图像,imhist使用两bins。 实验总结: Matlab 语言是一种简洁,可读性较强的高效率编程软件,通过运用图像处理工具箱中的有关函数,就可以对原图像进行简单的处理。 通过比较灰度原图和经均衡化后的图形可见图像变得清晰,均衡化后的直方图形状比原直方图的形状更理想。
实验二:灰度图像增强 题目:图像平滑与锐化 基本要求: (1)使用邻域平均法实现平滑运算; (2)使用中值滤波实现平滑运算; (3)使用拉普拉斯算子实现锐化运算. 实验过程: 1、 使用邻域平均法实现平滑运算; 步骤:对图像添加噪声,对带噪声的图像数据进行平滑处理; ? 对图像添加噪声 J = imnoise(I,type,parameters)
数字图像处理实验报告 实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方 法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread, imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray() 将其 转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程和调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰
度直方图与原灰度直方图的区别。 2) 对B 进行直方图均衡化处理,试比较与源图的异同。 3) 对B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。 图1.1 分段线性变换函数 三、实验原理与算法分析 1. 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。 1) 图像反转 灰度级范围为[0, L-1]的图像反转可由下式获得 r L s --=1 2) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围, 如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换: s = c log(1 + r ),c 为常数,r ≥ 0 3) 幂次变换: 0,0,≥≥=γγc cr s 4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:
重庆交通大学 学生实验报告 实验课程名称数字图像处理 开课实验室数学实验室 学院理学院年级信息与计算科学专业 2 班学生姓名李伟凯学号631122020203 开课时间2014 至2015 学年第 1 学期
实验(一)图像处理基础 ?实验目的 学习Matlab软件的图像处理工具箱,掌握常用的一些图像处理命令;通过编程实现几种简单的图像增强算法,加强对图像增强的理解。 ?实验内容 题目A.打开Matlab软件帮助,学习了解Matlab中图像处理工具箱的基本功能;题目B.掌握以下常见图像处理函数的使用: imread( ) imageinfo( ) imwrite( ) imopen( ) imclose( ) imshow( ) impixel( ) imresize( ) imadjust( ) imnoise( ) imrotate( ) im2bw( ) rgb2gray( ) 题目C.编程实现对图像的线性灰度拉伸y = ax + b,函数形式为:imstrech(I, a, b); 题目D.编程实现对图像进行直方图均衡化处理,并将实验结果与Matab中imhist 命令结果比较。 三、实验结果 1).基本图像处理函数的使用: I=imread('rice.png'); se = strel('disk',1); I_opened = imopen(I,se); %对边缘进行平滑 subplot(1,2,1), imshow(I), title('原始图像') subplot(1,2,2), imshow(I_opened), title('平滑图像') 原始图像平滑图像
数字图像处理 实验报告 学号:04211734 姓名:付永钦 日期:2014/6/7 1.图像直方图统计 ①原理:灰度直方图是将数字图像的所有像素,按照灰度值的大小,统计其所出现的频度。 通常,灰度直方图的横坐标表示灰度值,纵坐标为半个像素个数,也可以采用某一灰度值的像素数占全图像素数的百分比作为纵坐标。 ②算法: clear all PS=imread('girl-grey1.jpg'); %读入JPG彩色图像文件figure(1);subplot(1,2,1);imshow(PS);title('原图像灰度图'); [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255 GP(k+1)=length(find(PS==k))/(m*n); %计算每级灰度出现的概率end figure(1);subplot(1,2,2);bar(0:255,GP,'g') %绘制直方图 axis([0 255 min(GP) max(GP)]); title('原图像直方图') xlabel('灰度值') ylabel('出现概率') ③处理结果:
原图像灰度图 100 200 0.005 0.010.0150.020.025 0.030.035 0.04原图像直方图 灰度值 出现概率 ④结果分析:由图可以看出,原图像的灰度直方图比较集中。 2. 图像的线性变换 ①原理:直方图均衡方法的基本原理是:对在图像中像素个数多的灰度值(即对画面起主 要作用的灰度值)进行展宽,而对像素个数少的灰度值(即对画面不起主要作用的灰度值)进行归并。从而达到清晰图像的目的。 ②算法: clear all %一,图像的预处理,读入彩色图像将其灰度化 PS=imread('girl-grey1.jpg'); figure(1);subplot(2,2,1);imshow(PS);title('原图像灰度图'); %二,绘制直方图 [m,n]=size(PS); %测量图像尺寸参数 GP=zeros(1,256); %预创建存放灰度出现概率的向量 for k=0:255
目录 实验一:数字图像的基本处理操作 (2) 1.1:实验目的 (2) 1.2:实验任务和要求 (2) 1.3:实验步骤和结果 (2) 1.4:结果分析 (6) 实验二:图像的灰度变换和直方图变换 (7) 2.1:实验目的 (7) 2.2:实验任务和要求 (7) 2.3:实验步骤和结果 (7) 2.4:结果分析 (11) 实验三:图像的平滑处理 (11) 3.1:实验目的 (11) 3.2:实验任务和要求 (11) 3.3:实验步骤和结果 (12) 3.4:结果分析 (15) 实验四:图像的锐化处理 (16) 4.1:实验目的 (16) 4.2:实验任务和要求 (16) 4.3:实验步骤和结果 (16) 4.4:结果分析 (18)
实验一:数字图像的基本处理操作 1.1:实验目的 1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用; 2、实现图像的读取、显示、代数运算和简单变换。 3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。 1.2:实验任务和要求 1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分 成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分 别显示,注上文字标题。 3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换, 显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。 4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里 叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的 对应关系。 1.3:实验步骤和结果 1.对实验任务1的实现代码如下: a=imread('d:\tp.jpg'); i=rgb2gray(a); I=im2bw(a,0.5); subplot(1,3,1);imshow(a);title('原图像'); subplot(1,3,2);imshow(i);title('灰度图像'); subplot(1,3,3);imshow(I);title('二值图像'); subplot(1,3,1);imshow(a);title('原图像'); 结果如图1.1 所示:
实验报告 实验课程名称:数字图像处理 班级:学号:姓名: 注:1、每个实验中各项成绩按照10分制评定,每个实验成绩为两项总和20分。 2、平均成绩取三个实验平均成绩。 2016年 4 月18日
实验一 图像的二维离散傅立叶变换 一、实验目的 掌握图像的二维离散傅立叶变换以及性质 二、实验要求 1) 建立输入图像,在64?64的黑色图像矩阵的中心建立16?16的白色矩形图像点阵, 形成图像文件。对输入图像进行二维傅立叶变换,将原始图像及变换图像(三维、中心化)都显示于屏幕上。 2) 调整输入图像中白色矩形的位置,再进行变换,将原始图像及变换图像(三维、中 心化)都显示于屏幕上,比较变换结果。 3) 调整输入图像中白色矩形的尺寸(40?40,4?4),再进行变换,将原始图像及变 换图像(三维、中心化)都显示于屏幕上,比较变换结果。 三、实验仪器设备及软件 HP D538、MATLAB 四、实验原理 傅里叶变换作为分析数字图像的有利工具,因其可分离性、平移性、周期性和共轭对称性可以定量地方分析数字化系统,并且变换后的图像使得时间域和频域间的联系能够方便直观地解决许多问题。实验通过MATLAB 实验该项技能。 设),(y x f 是在空间域上等间隔采样得到的M ×N 的二维离散信号,x 和y 是离散实变量,u 和v 为离散频率变量,则二维离散傅里叶变换对一般地定义为 ∑∑ -=-=+-= 101 )],( 2ex p[),(1 ),(M x N y N yu M xu j y x f MN v u F π,1,0=u …,M-1;y=0,1,…N-1 ∑∑-=-=+=101 )],( 2ex p[),(),(M x N y N uy M ux j v u F y x f π ,1,0=x …,M-1;y=0,1,…N-1 在图像处理中,有事为了讨论上的方便,取M=N ,这样二维离散傅里叶变换对就定义为 ,]) (2ex p[),(1 ),(101 ∑∑ -=-=+- = N x N y N yu xu j y x f N v u F π 1,0,=v u …,N-1 ,]) (2ex p[ ),(1 ),(101 ∑∑-=-=+= N u N v N vy ux j v u F N y x f π 1,0,=y x ,…,N-1 其中,]/)(2exp[N yv xu j +-π是正变换核,]/)(2exp[N vy ux j +π是反变换核。将二维离散傅里叶变换的频谱的平方定义为),(y x f 的功率谱,记为 ),(),(|),(|),(222v u I v u R v u F v u P +== 功率谱反映了二维离散信号的能量在空间频率域上的分布情况。 五、实验步骤、程序及结果: 1、实验步骤: (1)、编写程序建立输入图像; (2)、对上述图像进行二维傅立叶变换,观察其频谱 (3)、改变输入图像中白框的位置,在进行二维傅里叶变换,观察频谱;
《数字图像处理》 实验报告 学院: 专业: 班级: 姓名: 学号: 实验一 实验名称:图像增强 实验目的:1.熟悉图像在Matlab下的读入,输出及显示; 2.熟悉直方图均衡化; 3.熟悉图像的线性指数等; 4.熟悉图像的算术运算及几何变换. 实验仪器:计算机,Matlab软件 实验原理: 图像增强是为了使受到噪声等污染图像在视觉感知或某种准则下尽量的恢复到原始图像的水平之外,还需要有目的性地加强图像中的某些信息而抑制另一些信息,以便更好地利用图像。图像增强分频域处理和空间域处理,这里主要用空间域的方法进行增强。空间域的增强主要有:灰度变换和图像的空间滤波。 图像的直方图实际上就是图像的各像素点强度概率密度分布图,是一幅图像所有像素集合的最基本统计规律,均衡化是指在每个灰度级上都有相同的像素点过程。 实验内容如下: I=imread('E:\cs.jpg');%读取图像 subplot(2,2,1),imshow(I),title('源图像') J=rgb2gray(I)%灰度处理 subplot(2,2,2),imshow(J) %输出图像 title('灰度图像') %在原始图像中加标题 subplot(2,2,3),imhist(J) %输出原图直方图
title('原始图像直方图') I=imread('E:\cs.jpg');%读取图像 subplot(1,2,1),imshow(I); subplot(2,2,1),imshow(I),title('源图像') J=rgb2gray(I)%灰度处理 subplot(2,2,2),imshow(J),title('灰度变换后图像') J1=log(1+double(J)); subplot(2,2,3),imshow(J1,[]),title('对数变换后') 指数运算: I=imread('E:\dog.jpg'); f=double(I); g=(2^2*(f-1))-1 f=uint8(f); g=uint8(g); subplot(1,2,1);subimage(f),title('变换一') 00100200 源图像灰度变换后图像对数变换后
数字图像处理试验报告 实验二:数字图像的空间滤波和频域滤波 姓名:XX学号:2XXXXXXX 实验日期:2017 年4 月26 日1.实验目的 1. 掌握图像滤波的基本定义及目的。 2. 理解空间域滤波的基本原理及方法。 3. 掌握进行图像的空域滤波的方法。 4. 掌握傅立叶变换及逆变换的基本原理方法。 5. 理解频域滤波的基本原理及方法。 6. 掌握进行图像的频域滤波的方法。 2.实验内容与要求 1. 平滑空间滤波: 1) 读出一幅图像,给这幅图像分别加入椒盐噪声和高斯噪声后并与前一张图显示在同 一图像窗口中。 2) 对加入噪声图像选用不同的平滑(低通)模板做运算,对比不同模板所形成的效果, 要求在同一窗口中显示。 3) 使用函数 imfilter 时,分别采用不同的填充方法(或边界选项,如零填 充、’replicate’、’symmetric’、’circular’)进行低通滤波,显示处理后 的图像。 4) 运用for 循环,将加有椒盐噪声的图像进行10 次,20 次均值滤波,查看其特点, 显示均值处理后的图像(提示:利用fspecial 函数的’average’类型生成均值滤 波器)。 5) 对加入椒盐噪声的图像分别采用均值滤波法,和中值滤波法对有噪声的图像做处理, 要求在同一窗口中显示结果。 6) 自己设计平滑空间滤波器,并将其对噪声图像进行处理,显示处理后的图像。 2. 锐化空间滤波 1) 读出一幅图像,采用3×3 的拉普拉斯算子 w = [ 1, 1, 1; 1 – 8 1; 1, 1, 1] 对其进行滤波。 2) 编写函数w = genlaplacian(n),自动产生任一奇数尺寸n 的拉普拉斯算子,如5 ×5的拉普拉斯算子 w = [ 1 1 1 1 1 1 1 1 1 1 1 1 -24 1 1 1 1 1 1 1 1 1 1 1 1] 3) 分别采用5×5,9×9,15×15和25×25大小的拉普拉斯算子对blurry_moon.tif
摘要: 图像处理,用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。基本内容图像处理一般指数字图像处理。数字图像是指用数字摄像机、扫描仪等设备经过采样和数字化得到的一个大的二维数组,该数组的元素称为像素,其值为一整数,称为灰度值。图像处理技术的主要内容包括图像压缩,增强和复原,匹配、描述和识别3个部分。图像处理一般指数字图像处理。 数字图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。目前,图像处理演示系统应用领域广泛医学、军事、科研、商业等领域。因为数字图像处理技术易于实现非线性处理,处理程序和处理参数可变,故是一项通用性强,精度高,处理方法灵活,信息保存、传送可靠的图像处理技术。本图像处理演示系统以数字图像处理理论为基础,对某些常用功能进行界面化设计,便于初级用户的操作。 设计要求 可视化界面,采用多幅不同形式图像验证系统的正确性; 合理选择不同形式图像,反应各功能模块的效果及验证系统的正确性 对图像进行灰度级映射,对比分析变换前后的直方图变化; 1.课题目的与要求 目的: 基本功能:彩色图像转灰度图像 图像的几何空间变换:平移,旋转,剪切,缩放 图像的算术处理:加、减、乘 图像的灰度拉伸方法(包含参数设置); 直方图的统计和绘制;直方图均衡化和规定化; 要求: 1、熟悉图像点运算、代数运算、几何运算的基本定
义和常见方法; 2、掌握在MTLAB中对图像进行点运算、代数运算、几何运算的方法 3、掌握在MATLAB中进行插值的方法 4、运用MATLAB语言进行图像的插值缩放和插值旋转等 5、学会运用图像的灰度拉伸方法 6、学会运用图像的直方图设计和绘制;以及均衡化和规定化 7、进一步熟悉了解MATLAB语言的应用,将数字图像处理更好的应用于实际2.课题设计内容描述 1>彩色图像转化灰度图像: 大部分图像都是RGB格式。RGB是指红,绿,蓝三色。通常是每一色都是256个级。相当于过去摄影里提到了8级灰阶。 真彩色图像通常是就是指RGB。通常是三个8位,合起来是24位。不过每一个颜色并不一定是8位。比如有些显卡可以显示16位,或者是32位。所以就有16位真彩和32位真彩。 在一些特殊环境下需要将真彩色转换成灰度图像。 1单独处理每一个颜色分量。 2.处理图像的“灰度“,有时候又称为“高度”。边缘加强,平滑,去噪,加 锐度等。 3.当用黑白打印机打印照片时,通常也需要将彩色转成灰白,处理后再打印 4.摄影里,通过黑白照片体现“型体”与“线条”,“光线”。 2>图像的几何空间变化: 图像平移是将图像进行上下左右的等比例变化,不改变图像的特征,只改变位置。 图像比例缩放是指将给定的图像在x轴方向按比例缩放fx倍,在y轴按比例缩放fy倍,从而获得一幅新的图像。如果fx=fy,即在x轴方向和y轴方向缩放的比率相同,称这样的比例缩放为图像的全比例缩放。如果fx≠fy,图像的比例缩放会改变原始图象的像素间的相对位置,产生几何畸变。 旋转。一般图像的旋转是以图像的中心为原点,旋转一定的角度,也就是将图像上的所有像素都旋转一个相同的角度。旋转后图像的的大小一般会改变,即可以把转出显示区域的图像截去,或者扩大图像范围来显示所有的图像。图像的旋转变换也可以用矩阵变换来表示。
桂林电子科技大学 实验报告 一、实验目的 1、掌握基本的图像处理方法,包括读取、写入、显示、剪切、运算以及快操作 等等。 2、掌握常用的图像变换方法,分析变换结果。 二、实验内容 编写程序,在Matlab下调试运行,并注意观察分析结果。 1、使用imread函数分别读入图象cameraman.tif 、canoe.tif,并使用subplot 和imshow函数进行显示。再使用imcrop对第一幅图片进行剪切,并保存成文件。 2、申明向量X和矩阵A,使用二维傅立叶变换和fftshift函数进行处理,观察向量和矩阵结果。 3、创建一个1000*1000的全0图像,其中选择某矩形区域设置其象素为1(350:649,475:524),对该二值图逆时针旋转45°角,比较旋转前后的图像和傅里叶变换频谱。 三、实验设备、环境 计算机 四、实验原理 1、图像平滑算法 (1) 简单平均法:
设某像素的灰度值为,迭加噪声后,一幅含噪声的图像可表示为 现取以为中心的邻域S ——NN 方形窗口,在S 域内进行局部平均,得 式中,N 的平方为窗口内像素总数。令 ,则 式中,加权函数 (2)中值滤波: 中值滤波是一种非线性的信号处理方法。中值滤波器在1971 年由J.w.Jukey 首先提出并应用在一维信号处理技术(时间序列分析)中,后来被二维图象信号处理技术所引用。中值滤波在一定的条件下可以克服线性滤波器如最小均方滤波、均直滤波等带来的图象细节模糊,而且对滤除脉冲干扰及图象扫描噪声最为有效。由于在实际运算过程中不需要图象的统计特征,因此这也带来不少方便。但是对于一些细节多,特别是点、线、尖顶细节多的图象不宜采用中值滤波。中值滤波一般采用一个含有奇数个点的滑动窗口,将窗口中各点灰度值的中值来替代值定点(一般是窗口的中心点)的灰度值。对于奇数个元素,中值是指按大小排序后,中间的数值;对于偶数个元素,中值是指排序后中间两个元素灰度值的平均值。 一般选用3*3或5*5窗口,形状可分为方形或十字形,如下图所示。 (a) 方形 (b) 十字形 图2-1 二维中值滤波窗口形状 二维中值滤波可表示为
中南大学 数字图像处理实验报告实验三数学形态学及其应用
实验三 数学形态学及其应用 一.实验目的 1.了解二值形态学的基本运算 2.掌握基本形态学运算的实现 3.了解形态操作的应用 二.实验基本原理 腐蚀和膨胀是数学形态学最基本的变换,数学形态学的应用几乎覆盖了图像处理的所有领域,给出利用数学形态学对二值图像处理的一些运算。 膨胀就是把连接成分的边界扩大一层的处理。而收缩则是把连接成分的边界点去掉从而缩小一层的处理。 二值形态学 I(x,y), T(i,j)为 0/1图像Θ 腐蚀:[]),(&),(),)((),(0,j i T j y i x I AND y x T I y x E m j i ++=Θ== 膨胀:[]),(&),(),)((),(0 ,j i T j y i x I OR y x T I y x D m j i ++=⊕== 灰度形态学T(i,j)可取10以外的值 腐蚀: []),(),(min ),)((),(1 ,0j i T j y i x I y x T I y x E m j i -++=Θ=-≤≤ 膨胀: []),(),(max ),)((),(1 ,0j i T j y i x I y x T I y x D m j i +++=⊕=-≤≤ 1.腐蚀Erosion: {}x B x B X x ?=Θ: 1B 删两边 2B 删右上 图5-1 剥去一层(皮) 2.膨胀Dilation: {}X B x B X x ↑⊕:= 1B 补两边 2B 补左下 图5-2 添上一层(漆) 3.开运算open :
B B X ⊕Θ=)(X B 4.闭close :∨ Θ⊕=B B X X B )( 5.HMT(Hit-Miss Transform:击中——击不中变换) 条件严格的模板匹配 ),(21T T T =模板由两部分组成。1T :物体,2T :背景。 {} C x x i X T X T X T X ??=?21, 图5-3 击不中变换示意图 性质: (1)φ=2T 时,1T X T X Θ=? (2))()()(21T X T X T X C Θ?Θ=? C T X T X )()(21Θ?Θ= )/()(21T X T X ΘΘ= 6.细化/粗化 (1)细化(Thin ) C T X X T X XoT )(/??=?= 去掉满足匹配条件的点。 图5-4 细化示意图 系统细化{}n B oB XoB T Xo ))(((21=, i B 是1-i B 旋转的结果(90?,180?,270?)共8种情况 适于细化的结构元素 1111000d d I = d d d L 10110 0= (2)粗化(Thick ) )(T X X T X ??=? 用(){}0,01=T (){}0,12=T 时,X X X T X =?=? X 21 1 1 2 3 T ? XoT X ? X X ?T X ΘT T ⊕
第四次实验报告 实验课程:图像图像处理实验人:尹丽(200921020047) 实验时间:2012年4月19日实验地点:5-602 指导老师:夏倩老师成绩: 一、实验内容: ⑴图像的锐化:使用Sobel,Laplacian 算子分别对图像进行运算,观察并体会运算结果。 ⑵综合练习:对需要进行处理的图像分析,正确运用所学的知识,采用正确的步骤,对图像进行各类处理,以得到令人满意的图像效果。 二、实验目的: 学会用Matlab中的下列函数对输入图像按实验内容进行运算;感受各种不同的图像处理方法对最终图像效果的影响。(imfilter;fspecial;) 三、实验步骤:
1、仔细阅读Matlab 帮助文件中有关以上函数的使用说明,能充分理解其使用方法并能运用它们完成实验内容。 2、将Fig3.41(c).jpg 图像文件读入Matlab ,使用filter2函数分别采用不同的算子对其作锐化运算,显示运算前后的图像。 3、算子的输入可采用直接输入法。其中Sobel ,Laplacian ,也可用fspecial 函数产生。 4、各类算子如下: ???? ??????---121000121 ??????????-111181111 5、将Fig3.46(a).jpg 图像文件读入Matlab ,按照以下步骤对其进行处理: (1)用带对角线的Laplacian 对其处理,以增强边缘。 (2)用imadd 函数叠加原始图像。可以看出噪声增强了,应想法降低。 (3)获取Sobel 模板并用filter2对其进行5×5邻域平均,以减少噪声。 5(1)实验代码如图: 对角线Laplacian Sobel 垂直梯度
计算机图像处理实验报告 哈哈哈哈哈哈实验台31 1.应用MATLAB语言编写显示一幅灰度图像、二值图像、索引图像及 彩色图像的程序,并进行相互之间的转换 1)彩色图像转换为灰度图像、索引图像、二值图像 A=imread('F:\colorful.jpg'); subplot(221);imshow(A);title('彩色图像'); I1=rgb2gray(A); subplot(222);imshow(I1);title('灰度图像'); [X1,map]=rgb2ind(A,256); subplot(223);imshow(X1);title('索引图像'); BW=im2bw(A); subplot(224);imshow(BW);title('二值图像'); 彩色图像灰度图像 索引图像二值图像
2)灰度图像转换为索引图像、二值图像 clear A=imread('F:\colorful.jpg'); B=rgb2gray(A); subplot(131);imshow(B);title('灰度图像'); [X2,map]=gray2ind(B,128); subplot(132);imshow(X2);title('索引图像'); BW2=im2bw(B); subplot(133);imshow(BW2);title('二值图像'); 灰度图像索引图像二值图像 3)索引图像转为灰度图像、二值图像、彩色图像 clear A=imread('F:\colorful.jpg'); [X,map]=rgb2ind(A,256); subplot(221);imshow(X);title('索引图像'); I3=ind2gray(X,map); subplot(222);imshow(I3);title('灰度图像'); BW3=im2bw(X,map,0.5); subplot(223);imshow(BW3);title('二值图像'); RGB=ind2rgb(X,map); subplot(24);imshow(RGB);title('还原彩色图像'); 索引图像灰度图像 二值图像还原彩色图像
光电图像处理实验报告 精仪学院测控四班王经纬 3010202114 实验1 离散图像的傅立叶变换 。 1. 实验内容及步骤: (1)利用Matlab图像处理软件进行离散图像傅立叶变换, 如给出一幅图像(w01.tif),其傅立叶变换程序如下: >>i=imread('D:\w01.tif'); >>figure(1); >>imshow(i); >>colorbar; >>j=fft2(i); >>k=fftshift(j); >>figure(2); >>l=log(abs(k)); >>imshow( l , [ ] ); >>colorbar 结果显示如下图所示: (2)分析图像的傅立叶频谱图; 由上图可以看出,频谱图低频部分较多,高频也有能量,说明图像中存在明显的明亮变化。 (3)自行设计一幅图像,验证离散傅立叶变换的性质,如:频谱图中高频分量迅速衰减,可分离性,平移,周期性与共轭对称性,旋转、线性和比例性,平均值。
1)傅里叶变换: 2)平移: X轴平移图像 X轴平移图像的傅立叶谱 Y轴平移图像 Y轴平移图像的傅立叶谱3)旋转特性: 4)尺度变换:
2. 思考题: 描述空间频率的概念。 空间频率是单位长度内亮度作周期性变化的次数,即现对/mm 。对于FT 基函数)(2sin )(2cos 2ux j ux e ux j πππ-=-。)(2cos ux π的最大值直线在坐标轴上的截距是u /1,则u /1表示空间周期。 实验2 修改直方图图像增强 1. 实验内容及步骤: (1) 读入一幅图像, 使用imhist( )函数产生图像的直方图,分析它的直方图分布及反映图像的特点; i=imread('D:\w01.tif'); imshow(i); imhist(i);
武汉大学新闻与传播学院实验教学中心实验报告 专业:网络传播专业2010年10 月25 实验名称图像处理指导教师洪杰文 姓名华滢年级08 学号2008300710123 成绩 一、预习部分 1、实验目的 2、实验基本原理 3、主要仪器设备(含必要的元器件、工具) 1、实验目的:(1)熟悉和掌握数字图像的基本概念和技术指标,掌握色彩模式、图像分辨率、图像深度、图像文件格式与图像的显示效果、文件容量的关系。 (2)了解和掌握数字图像压缩的概念,观察不同的压缩比对图像的影响。 (3)了解和掌握图像中色彩的确定及选取方法,掌握前景色和背景色的概念及调整方法,掌握色彩填充的基本概念及应用。 (4)了解和掌握图像处理软件Photoshop的基本功能和基本使用方法,熟练掌握图层与选择区的基本使用方法。 (5)通过创造性的构图和对布局及色彩等的巧妙处理,一幅好的图画可以将一个主题以含蓄而又深刻的方式予以提示,并往往具有比单纯的语言文字更强的表现力。在掌握图像处理基本概念和Photoshop基本使用方法的基础上,对已有的数字图像做一些基本的创意设计和编辑处理。 2、实验基本原理:基于photoshop软件的图像处理。 3、主要仪器设备(含必要的元器件、工具):Adobe Photoshop 二、实验操作部分 1、实验操作过程 2、实验数据、观察到的实验现象 1、实验操作过程: 1.图像的基本变换 (1)自选一幅不小于400×400pixel的彩色数字图像。在Photoshop中打开该图像,记录其技术参数:文件格式、文件容量,图像尺寸(pixel和cm)、分辨率、色彩模式等。
文件格式:JPEG 图像;文件容量:59.7kb;图像尺寸(pixel和cm):600×600pixel;分辨率:72像素/英寸;色彩模式:RGB模式。 (2)对该图像重采样,要求采样后的图像分辨率为150dpi,图像尺寸为300×300pixel。色彩模式分别变换成灰度、Indexed和RGB模式,按BMP格式分别保存成不同名称的图像文件;重新打开并观察变换后的显示效果,并记录各个文件的容量。 灰度:容量大小为:88.9kb Indexed;容量大小为:88.9kb
数字图像处理实验 报告 学生姓名:学号: 专业年级: 09级电子信息工程二班
实验一常用MATLAB图像处理命令 一、实验内容 1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 实验结果如右图: 代码如下: Subplot (1,3,1) i=imread('E:\数字图像处理\2.jpg') imshow(i) title('RGB') Subplot (1,3,2) j=rgb2gray(i) imshow(j) title('灰度') Subplot (1,3,3) k=im2bw(j,0.5) imshow(k) title('二值') 2、对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (3,2,1) i=imread('E:\数字图像处理 \16.jpg') x=imresize(i,[250,320]) imshow(x) title('原图x') Subplot (3,2,2) j=imread(''E:\数字图像处理 \17.jpg') y=imresize(j,[250,320]) imshow(y) title('原图y') Subplot (3,2,3) z=imadd(x,y) imshow(z)
title('相加结果');Subplot (3,2,4);z=imsubtract(x,y);imshow(z);title('相减结果') Subplot (3,2,5);z=immultiply(x,y);imshow(z);title('相乘结果') Subplot (3,2,6);z=imdivide(x,y);imshow(z);title('相除结果') 3、对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (2,2,1) i=imread('E:\数字图像处理 \23.jpg') imshow(i) title('原图') Subplot (2,2,2) J = imadjust(i,[],[],3); imshow(J) title('变暗') Subplot (2,2,3) J = imadjust(i,[],[],0.4) imshow(J) title('变亮') Subplot (2,2,4) J=255-i Imshow(J) title('变负') 二、实验总结 分析图像的代数运算结果,分别陈述图像的加、减、乘、除运算可能的应用领域。 解答:图像减运算与图像加运算的原理和用法类似,同样要求两幅图像X、Y的大小类型相同,但是图像减运算imsubtract()有可能导致结果中出现负数,此时系统将负数统一置为零,即为黑色。 乘运算实际上是对两幅原始图像X、Y对应的像素点进行点乘(X.*Y),将结果输出到矩阵Z中,若乘以一个常数,将改变图像的亮度:若常数值大于1,则乘运算后的图像将会变亮;叵常数值小于是,则图像将会会暗。可用来改变图像的灰度级,实现灰度级变换,也可以用来遮住图像的某些部分,其典型应用是用于获得掩膜图像。 除运算操作与乘运算操作互为逆运算,就是对两幅图像的对应像素点进行点(X./Y), imdivide()同样可以通过除以一个常数来改变原始图像的亮度,可用来改变图像的灰度级,其典型运用是比值图像处理。 加法运算的一个重要应用是对同一场景的多幅图像求平均值 减法运算常用于检测变化及运动的物体,图像相减运算又称为图像差分运算,差分运算还可以用于消除图像背景,用于混合图像的分离。
数字图像处理试验报告 实验二:数字图像得空间滤波与频域滤波 姓名:XX学号:2XXXXXXX 实验日期:2017 年4 月26日 1、实验目得 1、掌握图像滤波得基本定义及目得. 2、?理解空间域滤波得基本原理及方法。 3、掌握进行图像得空域滤波得方法。 4、?掌握傅立叶变换及逆变换得基本原理方法。 5、?理解频域滤波得基本原理及方法。 6、掌握进行图像得频域滤波得方法。 2、实验内容与要求 1、?平滑空间滤波: 1) 读出一幅图像,给这幅图像分别加入椒盐噪声与高斯噪声后并与前一张图显示在同 一图像窗口中。 2)?对加入噪声图像选用不同得平滑(低通)模板做运算,对比不同模板所形成得效果, 要求在同一窗口中显示。 3) 使用函数 imfilter时,分别采用不同得填充方法(或边界选项,如 零填充、’replicate'、'symmetric’、’circular')进行低通滤波,显 示处理后得图像. 4)运用for循环,将加有椒盐噪声得图像进行10 次,20 次均值滤波,查瞧其特点,显示均值处理后得图像(提示:利用fspecial函数得’average’ 类型生成均值滤波器)。 5)?对加入椒盐噪声得图像分别采用均值滤波法,与中值滤波法对有噪声得图像做处理, 要求在同一窗口中显示结果。 6) 自己设计平滑空间滤波器,并将其对噪声图像进行处理,显示处理后得图像。 2、锐化空间滤波 1)?读出一幅图像,采用3×3得拉普拉斯算子 w = [ 1, 1, 1;1– 8 1; 1, 1, 1] 对其进行滤波。 2) 编写函数w = genlaplacian(n),自动产生任一奇数尺寸n 得拉普拉斯算子, 如 5 ×5得拉普拉斯算子 w =[ 1 1 1 1 1 1 1 1 1 1 1 1 —24 1 1 1 1 1 1 1 1 1 1 1 1] 3)?分别采用5×5,9×9,15×15与25×25大小得拉普拉斯算子对blurry_moon、tif
数 字 图 像 处 理 实 验班级:125 指学号:2 导姓名:田坤 书专业:电子信息科学与技术实验一数字图像的运算
直方图 一.实验目的 1.熟悉matlab图像处理工具箱及直方图函数的使用; 2.理解和掌握直方图原理和方法; 二.实验设备:机一台;2.软件matlab。 三.程序设计 在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。 I=imread('');%读取图像 subplot(1,2,1),imshow(I) %输出图像 title('原始图像') %在原始图像中加标题 subplot(1,2,2),imhist(I) %输出原图直方图 title('原始图像直方图') %在原图直方图上加标题 四.实验步骤 1. 启动matlab双击桌面matlab图标启动matlab环境; 2. 在matlab命令窗口中输入相应程序。书写程序时,首先读取图像,一般调用matlab自 带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像; 3.浏览源程序并理解含义; 4.运行,观察显示结果; 5.结束运行,退出; 五.实验结果:观察图像matlab环境下的直方图分布。 (a)原始图像 (b)原始图像直方图 六.实验报告要求 1、给出实验原理过程及实现代码: I=imread('');%读取图像 subplot(1,2,1),imshow(I) %输出图像 title('原始图像') %在原始图像中加标题 subplot(1,2,2),imhist(I) %输出原图直方图 title('原始图像直方图') %在原图直方图上加标题 2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。
目录 实验一:数字图像的基本处理操作 (4) :实验目的 (4) :实验任务和要求 (4) :实验步骤和结果 (5) :结果分析 (8) 实验二:图像的灰度变换和直方图变换 (9) :实验目的 (9) :实验任务和要求 (9) :实验步骤和结果 (9) :结果分析 (13) 实验三:图像的平滑处理 (14) :实验目的 (14) :实验任务和要求 (14) :实验步骤和结果 (14) :结果分析 (18) 实验四:图像的锐化处理 (19) :实验目的 (19) :实验任务和要求 (19) :实验步骤和结果 (19) :结果分析 (21)
实验一:数字图像的基本处理操作 :实验目的 1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用; 2、实现图像的读取、显示、代数运算和简单变换。 3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。:实验任务和要求 1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分 成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分 别显示,注上文字标题。 3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换, 显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。 4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里 叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的 对应关系。 :实验步骤和结果 1.对实验任务1的实现代码如下: a=imread('d:\'); i=rgb2gray(a); I=im2bw(a,; subplot(1,3,1);imshow(a);title('原图像'); subplot(1,3,2);imshow(i);title('灰度图像'); subplot(1,3,3);imshow(I);title('二值图像'); subplot(1,3,1);imshow(a);title('原图像'); 结果如图所示: