DIP课程10次实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

研究生课程:数字图像处理
课程作业实验报告
实验名称:Image Interpolation
实验编号:Proj02-01
摘要:本实验采用双线性插值技术对图像进行缩放,实验的原理是来源于数值分析中的插值问题。

双线性插值算法是一种比较好的图像缩放算法,它充分的利用了源图中虚拟点四周的四个真实存在的像素值来共同决定目标图中的一个像素值,因此缩放效果比较好。

实验内容概述
关于编程的一点说明:本课程实验的主要目的如下:(1)掌握图像处理的基本方法与步骤,(2) 帮助学生建立图像处理技术解决问题的感性概念,以及解决问题的软件原型。

最后,需要说明的是,完成本课程实验所需要的编程环境可以是C++等常规的程序开发环境,也可以是包含有已经存在的具有可扩展能力的函数集合组成的集成编程环境。

最典型的例子是MATLAB的图像处理工具箱(Image Processing Toolbox,IPT)编程环境。

建议实验中使用后一种类型的集成编程环境。

下面是具体的实验题目及其说明:
PROJECT 02-01(Image Interpolation)
(a) 编写一个线性插值程序,将64*64大小的图像插值为256*256的图像,并与matlab的imresize函数的
结果相比较;
(b) 图像变换函数采用仿射变换,图像x和y方向都放大4倍,并逆时针旋转15度,未定义区域赋值0。

一、技术论述
对于双线性插值算法,首先进行初始化,读取所要缩放的图像,获取目标大小64*64,以及目标像素点的横坐标和纵坐标,然后根据所提供的公式算法逐点做双线性内插,根据双线性插值算法的思路(即目标图像中的像素值由原图像中在空间位置上最接近的四个像素值按照特定的公式:S =
(a)(b)S1+(1-a)(b)S2+(a)(1-b)S3+(1-a)(1-b)S4进行计算)对目标图像点计算相应的a、b、S1、S2、S3、S4,然后根据上述公式计算出该像素点的值,最后显示图像效果。

二、实验结果与讨论
2.1 实验结果展示
(a)效果展示
(b)效果展示
2.2 讨论
双线性插值算法在放大图像的过程中虽然会损失部分像素点,可图像的清晰度还是很高的,所以双线性插值算法可以广泛应用在图像变形、计算机动画等领域。

附录
%% 读入图像
I=imread('Fig.jpg');
%% 获取图像的尺寸
[rows,cols]=size(I);
%% 初始化要缩放的参数
width = 1024;
height = 1024;
%创建输出图像矩阵
Out = uint8(zeros(width,height));
widthScale = rows/width;
heightScale = cols/height;
%% 循环处理
for x = 6:width - 6 % 6是为了防止矩阵超出边界溢出
for y = 6:height - 6
oldX = x * widthScale; % oldX,oldY为原坐标,x,y为新坐标
oldY = y * heightScale;
if (oldX/double(uint16(oldX)) == 1.0) & (oldY/double(uint16(oldY)) == 1.0)
Out(x,y) = I(int16(oldX),int16(oldY));%若oldX,oldY为整数,直接赋值
else
a = double(uint16(oldX));
b = double(uint16(oldY));
x11 = double(I(a,b)); % x11 赋值为 I(a,b)
x12 = double(I(a,b+1)); % x12 赋值为 I(a,b+1)
x21 = double(I(a+1,b)); % x21 赋值为 I(a+1,b)
x22 = double(I(a+1,b+1)); % x22 赋值为 I(a+1,b+1)
Out(x,y) = uint8( (b+1-oldY) * ((oldX-a)*x21 + (a+1-oldX)*x11) + (oldY-b) * ((oldX-a)*x22 +(a+1-oldX) * x12) ); % 用双线性插值计算公式计算
end
end
end
%% 显示输入和输出图像
imshow(I);
figure;
imshow(Out);
%% 结束
研究生课程:数字图像处理
课程作业实验报告
实验名称:Reducing the Number of Gray Levels in an Image
实验编号:Proj02-02
摘要:在图像的灰度处理中,增强操作、直方图及图像间的变换是实现点操作的增强方式,又被称作灰度变换。

灰度级数是指黑白显示器中显示像素点的亮黑差别,在彩色显示器中表现为颜色的不同,灰度级数越多,图像层次越清楚逼真。

PROJECT 02-02(Reducing the Number of Gray Levels in an Image)
(a) 编写一个以2的幂次方将给定图像的灰度级数从256减少到2的程序。

图像的灰度级数以参数变量的形式
传递到所编写的程序中。

(b) 使用图2.21(a) 以(a)中编写的程序生成图2.21所示的各个结果。

一、实验结果与讨论
1.1 实验结果展示
(a)效果展示
(1)(2)
(3) (4)
(5) (6)
(7) (8)
1.2 讨论
从实验结果中可以看到灰度级减少,图像变得清晰了,灰度级值越小效果越明显。

附录
% I为输入图像,gray_level为灰度级256,128,64...
% img_gray为输出图像
function img_gray = reduce_gray(I,gray_level)
m = 256/gray_level;
[width,height] = size(I);
img_gray=zeros(width,height);
for i=1:width
for j=1:height
img_gray(i,j) =floor(I(i,j)/m);
end
end
研究生课程:数字图像处理
课程作业实验报告
实验名称:Histogram Equalization
实验编号:Proj03-02
摘要:直方图均衡化是图像处理领域中利用图像直方图对对比度进行调整的方法,这种方法通常用来增加许多图像的局部对比度,尤其是当图像的有用数据的对比度相当接近的时候。

通过这种方法,亮度可以更好地在直方图上分布。

这样就可以拥有增强局部的对比度而不影响整体的对比度,直方图均衡化通过有效地扩展常用的亮度来实现这种功能。

PROJECT 03-02(Histogram Equalization)
(a) 编写一个计算图像直方图的程序。

(b) 实现在3.3.1节中讨论的直方图均衡化技术。

(c) 对图3.8(a)进行直方图均衡化增强。

本实验报告中至少应包括:原始图像,原始图像的直方图,直方图均衡化变换函数图,增强后的图,增强后图像的直方图。

用上述实验数据解释结果图像被增强的原因。

一、实验结果与讨论
1.1 实验结果展示
原图
1.2 讨论
为了得到实验效果,要进行以下几个步骤:(1)统计原图像素每个像素的个数;
(2)统计图像每个灰度级的像素的积累个数;
(3)灰度级的映射规则,将原图每个像素点的灰度映射到新图。

从图像效果中可以看到,均衡化后的各灰度级更加均衡,接近理想值。

同时对于灰度范围小,直方图分布极不均匀的图像,可人为的扩大灰度范围,均衡化后能取得较好的层次感,使图像信息变得更清晰。

附录
function HIST=hist_1(imgName)
IMG=imread(imgName);
figure,imshow(IMG);
title('原图');
HIST=zeros(256,1);
for i=0:255
HIST(i+1)=length(find(IMG==i))%计算灰度级的直方图;
end
HIST=HIST/(size(IMG,1)*size(IMG,2));%计算灰度级的概率密度
figure,bar(0:255,HIST,'r');
title('原图像直方图');
%--------------------------------------------------------------------------
%直方图均衡化
S1=zeros(1,256);
for i=1:256
for j=1:i
S1(i)=HIST(j)+S1(i);%计算S1
end
end
S2=round((S1*256)+0.5);%讲S1约等于相近临的灰度级
for i=1:256
HIST_2(i)=sum(HIST(find(S2==i)));%计算现有的灰度级出现的概率
end
figure,bar(0:255,HIST_2,'g');
title('均衡化后的直方图')
%--------------------------------------------------------
%图像均衡化
IMG_1=IMG;
for i=0:255
IMG_1(find(IMG==i))=S2(i+1);%给图像重新赋均衡化后的灰度级
end
figure,imshow(IMG_1);
title('均衡化后的图像')
研究生课程:数字图像处理
课程作业实验报告
实验名称:Enhancement Using the Laplacian
实验编号:Proj03-05
摘要:图像锐化的概念在图像增强过程中,通常利用各类图像平滑算法消除噪声。

图像锐化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变得清晰,拉普拉斯算子是一种在图像锐化处理中很重要的算法,是与一个边缘方向无关点检测算子。

它对孤立像素的响应要比边缘或线的响应更强烈,因此使用该算子进行图像锐化之前要进行图像平滑处理。

PROJECT 03-05(Enhancement Using the Laplacian)
(a) 使用在实验03-03和03-04中开发的程序实现公式(3.7-5)描述的拉普拉斯增强技术,其中的模板使用图
3.39(d)所示的掩模。

(b) 使用课本图3.40(a)用(a)中的程序实现课本图3.40中的结果。

一、技术论述
拉普拉斯算子是最简单的各向同性微分算子,具有旋转不变性。

一个二维图像函数的拉普拉斯变换是各向同性的二阶导数,定义为:
为了更适合于数字图像处理,将该方程表示为离散形式:
另外,拉普拉斯算子还可以表示成模板的形式,如图5-9所示。

图5-9(a)表示离散拉普拉斯算子的模板,图5-9(b)表示其扩展模板,图5-9(c)则分别表示其他两种拉普拉斯的实现模板。

从模板形式容易看出,如果在图像中一个较暗的区域中出现了一个亮点,那么用拉普拉斯运算就会使这个亮点变得更亮。

因为图像中的边缘就是那些灰度发生跳变的区域,所以拉普拉斯锐化模板在边缘检测中很有用。

一般增强技术对于陡峭的边缘和缓慢变化的边缘很难确定其边缘线的位置。

但此算子却可用二次微分正峰和负峰之间的过零点来确定,对孤立点或端点更为敏感,因此特别适用于以突出图像中的孤立点、孤立线或线端点为目的的场合。

同梯度算子一样,拉普拉斯算子也会增强图像中的噪声,有时用拉普拉斯算子进行边缘检测时,可将图像先进行平滑处理。

图像锐化处理的作用是使灰度反差增强,从而使模糊图像变得更加清晰。

图像模糊的实质就是图像受到平均运算或积分运算,因此可以对图像进行逆运算,如微分运算能够突出图像细节,使图像变得更为清晰。

由于拉普拉斯是一种微分算子,它的应用可增强图像中灰度突变的区域,减弱灰度的缓慢变化区域。

因此,锐化处理可选择拉普拉斯算子对原图像进行处理,产生描述灰度突变的图像,再将拉普拉斯图像与原始图像叠加而产生锐化图像。

拉普拉斯锐化的基本方法可以由下式表示:
二、实验结果与讨论
2.1 实验结果展示
(b)图像效果展示
2.2 讨论
从(b )图像效果中,可以看出拉普拉斯模板对该图像滤波后的结果。

由图可以看出,将原始图
像通过拉普拉斯变换后增强了图像中灰度突变处的对比度,使图像中小的细节部分得到增强并保留了图像的背景色调,使图像的细节比原始图像更加清晰。

附录
clc;
YS_IMG=imread('Fig3.40(a).jpg');
figure,imshow(YS_IMG);
title('原图');
b=size(YS_IMG);
YS_IMG=double(YS_IMG);
g=[1 2 1;2 4 2;1 2 1;];
M_IMG=zeros(b);
for i=2:b(1)-1
for j=2:b(2)-1
M_IMG(i,j)=YS_IMG(i,j)*g(2,2)+YS_IMG(i+1,j)*g(3,2)+YS_IMG(i,j+1)...
*g(2,3)+YS_IMG(i+1,j+1)*g(3,3)+YS_IMG(i+1,j-1)*g(3,1)+YS_IMG(i-1,j+1)...
*g(1,3)+YS_IMG(i-1,j-1)*g(1,1)+YS_IMG(i-1,j)*g(1,2)+YS_IMG(i,j-1)...
*g(2,1);
end ;
end ;
M_IMG=mat2gray(M_IMG/16);
f=[1 1 1;1 -8 1;1 1 1;];%八邻域滤波器模板;
F_IMG=zeros(b);
for i=2:b(1)-1
for j=2:b(2)-1
F_IMG(i,j)=M_IMG(i,j)*f(2,2)+M_IMG(i+1,j)*f(3,2)+M_IMG(i,j+1)*f(2,3)...
+M_IMG(i+1,j+1)*f(3,3)+M_IMG(i+1,j-1)*f(3,1)+M_IMG(i-1,j+1)*f(1,3)+...
M_IMG(i-1,j-1)*f(1,1)+M_IMG(i-1,j)*f(1,2)+M_IMG(i,j-1)*f(2,1);
end;
end;
F_IMG=mat2gray(F_IMG);
figure,imshow(F_IMG);
title('锐化后的图像');
%图像增强;
Z_IMG=zeros(b);
for i=2:b(1)-1
for j=2:b(2)-1
Z_IMG(i,j)=YS_IMG(i,j)+F_IMG(i,j);
end;
end;
研究生课程:数字图像处理
课程作业实验报告
实验名称:Two-Dimensional Fast Fourier Transform
Fourier Spectrum and Average Value
Lowpass Filtering
实验编号:Proj04-01
摘要:傅里叶变换作为数字图像处理技术的基础,通过在时空域和频率域来回切换图像,对图像的信息特征进行提取和分析。

使用Matlab在数字图像处理和傅里叶变换计算上的使用,编程实现了其变换功能。

PROJECT 04-01(Two-Dimensional Fast Fourier Transform)该实验的目的是开发一个2-D FFT程序包,以用于后续的几个其它实验。

要求程序能完成下面的功能:
(a) 用因子(-1)x+y乘以输入图像,以实现滤波的中心化变换;
(b) 用一个实矩阵乘以一个复数矩阵,即用实矩阵中的元素同时乘以复数矩阵对应位置上的复数的实部与虚部。

可以通过调用两个图像的乘法程序来实现对应元素的相乘;
(c) 计算反付立叶变换;
(d) 结果乘以(-1)x+y,并取其实部;
(e) 计算频谱。

该实验主要实现图4.5。

若试验中使用MATLAB, 则要求付立叶变换程序不局限于尺寸为2的整数次幂的图像。

如果FFT程序是你自己编写的,则程序可以仅仅处理尺寸为2的整数次幂的图像。

为此,实验中需要用到在实验02-04中的程序,以便将输入图像缩放到合适的尺寸,然后进行处理。

一、实验结果与讨论
1.1 实验结果展示
(a)经过傅里叶变化实现中心化的效果图
低通滤波处理图像效果图
1.2 讨论
从实现效果中可以看到,通过反傅里叶变换,图像基本保持原样,没有失真;低通滤波器处理图像去噪,在滤除了集中在高频信息中的噪声,同时也会造成高频细节中的边缘、轮廓和纹理信息的丢失。

附录
orginImg = imread('image_thumb_6.png');
figure,imshow(orginImg);
title(‘原始图像’);
orginImg = rgb2gray(orginImg);
%orginImg = double(orginImg);
[m,n] = size(orginImg);
for i = 1 : m
for j = 1 : n
orginImg(i,j) = orginImg(i,j)*((-1)^(i+j));
end
end
orginImg = fft2(abs(orginImg));
figure,imshow(orginImg,[]);
title(‘中心变换图’);
orginImg = real(ifft2(orginImg));
figure,imshow(orginImg,[]);
title(‘反傅里叶变换中心变化图’);
I = imread('Fig4.11(a).jpg'); %读取图像
figure,imshow(I);
[M,N] = size(I);
s = lowpassFiltering( I,M/2,N/2 );
figure,imshow(I-s);
function [ output] = lowpassFiltering( I,x,y )
%将灰度图像的二维不连续Frourier变换的零频率成分移到频谱的中心
s = fftshift(fft2(I));
[M,N] = size(s); %分别返回s的行数到M中,列数到N中%GLPF滤波,d0=5,15,30(程序中以d0=30为例)
d0 = 30; %初始化d0
for i = 1:M
for j = 1:N
d = sqrt((i-x)^2+(j-y)^2); %点(i,j)到傅立叶变换中心的距离
h = 1*exp(-1/2*(d^2/d0^2)); %GLPF滤波函数
s(i,j) = h*s(i,j); %GLPF滤波后的频域表示end end
s = ifftshift(s); %对s进行反FFT移动
%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数
s = uint8(real(ifft2(s)));
figure,imshow(s);
title('GLPF滤波'); %为经GLPF滤波后的图像添加标题
output = s; End
研究生课程:数字图像处理
课程作业实验报告
实验名称:Noise Reduction Using a Median Filter
实验编号:Proj05-02
摘要:在图像处理中,在进行如边缘检测这样的进一步处理之前,通常需要首先进行一定程度的降噪。

中值滤波是图像处理中的一个常用步骤,它对于斑点噪声和椒盐噪声来说尤其有用,保存边缘的特性使它在不希望出现边缘模糊的场合也很有用。

PROJECT 05-02(Noise Reduction Using a Median Filter)
(a) 修改在实验03-04中编写的程序,实现3 x 3 中值滤波。

(b) 给图5.7(a)添加P a = P b = 0.2的椒盐噪声。

(c) 对(b)中得到的图像进行中值滤波。

说明实验结果与图5.10(b)的主要差异。

一、技术论述
二、实验结果与讨论
2.1 实验结果展示
(c)实验效果图
2.2 讨论
在原图中加入噪声后,经过中值滤波器的处理,我们可以看到图像效果跟原图比较,基本上是一样的,说明中值滤波器对于图像平滑处理效果是不错的。

附录
I=imread(' c4.jpg ');
I=rgb2gray(I);
J=imnoise(I,'salt&pepper',0.02);
subplot(231),imshow(I);title('原图');
subplot(232),imshow(J);title('加入噪声后的图像');
k1=medfilt2(J); %进行3*3模板中值滤波
subplot(233),imshow(k1);title('中值滤波后的图像');
研究生课程:数字图像处理
课程作业实验报告
实验名称:Parametric Wiener Filter
实验编号:Proj05-04
摘要:图像回复技术是图像处理领域一类非常重要的处理技术,与图像增强等其他基本图像处理技术类似,也是以获取视觉质量某种程度的改善为目的。

维纳滤波恢复运动模糊图
像的效果是比较好的,它是假设图像信号可以近似看成平稳随机过程的前提下,按照使输入图像和恢复图像之间的均方误差达到最小的准则函数来实现图像恢复的方法。

PROJECT 05-04(Parametric Wiener Filter)
(a) 编写程序实现公式(5.6-11)所示的污损滤波;
(b) 如图5.26(b)所示,对图像5.26(a) 进行+45o方向,T = 1的污损滤波;
(c) 对污损后的图像加入均值为0,方差为10个像素的高斯噪声;
(d) 编写程序使用公式(5.8-3)所示的参数维纳滤波对图像进行恢复。

一、技术论述
最小二乘方滤波也就是维纳滤波。

它是使原始图像f ( x, y) 及其恢复图像^f ( x, y) 之间均方误差最
小的恢复方法。

g ( x, y) = ∫∫h ( x - α, y - β)
f (α,β) dαdβ + n ( x, y)
给定了g ( x, y) , 并不能精确求解出f ( x, y) 。

在此只能找到一个估算值^f ( x, y) , 使得均方误差式e2 = E{ [ f ( x, y) ] - ^f ( x, y) ]2 }最小, 其中^f ( x, y) 叫做给定g ( x, y) 时f ( x, y) 的最小二乘方估计。

最小二乘方滤波器的传递函数表示形式
M ( u, v) =1/h ( u, v)· | H ( u, v) 2 | 2/| H ( u, v) 2 | 2 +Γ
式中, Γ是噪声对信号的功率密度比, 它近似为一个适当的常数。

二、实验结果与讨论
2.1 实验结果展示
(1)原图(2)运动后模糊图像效果
(3)添加噪声模糊的图像效果(4)维纳滤波复原图像效果
2.2 讨论
我们可以从效果中看到,对运动迷糊的图像,经过维纳滤波处理效果还是非常明显的,可是对于椒盐噪声几乎没有抑制作用。

附录
f=imread('5.26(b).jpg');
subplot(221),imshow(f);
disp=30;
theta=45;
psf=fspecial('motion',disp,theta);
mf=imfilter(f,psf,'circular','conv');
subplot(222),imshow(mf);
noise=imnoise(f,'gaussian',0,10);
mfn=mf+noise;
subplot(223), imshow(mfn,[]);
nsr=sum(noise( : ).^2)/sum(mf( : ).^2);
subplot(224),imshow(deconvwnr(mfn,psf,nsr),[]);
研究生课程:数字图像处理
课程作业实验报告
实验名称:Pseudo-Color Image Processing
实验编号:Proj06-02
摘要:伪彩色图像处理是将黑白图像转化为彩色图像,或者是将单色图像变换成给定彩色分布图像。

由于人眼对彩色的分辨能力远远高于灰度的分辨能力,所以将灰度图像转化成彩色表示,就可以提高对图像细节的辨别力。

因此,伪彩色处理的主要目的是为提高人眼对图像细节的分辨能力,以达到图像增强的目的。

PROJECT 06-02(Pseudo-Color Image Processing)
(a) 编写程序实现图6.23,程序的输入为图像中指定的两个灰度级范围。

程序的输出为RGB格式图像,其中,
一个灰度级范围显示为指定的彩色,其余的像素以RGB形式显示为与输入图像对应像素相同的灰度色。

可以将输入颜色限定为图6.4(a)中的所有颜色。

(b) 用上述程序对图1.10(4)进行处理,要求使河流呈现为黄色,其余区域像素与原输入图像灰度保持一致。


结果图像中一些孤立区域一般也会呈现黄色,因此需要选取合适的灰度级范围,使这样的区域尽可能少。

一、实验结果与讨论
1.1 实验结果展示
(b)图像效果展示
1.2 讨论
从效果图中可以看到,河流已经呈现为黄色,其他区域没有没有变化,但是对于一些小区域还是看到有一小部分黄色。

附录
I=imread('6.4(a).jpg');
figure,imshow(I);
title('原图')
I=double(I);
[m,n]=size(I);
level=256;
for i=1:m
for j=1:n
if I(i,j)<level/4
R(i,j)=0;
G(i,j)=4*I(i,j);
B(i,j)=level;
else if I(i,j)<=level/2
R(i,j)=0;
G(i,j)=level;
B(i,j)=-4*I(i,j)-2*level;
else if I(i,j)<=3*level/4
R(i,j)=4*I(i,j)-2*level; G(i,j)=level;
B(i,j)=0;
else
R(i,j)=level;
G(i,j)=-4*I(i,j)+4*level; B(i,j)=0;
end
end
end
end
end
for i=1:m
for j=1:n
G2C(i,j,1)=R(i,j);
G2C(i,j,1)=G(i,j);
G2C(i,j,1)=B(i,j);
end
end
G2C=G2C/256;
figure,imshow(G2C,[]);
title('伪彩色图像')
研究生课程:数字图像处理
课程作业实验报告
实验名称:Two-dimensional Discrete Wavelet Transforms
Wavelet Transform Modifications
实验编号:Proj07-02
摘要:本次试验的目的在于利用MATLAB程序实现二维离散小波变换,并对小波系数矩阵进行重构,加深对二维小波分解和重构的认识,提高编程能力。

PROJECT 07-02(Two-dimensional Discrete Wavelet Transforms)
(a) 用实验07-01中的程序开发一个计算哈尔小波的j-尺度二维DWT程序。

该实验例程的理论基础是课本7.5
节中讨论的可分离小波和二维小波变换理论。

(b) 对图像7.1 进行如图7.8(a)所示的哈尔小波3-尺度二维DWT。

结果中注明变换尺度的细节和近似系数。

(c) 编写一个计算哈尔小波的二维逆DWT程序,用它重构(b)中小波分解结果的原始图。

(d) 编写一个标定(b)中DWT系数的程序,使细节系数的结构更易可视化。

近似系数不需要标定。

一、实验结果与讨论
1.1 实验结果展示
1.2 讨论
开始使用给定的目标图像时,由于图像尺寸太大导致结果显示不明显,换了一张符合规格的图像如上图所示,分解图像的效果并不是很明显,但是重构图像还是很好的。

附录
clc;clear;
X=imread('7.8(a).jpg’);%路径
X=double(X);
A = mallatdec2(X,'sym2',3);
image(abs(A));
colormap(gray(255));
title('分解图像');
Y= mallatrec2(A,'sym2',3);
Y=real(Y);
figure(2);
subplot(1,2,1);
image(X);
colormap(gray(255));
title('原始图像');
subplot(1,2,2);
image(Y);
colormap(gray(255));
title('重构图像');
csize=size(X);
sr=csize(1);
sc=csize(2);
mse=sum(sum( (Y-X).^2,1))/(sr*sc);
psnr=10*log(255*255/mse)/log(10)
研究生课程:数字图像处理
课程作业实验报告
实验名称:Optimum Thresholding
实验编号:Proj10-03
摘要:图像的阈值化处理就是将图像上的点的灰度置为0或255,也就是使整个图像呈现出明显的黑白效果。

即将256个亮度等级的灰度图像通过适当的阀值选取而获得仍然可以反映图像整体和局部特征的二值化图像。

PROJECT 10-03(Optimum Thresholding)
(a) 编程实现课本10.3-5节中讨论的最优阈值方法。

假设目标和背景的分布为高斯密度发布。

程序的输入参数
根据公式(10.3-14)的要求而定。

(b) 编写一个计算图像给定区域中像素的均值与方差的程序。

(c) 在图10.27(a)中选择目标的一个小区域,同时选择背景的一个小区域,分别计算其均值与方差。

用上面两个
方差的平均得到单一的方差值。

通过人工估计目标和背景的相对占有面积获得概率P1和P2的估计值。

将得到的值作为程序的输入参数,对图10.27(a)进行分割。

并将结果与实验10-02中的结果进行比较。

一、实验结果
附录
function Proj10_3
ima=imread('Fig10.27(a).jpg') subplot(2,1,1); imshow(ima); title('原始图像');
[u1,se1]=meanse(ima,166,131,304,208); [u2,se2]=meanse(ima,1,1,118,105); se=(se1+se2)/2; P1=0.4; P2=1-P1;
T=Opt(u1,u2,se,P1,P2) %计算图像最优阈值 ima(find(ima<=T))=0; ima(find(ima>T))=255; subplot(2,1,2); imshow(ima); title('实验结果');
%-------------------------------------------------------------------------- %计算图像方差和均值
function [me,d]=meanse(img,x,y,a,b) img_s=img(x:a,y:b); img_s=double(img_s)
d=var(img_s(:)); % 计算方差 me=sum(sum(img_s))/((a-x)*(b-y)) % 计算均值 %--------------------------------------------------------------------------
30。

相关文档
最新文档