范文一:基于偏微分方程的图像处理试题
《基于偏微分方程的图像处理》试题 班级 信科 111 ,姓名 袁伟 ,学号 111005222成绩 . 一、 考试要求
1. 本次考试为开卷考试, 重点考查学生对借助于 Matlab 的图像处理的编程 和实际运用能力;
2. 题目类型为书写各种图像处理方法的 Matlab 程序, 并对某一具体图像运 行程序给出运行结果;
3. 提交的试题答卷中每一问题均应有 Matlab 源程序和运行结果两部分, 运 行结果应为图像形式;
4. 答卷必须使计算机打印稿。
二、 考试题目
1. 图像的基本操作
(1)把一幅彩色图像分解为 R 、 G 、 B 三副单色图像;
(2)把一幅灰度图像分别沿 x 轴和 y 轴做反射,扩展为四倍大小;
2. 把一幅灰度图像的像素值都变换为原来的 1/2使图像质量变差,然后利 用 Matlab 图像处理工具箱中的直方图均衡化函数 histeq 对图像进行增强,输出 原图像、质量变差图像和增强后的图像以及它们的直方图。
3. 图像的水平集、水平线和等高线的显示和处理
(1)显示一幅灰度图像在某一水平的水平集、水平线和等高线;
(2)显示图像并显示它的一族水平线 (要求阀值 λ为 32, 64, 96, 128, 160, 192, 224) 。
4. 显示一幅灰度图像及其加高斯白噪声 (01
. 0
, 02=
=σ
μ) 和椒盐噪声 (噪 声密度 02
. 0
=
d )后的图像及直方图。
5. 分别利用算术平均滤波、 加权的线性光滑和热传导方程滤波方法对 4题 中得到的两幅噪声图像进行去噪处理。
6. 分别利用反锐化掩蔽滤波方法和基于热传导方程的 Gabor 锐化方法对 5题中利用热传导方程滤波方法得到的两幅去噪图像进行清晰化(锐化)处理。
范文二:基于偏微分方程的图像处理
龙源期刊网 http://www.qikan.com.cn
基于偏微分方程的图像处理
作者:金建国 王东升
来源:《计算机光盘软件与应用》 2013年第 20期
摘 要:图像加密处理技术是各种鱼图像相关技术的总称。对于大多数图像技术处理工作 者来说,他们在处理图像信息中都是通过数字图像处理技术和和电子辅助设备相互结合运行来 完成的。在很多领域都在利用图像处理技术来变换,增强或者表达描述目标的提取和测量。随 着计算机科学技术的不断发展, 3D 场景建模,数据库建立以及相关图像分割技术都在不断的 飞速发展,除此之外,图像加密处理技术还可以完成上述的制作和硬件设计。
关键词:图像技术;图像加密;偏微分方程
中图分类号:TP391
1 图像加密处理技术的基本知识
1.1 图像机密处理技术的发展现状
图像机密处理技术也是计算机图像处理技术,主要是利用计算机对所输出图像信号进行有 效技术处理的过程,该技术在 20世纪 50年代出现至今,取得了飞速的发展,现今已经达到相 当的技术规模和水平。在最早期该技术出现时,人们主要是领用它来处理图像的画面质量,目 的比较单纯,只是为了改善图片的视觉效果,把低质量的图像输入到计算机当中,利用各种图 像的计算方法来处理图像信息。
图像处理技术作为一门学科出现在 20世纪 60年代,主要是图像的输入信号转化为数字化 信号输出的都是经过计算及处理改善后的图像,我们平常所用的计算机图像处理方式包括图像 增强、复原、编码、压缩等。
通过上面的描述我们不难看出,图像的处理结果利用计算机作为辅助的手段,同事数字图 像处理技术也需要各种机器感来完成,这一种计算机分割计算的处理模式,该技术随着发展已 经在字符识别,军事指挥和指纹处理等多方面都得到了广泛的应用,除此之外,在我们日常生 活中的天气预报和航空定位等领域也有所发展。
1.2 图像加密处理技术的框架
图像加密处理技术是涉及方方面的一种技术,包括图像分析、图像理解和计算机视觉,目 前在这些技术领域还没有一个统计的界定标准。由于近几年图像技术得到了极大的发展,有很 多新的计算方法核心的计算理论应运而生,伴随着也出现了一大批新的技术装备。这些成果都 是在原有的技术成果上发展起来的,与原来的技术协同发展,相互交叉,目前在图像技术处理
范文三:基于偏微分方程的图像处理方法
幻灯片 1
电子与信息工程学院 张芳 hhzhangfang@126.com 幻灯片 2
汇报提纲
●背景介绍
●基于偏微分方程的图像滤波方法
●基于偏微分方程的图像复原方法
●基于偏微分方程的图像骨架线提取方法
●基于偏微分方程的图像增强方法
●基于偏微分方程的其它图像处理方法
幻灯片 3
引 言
像素的灰度值 基于偏微分方程的图像处理方法
数字图像
一、背景介绍
基于偏微分方程的图像处理方法
( Partial Differential Equations, 简称 PDE )
应用 图像滤波、图像修复、对比度增强、提取骨架线、 二值化、边缘检测、图像分割等。 幻灯片 5
二、基于偏微分方程的图像滤波方法
定义
图像 u ——————— 连续信号 图像处理操作 F ——— 偏微分算子 原始图像 I ————— 初始条件 结果图像 u ————— 方程的解
[])
, , (t y x u F u t =?()()
y x I y x u , 0, , =
偏微分方程 滤波模型的导出
从最优化的问题出发,即变分方法导出的偏微分方程 从高斯平滑算子导出的偏微分方程
幻灯片 6
二、基于偏微分方程的图像滤波方法
从高斯平滑算子导出的偏微分方程
——热传导方程 ( Witkin )
()??? ??+-=-σσσ) (exp , 2
22
y x C y x G
不足:各向同性扩散方程。
在各个方向上同等扩散,滤波的同时破坏图像内容, 即图像边缘。
高斯滤波
()()()
y x I t y x G t y x u , , , , , *=高斯滤波器
u u t 2
?=?()()y x I y x u , 0, , =热传导方程
幻灯片 7
二、基于偏微分方程的图像滤波方法
●从最优化的问题出发,即变分方法导出的偏微分方程
●变分图像去噪方法通过引入能量函数, 将图像去噪问题转化成泛函求极值问题, 即 变分问题。变分法是研究泛函求极值问题的方法,它的主要步骤为:
●第一步,从物理问题上建立泛函及其约束条件;
●第二步,通过泛函变分,求得欧拉-拉格朗日方程;
第三步,在边界条件下求解,即求解微分方程。
幻灯片 8
二、基于偏微分方程的图像滤波方法
从最优化的问题出发,即变分方法导出的偏微分方程
含噪声的图像:()()()y
x
n
y
x
u
y
x
I ,
,
, +
=
建立泛函及约束条件 变分,求欧拉 /拉格朗日方程
求解微分方程
由泛函的极值条 件,欧拉-拉格 朗日方程为: ()0 2= --
?I u u λ
()?
?Ω
Ω
-+
?=dxdy I u dxdy u u J 2
2
2λ
()()??Ω
Ω
=dxdy
y x I dxdy y x u , ,
()()()2
2, , 1σ=-Ω
?Ω
dxdy y x I y x u
将最小化问题视为 如下演化方程(梯
度下降流)的稳态解: ()I u u u t --?=?λ2, ()()y x I y x u , 0, , =
幻灯片 9
二、基于偏微分方程的图像滤波方法
偏微分方程的去噪原理
热传导方程的解为:
()()()()??
?>*==0
, , 0,
, , , t y x I K t y x I t y x u ()???
? ??+-=-t y x t t y x K 4) (exp 41
, , 222π 从空域角度讲
幻灯片 10
二、基于偏微分方程的图像滤波方法
N y l π
改进
控制平滑量
在图像特征多的区域应该尽可能地少平滑
控制平滑方向
穿越图像特征方向的扩散量小
幻灯片 11
二、基于偏微分方程的图像滤波方法 ●常用的偏微分方程去噪模型
●——由线性模型到非线性模型的发展 由线性模型到
非线性模型的发展
PM 扩散方程(非线性)
()()
()22
, (, ,0) (, ) 1
1t u c u u u x y I x y c u u k ??=????=?
??=?+??
Perona 和 Malik
热传导方程(线性)
扩散系数 )u c ?
作用 :()u c ?可以控制扩散速率,使得图像的边缘处扩散较慢。 缺点 :对孤立噪声敏感。
幻灯片 12
二、基于偏微分方程的图像滤波方法
改进
控制平滑量
在图像特征多的区域应该尽可能地少平滑
控制平滑方向
穿越图像特征方向的扩散量小
幻灯片 13
二、基于偏微分方程的图像滤波方法 常用的偏微分方程去噪模型
——由各向同性模型到各向异性模型的发展 由各向同性模型
到各向异性模型的发展
空间坐标与基于图像特征的内在坐标示意图
幻灯片 14
二、基于偏微分方程的图像滤波方法
偏微分方程的数值解法
——对连续的微分方程进行离散差分求解
假设要处理的图像是一幅 N M ?的灰度图像 I ,
j i I , 代表 M i ≤≤1, N j ≤≤1的任意一点。
j i , 1-()
1, -j i ()
1, +j i ()
1, 1--j i ()
1, 1-+j i ()
1, 1+-j i ()
1, 1++j i 目标像素 ()j i , 与它的邻域
幻灯片 15
二、基于偏微分方程的图像滤波方法
采用的空间差分为:
n j i n j i n j i n j i xx u u u u , , 1, 1, 2-+=?-+ n j i n j i n j i n j i yy u u u u , 1, 1, , 2-+=?-+
边界条件
, 1, 0, n i n i u u = , , 1, n N i n N i u u =+ M i , , 2, 1 =
, , 1, 0n j n j u u = , , , 1n
j M n j M u u =+ N j , , 2, 1 =
初值条件
j i j i I u , 0, =
由此,可得热传导扩散方程 u u t 2?=?的差分格式为:
()
n
j
i n j i n j i n j i n j i n j i n j i u u u u u t u u , 1, 1, , 1, 1, 1, 4-+++?+=-+-++
幻灯片 16
二、基于偏微分方程的图像滤波方法
幻灯片 17
二、基于偏微分方程的图像滤波方法
原始图像 各向同性 (线性) 扩散滤波 (热传导方程)
非线性扩散滤波(PM 方程) 各向异性扩散滤波(平均曲率流)
幻灯片 18
二、基于偏微分方程的图像滤波方法
● 耦合偏微分方程 ●
()()[]()()()?
?????
?==--???? ????=?=-?--???
?
??????=?) , () 0, , (), , () 0, , (, ) , () 0, , (, 1y x I y x v y x I y x u u v b v v div t a v y x I y x u I u v c u u div u v c u t t
幻灯片 19
二、基于偏微分方程的图像滤波方法
● 耦合偏微分方程 ●
(a) 滤波前 (b) 滤波后 (c) 滤波前 (d) 滤波后
两组医学图像的偏微分方程去噪结果
幻灯片 20
)
(2u F u t =?
)
() (21u CF u F u t +=?
●此结果选自:张亶,陈刚,基于偏微分方程的图像处理,
北京:高等教育出版社, 2004
幻灯片 23
三、基于偏微分方程的图像复原方法
●图像复原, 就是利用使获得的图像产生退化的先验知识, 建立退化图像数学模型, 然后 沿着图像退化的逆过程加以重建和复原,以获得“清晰和干净”的图像。
幻灯片 24
三、基于偏微分方程的图像复原方法
● 偏微分方程图像复原方法的主要思想:
利用图像的已知信息来填充待修复区域内的已经丢失的或破损的信息,从而得到完整的图 像。 而要填充未知区域的信息, 就需要把待修复区域边界上的信息扩散到区域中去。 这个过 程可以借助偏微分方程的扩散来实现。
幻灯片 25
三、基于偏微分方程的图像复原方法
● 基于热传导方程的图像修复方法:
()()C
t D
y x I u D
y x u u ∈=∈?=?, ,
, , 2
D 为待修复区域。 幻灯片 26
三、基于偏微分方程的图像复原方法
假设函数 u 表示原始图像,这是未知的,是我们想找到的。用函数 I 表示描述与 u 相同 场景的观测图像,它是退化的,已知的。二者之间的关系可简单表示为: I=Ku+n
其中 K 是影响图像失真的因子, n 是加性噪声。 图像恢复问题就是从已知图像 I , 得到 恢复图像 u 。
偏微分方程图像复原方法的主要思路:
根据图像修复的准则, 建立数学模型, 把图像修复问题抽象成为求解一个最优估计的问 题,用 Euler 公式就得到一个偏微分方程。
) () (21u CF u F u t +=?
同时完成滤波和修复任务:
())()[]()()()??????
?=--???? ????=?=??????????-?--???? ??????+?-=?) , () 0, , (, ) , () 0, , (, 112
y x I y x v u v b v v div t a v y x I y x u I u v c u u div u v c u u t t λλη
()()??
?∈∈=C
D
y x D
y x , 1
, 0
λ
幻灯片 27
三、基于偏微分方程的图像复原方法
(a) Initial image; (b) Restored image;
(c) A small part of (a); (d) A small part of (b)
同时完成滤波和修复任务 幻灯片 28
三、基于偏微分方程的图像复原方法
同时完成滤波和修复任务
热传导方程的数值解法: (1) 初始化 j i j i I u , 0, =; (2) for n = 0, 1, 2, …
()n j i n j i n j i n j i n j i n j i n j i u u u u u t u u , 1, 1, , 1, 1, 1, 4-+++?+=-+-++,计算 1
, +n j
i u ; end
(c) A small part of (a); (d) A small part of (b)
幻灯片 29
四、基于偏微分方程的骨架线提取方法
传统算法流程
偏微分方程算法流程
求梯度
PDE 演化
求奇点
幻灯片 30
四、基于偏微分方程的骨架线提取方法
●基于偏微分方程的骨架线提取原理
偏微分方程骨架提取方法借助 GVF(Gradient Vector Flow)思想,引入梯度场的概念,将图像 边界看做封闭的, 图像内部为一能量场, 场的梯度在内外力的作用下在场内变化运动, 当场 的梯度达到最小时,其最小值处即为图像骨架。
求梯度
PDE 演化
求奇点
=(, )
V u v
幻灯片 31
四、基于偏微分方程的骨架线提取方法
●GVF 能量方程
●初始条件
求方程的能量 E 最小化即为求图像的两个特征分量场的梯度模值的分别最小化,因此,整 个算法主要思想即为寻找图像梯度模值最小的区域。
==x y
u I v I ?????
幻灯片 32
四、基于偏微分方程的骨架线提取方法 ● 根据变分原理,解 Euler 方程,得到:
● 根据梯度下降流得到偏微分方程:
u 和 v 的解通过迭代方程的离散数值解来完成。
2
2
2222()() 0()() 0x x y
y x y u u I I I v v I I I μμ??--+=???--+=??
2
22222()() ()() t x x y
t y x y u u u I I I v v v I I I μμ??=?--+???=?--+??
幻灯片 33
四、基于偏微分方程的骨架线提取方法
结合简单图形进行分析
图 1 原图
图 2 初始梯度场
图 3 调整后的梯度场
幻灯片 34
四、基于偏微分方程的骨架线提取方法 应用结果
幻灯片 35
五、基于偏微分方程的图像增强方法 ●直方图均衡化增强
●
原始图像
幻灯片 36
五、基于偏微分方程的图像增强方法
● 基于偏微分方程的直方图均衡化增强 ( Sapiro )
● 其中
● A[? ]代表面积(对于离散图像而言,它代表像素数目)
● 当演化方程达到稳定时,对于任意 且 ,有
即图像的直方图趋于均衡分布。
[]) () () , (:) , (a b L N M a w v u b w v -??=≥≥A
幻灯片
37
直方图均衡化增强后图像
[]) , () , , () , , (0y x L t y x u N M N M t y x u t η-??-?=?)
, () 0, , (y x I y x u =)]
, , () , , (:) , [() , (0t y x u t w v u w v y x ≥A=η]
, 0[, L b a ∈a
b >
五、基于偏微分方程的图像增强方法
(a) 原始图像及其直方图
(b) PDE增强图像及其直方图 幻灯片 38
五、基于偏微分方程的图像增强方法
) (1u F u t =?)
(2u F u t =?) () (21u CF u F u t +=?
(a) 原始图像
(b) PDE同时增强和滤波后的图像 幻灯片 39
[]01) (η-??-?=L N M N M u F ()???
?
?????*?=u u div u u G g u F σ) (2[]{}()????
?????*?+-??-?=?u u div u u G Cg L u N M N M u t ση0
六、基于偏微分方程的其它图像处理方法
二值化 图像分割 边缘检测
幻灯片 40
谢谢!
(a) Initial image; (b) Filtered image
范文四:基于偏微分方程的图像处理试题
《基于偏微分方程的图像处理》试题
一、 考试要求
1. 本次考试为开卷考试, 重点考查学生对借助于 Matlab 的图像处理的编程 和实际运用能力;
2. 题目类型为书写各种图像处理方法的 Matlab 程序, 并对某一具体图像运 行程序给出运行结果;
3. 提交的试题答卷中每一问题均应有 Matlab 源程序和运行结果两部分, 运 行结果应为图像形式;
4. 答卷必须使计算机打印稿。
二、 考试题目
1. 图像的基本操作
(1)把一幅彩色图像分解为 R 、 G 、 B 三副单色图像;
(2)把一幅灰度图像分别沿 x 轴和 y 轴做反射,扩展为四倍大小;
2. 把一幅灰度图像的像素值都变换为原来的 1/2使图像质量变差,然后利 用 Matlab 图像处理工具箱中的直方图均衡化函数 histeq 对图像进行增强,输出 原图像、质量变差图像和增强后的图像以及它们的直方图。
3. 图像的水平集、水平线和等高线的显示和处理
(1)显示一幅灰度图像在某一水平的水平集、水平线和等高线;
(2)显示图像并显示它的一族水平线 (要求阀值 λ为 32, 64, 96, 128, 160, 192, 224) 。
4. 显示一幅灰度图像及其加高斯白噪声 (01
. 0
, 02=
=σ
μ) 和椒盐噪声 (噪 声密度 02
. 0
=
d )后的图像及直方图。
5. 分别利用算术平均滤波、 加权的线性光滑和热传导方程滤波方法对 4题 中得到的两幅噪声图像进行去噪处理。
6. 分别利用反锐化掩蔽滤波方法和基于热传导方程的 Gabor 锐化方法对 5题中利用热传导方程滤波方法得到的两幅去噪图像进行清晰化(锐化)处理。
范文五:基于偏微分方程的图像处理
《基于偏微分方程的图像处理》
1( 图像的基本操作
(1) 把一幅彩色图像分解为R、G、B三副单色图像;
clear;
image_I=imread('rgbtest2.bmp'); subplot(2,2,1);
imshow(image_I);
matrix_R(:,:,1)=image_I(:,:,1); matrix_R(:,:,2)=0;
matrix_R(:,:,3)=0;
subplot(2,2,2);
imshow(matrix_R);
title('R分量');
matrix_G(:,:,2)=image_I(:,:,2); matrix_G(:,:,1)=0;
matrix_G(:,:,3)=0;
subplot(2,2,3);
imshow(matrix_G);
title('G分量');
matrix_B(:,:,3)=image_I(:,:,3); matrix_B(:,:,1)=0;
matrix_B(:,:,2)=0;
subplot(2,2,4);
imshow(matrix_B);
title('B分量');
R分量
G分量B分量
(2) 把一幅灰度图像分别沿x轴和y轴做反射,扩展为四倍大小;
clear;
Image=imread('graytest2.bmp'); imshow(Image);
[m,n]=size(Image);
image11=Image;
for i=1:m
for j=1:n
image12(i,j)=image11(i,n-j+1);
end
end
for j=1:n
for i=1:m
image21(i,j)=image11(m-i+1,j);
image22(i,j)=image12(m-i+1,j);
end
end
image1=[image11,image12];
image2=[image21,image22];
image=[image1;image2];
figure
imshow(image)
原图像:
扩展图像:
2( 把一幅灰度图像的像素值都变换为原来的1/2使图像质量变
差,然后利用Matlab图像处理工具箱中的直方图均衡化函数histeq
对图像进行增强,输出原图像、质量变差图像和增强后的图像以及它
们的直方图。
clear;
Image=imread('graytest2.bmp'); Image1=0.5*double(Image);
subplot(3,2,1);
imshow(Image);
subplot(3,2,2);
imhist(Image);
subplot(3,2,3);
imshow(uint8(Image1));
image1=uint8(Image1);
imwrite(image1,'graytest2_1.bmp') subplot(3,2,4);
imhist(image1);
Image_hist=histeq(image1);
subplot(3,2,5);
imshow(Image_hist);
imwrite(Image_hist,'graytest2_2.bmp') subplot(3,2,6);
imhist(Image_hist);
500
0
0100200
1000
500
0
0100200
1000
0
0100200
3( 图像的水平集、水平线和等高线的显示和处理 (1) 显示一幅灰度图像在某一水平的水平集、水平线和等高线; function level(image_name,N) %求一图像的水平集、线
%输入参数:image_name,,,图像文件名
% :N,,,,,,,,阀值(0,255)
if nargin<1>1>
disp('请输入文件名!!!');
return;
elseif nargin<2>2>
N=128;
end
image_input=imread(image_name); subplot(2,2,1);
imshow(image_input);
title('原图像');
[size_m,size_n]=size(image_input); matrix_temp=zeros(size_m,size_n); % 求水平集
for row=1:size_m
for col=1:size_n
if image_input(row,col) > N
matrix_temp(row,col)=1;
end
end
end
subplot(2,2,2);
imshow(matrix_temp,[]);
title('图像的水平集');
imwrite(matrix_temp,'level_setzhan.bmp'); % 图像矩阵扩展 赋值 便于处理边界
matrix_ex=zeros(size_m+2,size_n+2); for row=1:size_m
for col=1:size_n
matrix_ex(row+1,col+1)=matrix_temp(row,col);
end
end
% 四邻域反填充 得水平线
matrix_new=matrix_temp;
for row=2:size_m+1
for col=2:size_n+1
if matrix_ex(row+1,col)==0 & matrix_ex(row-1,col)==0 &
matrix_ex(row,col+1)==0 & matrix_ex(row,col-1)==0
matrix_new(row-1,col-1)=1;
end
end
end
subplot(2,2,3);
imshow(matrix_new,[]);
title('图像的水平线');
%imwrite(matrix_new,'level_line.bmp'); % 求图像的等高线
contour=zeros(size_m,size_n); for row=1:size_m
for col=1:size_n
if image_input(row,col)==N
contour(row,col)=1;
end
contour(row,col)=1-contour(row,col);
end
end
subplot(2,2,4);
imshow(contour,[]);
title('图像的等高线');
%imwrite(contour,'contour.bmp');
function level_line_set(image_name) % 求一图像的阀值N取各值所对应的水平线的叠加
% 输入参数:image_name,,,图像文件名
image_input=imread(image_name); %不变量
[size_m,size_n]=size(image_input); %不变量
matrix_out=zeros(size_m,size_n); %循环中不需重新初始化的变量 % 输出矩阵初始化(白)
for row=1:size_m
for col=1:size_n
matrix_out(row,col)=1;
end
end
matrix_ex=zeros(size_m+2,size_n+2); % 扩展矩阵
subplot(1,2,1);
imshow(image_input);
title('原图像');
for N=1:32:255 % N为相应阀值
matrix_temp=zeros(size_m,size_n); % 重新初始化 (黑)
for row=1:size_m
for col=1:size_n
if image_input(row,col) >=N
matrix_temp(row,col)=1; % 求水平集,,,,,
end
end
end
% 图像矩阵扩展 赋值 便于处理边界
for row=1:size_m
for col=1:size_n
matrix_ex(row+1,col+1)=matrix_temp(row,col);
end
end
% 四邻域(黑区域填白)反填充 得水平线
matrix_new=matrix_temp;
for row=2:size_m+1
for col=2:size_n+1
if matrix_ex(row+1,col)==0 & matrix_ex(row-1,col)==0 &
matrix_ex(row,col+1)==0 & matrix_ex(row,col-1)==0
matrix_new(row-1,col-1)=1; % 填白
end
end
end
matrix_out=min(matrix_out,matrix_new); %各级水平线叠加 end
matrix_out(1,1)=0;
matrix_out(2,1)=1;
subplot(1,2,2);
imshow(matrix_out,[]);
title('图像部分水平集的叠加');
level('graytest2.bmp',100);
原图像图像的水平集
图像的水平线图像的等高线
(2) 显示图像并显示它的一族水平线(要求阀值为32, 64, 96, 128, ,
160, 192, 224)。
function level_line_set(image_name) % 求一图像的阀值N取各值所对应的水平线的叠加
% 输入参数:image_name,,,图像文件名
image_input=imread(image_name); %不变量
[size_m,size_n]=size(image_input); %不变量
matrix_out=zeros(size_m,size_n); %循环中不需重新初始化的变量 % 输出矩阵初始化(白)
for row=1:size_m
for col=1:size_n
matrix_out(row,col)=1;
end
end
matrix_ex=zeros(size_m+2,size_n+2); % 扩展矩阵
subplot(1,2,1);
imshow(image_input);
title('原图像');
for N=1:32:255 % N为相应阀值(要求阀值为32, 64, 96, 128, 160, 192, ,
224)。
matrix_temp=zeros(size_m,size_n); % 重新初始化 (黑)
for row=1:size_m
for col=1:size_n
if image_input(row,col) >=N
matrix_temp(row,col)=1; % 求水平集,,,,,
end
end
end
% 图像矩阵扩展 赋值 便于处理边界
for row=1:size_m
for col=1:size_n
matrix_ex(row+1,col+1)=matrix_temp(row,col);
end
end
% 四邻域(黑区域填白)反填充 得水平线
matrix_new=matrix_temp;
for row=2:size_m+1
for col=2:size_n+1
if matrix_ex(row+1,col)==0 & matrix_ex(row-1,col)==0 &
matrix_ex(row,col+1)==0 & matrix_ex(row,col-1)==0
matrix_new(row-1,col-1)=1; % 填白
end
end
end
matrix_out=min(matrix_out,matrix_new); %各级水平线叠加 end
matrix_out(1,1)=0;
matrix_out(2,1)=1;
subplot(1,2,2);
imshow(matrix_out,[]);
title('图像部分水平集的叠加');
原图像图像部分水平集的叠加
原图像图像部分水平集的叠加原图像图像部分水平集的叠加
原图像图像部分水平集的叠加
原图像图像部分水平集的叠加
原图像图像部分水平集的叠加
2,,0,,,0.014( 显示一幅灰度图像及其加高斯白噪声()和椒盐
噪声(噪声密度)后的图像及直方图。 d,0.02
function noise(filename)
Image=imread(filename);
subplot(2,2,1);
imshow(Image,[]); % 原图像
title('原图像');
noise_g=imnoise(Image,'gaussian'); % 增加高斯白噪声
subplot(2,2,2);
imshow(noise_g,[]);
%imwrite(noise_g,'noise_g.bmp') title('高斯白噪声');
noise_s=imnoise(Image,'salt & pepper');
subplot(2,2,3);
imshow(noise_s,[]);
title('黑白象素点噪声(椒盐)');
%imwrite(noise_s,'noise_s.bmp') noise_p=imnoise(Image,'speckle'); subplot(2,2,4);
imshow(noise_p,[]);
%imwrite(noise_p,'noise_p.bmp')
title('乘积性噪声');
Image=imread('graytest2.bmp'); subplot(3,2,1);
imshow(Image,[]); % 原图像
title('原图像');
subplot(3,2,2);
imhist(Image);
noise_g=imnoise(Image,'gaussian',0,0.01); % 增加高斯白噪声
subplot(3,2,3);
imshow(noise_g,[]);
title('高斯白噪声');
imwrite(noise_g,'graytest2_g.bmp'); subplot(3,2,4);
imhist(noise_g);
noise_s=imnoise(Image,'salt & pepper',0.02);
subplot(3,2,5);
imshow(noise_s,[]);
title('黑白象素点噪声(椒盐)');
imwrite(noise_s,'graytest2_s.bmp') subplot(3,2,6);
imhist(noise_s);
原图像
500
0
0100200
高斯白噪声
500
0
0100200
黑白象素点噪声(椒盐)
500
0
0100200
5( 分别利用算术平均滤波、加权的线性光滑和热传导方程滤波
方法对4题中得到的两幅噪声图像进行去噪处理。
算术平均滤波:
function aver_filter( Image_name,N,out_filename )
%非线性平滑滤波器G1 平均
%输入参数 文件名 N为模板大小(正奇数)
%读取图像,,,,,,,,,,,,,
if nargin<3>3>
disp('输入参数错误~~~');
return;
end
image=imread(Image_name);
if isrgb(image)
image=rgb2gray(image);
end
% 图像扩展,,,,,,,,,,,,,,
[size_m,size_n]=size(image); image_ex=zeros(size_m+N-1,size_n+N-1); % 赋值
for row=1:size_m
for col=1:size_n
image_ex(row+(N-1)/2,col+(N-1)/2)=image(row,col);
end
end
% 对每个象素,,,,,,,,,,,,,,,,,,
pattern_plate=zeros(N,N); %模板
image_new=zeros(size_m,size_n); %滤后图像矩阵
for row=1:size_m
for col=1:size_n
% 取模板的元素
for row_p=1:N
for col_p=1:N
pattern_plate(row_p,col_p)=image_ex(row+row_p-1,col+col_p-1);
end
end
% 求模板的平均值得滤后图像矩阵
image_new(row,col)=mean2(pattern_plate);
end
end
% 输出,,,,,,,,,,,,,,,
imshow(image_new,[]);
title('滤后图像');
imwrite( uint8(image_new),out_filename ) 加权线性光滑:
function weight_filter( Image_name,flag,out_filename )
% 用各模板进行去噪和锐化
%输入参数 Image_name 文件名
% flag 模板类型标志1~4
if nargin<3>3>
disp('请按参数格式输入参数~~~');
return;
end
if flag~=1 & flag~=2 & flag~=3 & flag~=4
disp('参数flag输入错误~~~');
return;
end
N=3;
pattern_plate=zeros(N,N); %模板
% 各类模板
if flag==1
pattern_plate=[1/9 1/9 1/9; 1/9 1/9 1/9; 1/9 1/9 1/9];
elseif flag==2
pattern_plate=[1/16 1/8 1/16; 1/8 1/4 1/8; 1/16 1/8 1/16]; % 平滑滤波器 elseif flag==3
pattern_plate=[0 -1 0; -1 5 -1; 0 -1 0]; % 反锐化掩蔽滤波器 elseif flag==4
A=1.7;
pattern_plate=[0 -1 0; -1 A+5 -1; 0 -1 0]; % 高提升滤波器 end
% 读取图像,,,,,,,,,,
image_I=imread(Image_name);
if isrgb(image_I)
image_I=rgb2gray(image_I); end
subplot(1,2,1);
imshow(image_I,[]);
title('原图像');
%图像扩展,,,,,,,,,,,,,,
[size_m,size_n]=size(image_I); image_ex=zeros(size_m+N-1,size_n+N-1); %赋值
for row=1:size_m
for col=1:size_n
image_ex(row+(N-1)/2,col+(N-1)/2)=image_I(row,col);
end
end
%对每个象素,,,,,,,,,,,,,,,,,, temp_plate=zeros(N,N); %模板
image_new=zeros(size_m,size_n); %滤后图像矩阵 for row=1:size_m
for col=1:size_n
%取模板的元素
for row_p=1:N
for col_p=1:N
temp_plate(row_p,col_p)=image_ex(row+row_p-1,col+col_p-1);
end
end
image_new(row,col)=sum(sum(temp_plate.*pattern_plate));
end
end
%输出,,,,,,,,,,,,,,,
subplot(1,2,2);
imshow(uint8(image_new)); title('滤波后图像');
imwrite(uint8(image_new),out_filename);
热传导方程滤波:
function Heat_Equation( image_name,t,out_filename )
% 热传导方程 [ Ut=U0+t*Delta(U0) ]
% image_name : 原图像文件名
% t : 迭代次数
% out_filename: 输出文件名
if nargin<3>3>
disp('请按参数格式输入参数~~~');
return;
end
image_I=imread(image_name); subplot(1,2,1);
imshow(image_I);
title('原图像');
mkdir('Heat_Eq'); % 新建文件夹以存放过程文件 cd('Heat_Eq');
[size_r,size_c]=size(image_I); image_I=double(image_I); if(t>0)
N=t/0.1;
else
N=(-t)/0.1% 每次叠代的步长为0.1
end
for index=1:N
image_ex=matrix_expand(image_I); % 边界拓展
diff_two_order=zeros(size_r,size_c);
for row=2:size_r+1
for col=2:size_c+1
diff_two_order(row-1,col-1)=-4*image_ex(row,col)+image_ex(row-1,col)+image_ex(row+1,col)
+image_ex(row,col-1)+image_ex(row-1,col+1);
end
end
if(t>0)
image_I=image_I+0.1*diff_two_order;
else
image_I=image_I-0.1*diff_two_order;
end
imwrite( uint8(image_I),strcat('Heat_Eq_',num2str(index),'.bmp'));
end
cd('..')
subplot(1,2,2);
imshow(uint8(image_I));
if t>0
title('热传导方程光滑后图像');
else
title('Gabor锐化后的图像');
end
imwrite( uint8(image_I),out_filename ); % ,,,,,,,,,,,,,,,,,,,,,,,,,end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%
function matrix_ex=matrix_expand(matrix) % 对矩阵进行延拓
[size_r,size_c]=size(matrix);
matrix_ex=zeros(size_r+2,size_c+2);
% 中
for row=1:size_r
for col=1:size_c
matrix_ex(row+1,col+1)=matrix(row,col);
end
end
% 左,右
for row=1:size_r
matrix_ex(row+1,1)=matrix(row,1);
matrix_ex(row+1,size_c+2)=matrix(row,size_c);
end
% 上,下
for col=1:size_c
matrix_ex(1,col+1)=matrix(1,col);
matrix_ex(size_r+2,col+1)=matrix(size_r,col);
end
matrix_ex(1,1)=matrix(1,1);
matrix_ex(1,size_c+2)=matrix(1,size_c);
matrix_ex(size_r+2,1)=matrix(size_r,1);
matrix_ex(size_r+2,size_c+2)=matrix(size_r,size_c);
% ,,,,,,,,,,,,,,,,,,,,,,,,,,
运行命令:
aver_filter('graytest2_g.bmp',5,'averfilter_g.bmp') figure
aver_filter('graytest2_s.bmp',5,'averfilter_s.bmp') figure
weight_filter('graytest2_g.bmp',2,'weightfilter_g.bmp') figure
weight_filter('graytest2_s.bmp',2,'weightfilter_s.bmp') figure
Heat_Equation('graytest2_g.bmp',3,'Heat_Equation_g.bmp') figure
Heat_Equation('graytest2_s.bmp',3,'Heat_Equation_s.bmp') 算术平均滤波:
滤后图像
滤后图像
加权的线性光滑滤波:
原图像滤波后图像
原图像滤波后图像
热传导方程滤波:
原图像热传导方程光滑后图像
原图像热传导方程光滑后图像
转载请注明出处范文大全网 » 基于偏微分方程的图像处理试题