拉普拉斯变换的应用
一·拉普拉斯变换的应用
拉普拉斯变换在许多领域中都有着重要的作用,在工程学上应用拉普拉斯变换解常变量齐次微分方程,可以将微分方程化为代数方程,使问题得以解决。在工程学上,拉普拉斯变换的重大意义在于:将一个信号从时域上,转换为复频域(s域)上来表示;在线性系统,控制自动化上都有广泛的应用。在计算机图像处理方面,拉普拉斯变换在Matlab上的拉普拉斯算子在图像处理上有很强的应用性,例如:在图像的边缘检测、对图像进行拉普拉斯锐化、对图像进行滤波等。
二·拉普拉斯变换在图像处理方面的应用
计算机进行图像处理一般有两个目的: (1)产生更适合人观察和识别的图像。
(2)希望能由计算机自动识别和理解图像。数字图像的边缘检测是图像分割、目标区域的识别、区域形状提取等图像分析领域的重要基础,图像处理和分析的第一步往往就是边缘检测。
物体的边缘是以图像的局部特征不连续的形式出现的,也就是指图像局部亮度变化最显著的部分,例如灰度值的突变、颜色的突变、纹理结构的突变等,同时物体的边缘也是不同区域的分界处。图像边缘有方向和幅度两个特性,通常沿边缘的走向灰度变化平缓,垂直于边缘走向的像素灰度变化剧烈。根据灰度变化的特点,图像边缘可分为阶跃型、房顶型和凸缘型。
首先要研究图像边缘检测,就要先研究图像去噪和图像锐化。前者是为了得到飞更真实的图像,排除外界的干扰,后者则是为我们的边缘检测提供图像特征更加明显的图片,即加大图像特征。早期的经典算法有边缘算子法、曲面拟合法、
模版匹配法等。经典的边缘检测算法是对原始图像中像素的某小领域米构造边缘检测算子,常用的边缘检测算子有Roberts算子、Sobel算子、Laplacian算子、Canny算子等。
三·应用步骤
用拉普拉斯变换进行数字图像处理,需要借用计算机上的Matlab软件去进行程序编码和运行来实现。下边是应用步骤:
(一)、选好需要进行处理的照片,用拉普拉斯算子实现数字图像的边缘检测。保存检测后图像进行分。
(二)、用Matlab软件编辑代码编写拉普拉斯算子对图片进行处理的程序。(三)、用拉普拉斯算子得到的图像处理后的一系列结果。
四·用MATLAB实现步骤
(1)打开计算机,安装和启动MATLAB程序。
(2)窗口左边的current folder下的就是读取图片的默认路径,图片放置于程序
所保存的文件夹内。
(3)调用MATLAB工具箱中的拉普拉斯算子编写函数程序。
(4)调入、显示获得的图像,图像存储格式应为“.jpg”。
(5)对该程序进行编译,检在错误并纠正。
(6)运行,并显示结果,比较差异。
五·利用MATLAB语言编写的数字图像处理的源代码
i=imread('img.jpg'); % 读入图片
i1=rgb2gray(i); % 把rgb图像转换成灰度图像
bw1=edge(i1,'log',0.005); % 做阈值为0.001的高斯—拉普拉斯(Log)算法figure(1),imshow(i); % 显示原图
title('原图像');
figure(2),imshow(i1); % 显示灰度图像
title('灰度图像');
figure(3),imshow(bw1); % 显示高斯—拉普拉斯(Log)边缘检测后的图title('边缘检测后图像');
i=imread('img.jpg');
figure(4),
subplot(1,3,1);
imshow(i);
title('原始图像'); % 显示原始图像
J=double(i); % 将图像转化为归一化的double类图像
K=[0 -1 0 % 拉普拉斯运算模板
-1 4.5 -1
0 -1 0] ;
L=imfilter(J,K,'replicate'); % 图像进行滤波
subplot(1,3,2);
imshow(L,[]);
title('拉普拉斯算子增强图像');
H = fspecial('unsharp');
sharpened = imfilter(i,H,'replicate'); % 对图像进行拉普拉斯锐化
subplot(1,3,3);
imshow(sharpened);
title('锐化处理后图像');
k=[1 1 1;1 -8 1;1 1 1]; % 对角线的中心为8的拉普拉斯运算模板
L1=J-imfilter(J,k,'replicate'); % 用原图减去此滤波结果(以还原失去的灰度色调)figure(5);
subplot(1,2,1);
imshow(L1,[]); % 显示图像
title('中心为8的拉普拉斯算子');
k=[1 1 1;1 -6 1;1 1 1]; % 对角线的中心为8的拉普拉斯运算模板
L2=J-imfilter(J,k,'replicate'); % 用原图减去此滤波结果(以还原失去的灰度色调)subplot(1,2,2);
imshow(L2,[]);
title('中心为6的拉普拉斯算子');
I_origin = imread('girl.jpg'); % 读入图片
[size_x, size_y, size_z] = size(I_origin); % 读取图像的大小
if size_x > 1080 % 对图像进行适当的压缩
I_origin2 = imresize(I_origin, 1080 / double(size_x));
else
I_origin2 = I_origin;
end
% ---- 方法一% 先将彩色图像转化为灰度图像然后进行边缘检测I_gray = rgb2gray(I_origin2); % 将图像转化为灰度图
figure('Name', '对灰度图的边缘检测');
subplot(1, 2, 1), imshow(I_origin2), title('原图');
subplot(1, 2, 2), imshow(I_gray), title('灰度图');
Edge_gray = edge(I_gray, 'log'); % 对灰度图像进行边缘检测
% ---- 方法二%将彩色图分解为RGB分量再进行边缘检测、、、% ---------------提取RGB分量并显示
Instance_R = I_origin2(:, :, 1);
Instance_G = I_origin2(:, :, 2);
Instance_B = I_origin2(:, :, 3);
figure('Name', '原图的RGB分量');
subplot(2, 2, 1), imshow(I_origin2), title('Origin');
subplot(2, 2, 2), imshow(Instance_R), title('Vector R');
subplot(2, 2, 3), imshow(Instance_G), title('Vector G');
subplot(2, 2, 4), imshow(Instance_B), title('Vector B');
% ---------------对RGB分量进行边缘检测并合并
Edge_R = edge(Instance_R, 'log');
Edge_G = edge(Instance_G, 'log');
Edge_B = edge(Instance_B, 'log');
rgb = im2uint8(cat(3, Edge_R, Edge_G, Edge_B));
figure('Name', 'RGB分量的边缘检测');
subplot(2, 2, 1), imshow(I_origin2), title('Origin');
subplot(2, 2, 2), imshow(Edge_R), title('Laplace Vector R');
subplot(2, 2, 3), imshow(Edge_G), title('Laplace Vector G');
subplot(2, 2, 4), imshow(Edge_B), title('Laplace Vector B');
figure('Name', '两种检测方法的对比');
subplot(1, 2, 1), imshow(Edge_gray), title('方法一');
subplot(1, 2, 2), imshow(rgb), title('方法二');
% 灰度图的边缘检测与彩色图分别除去RGB分量的边缘检测对比
figure('Name', 'image_sub1');
subplot(2, 2, 1), imshow(Edge_gray), title('Gray');
subplot(2, 2, 2), imshow(cat(3, zeros(size(Edge_R)), Edge_G, Edge_B)), title('Without R');
subplot(2, 2, 3), imshow(cat(3, Edge_R, zeros(size(Edge_G)), Edge_B)), title('Without G');
subplot(2 ,2, 4), imshow(cat(3, Edge_R, Edge_G, zeros(size(Edge_B)))), title('Without B');
% 对彩色图执行RGB边缘检测后取灰度化与灰度化边缘检测对比
figure('Name', 'image_sub2');
subplot(1, 2, 1), imshow(Edge_gray), title('Gray');
subplot(1, 2, 2), imshow(rgb2gray(rgb)), title('RGB to Gray');
六·MATLAB程序文件夹内容
七·实验结果
(一)对原图先转为灰度图像然后用拉普拉斯算子进行边缘检测。
(二)用拉普拉斯算子增强图像、对图像进行锐化,对比中心不同的拉普拉斯运算模板对图像增强后效果。
(三)、先对原图转化出一份灰度图,用来对灰度图和原彩色图像分别进行边缘检测后图像对比、提取原图像的RGB分量。
(四)、对提取RGB分量后的图像边缘检测、两种不同检测方法检测后图像进行对比。
(五)、用灰度图进行边缘检测后图像和提取RGB后图像进行减不同分量后的
边缘检测后图像对比,对灰度图和彩色图分别边缘检测后图像对比。