基于matlab的laplace图像处理代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于matlab的laplace图像处理代码
主函数
function mainRGB();
clear
clc
A=imread('1.jpg');%读入图像
B=A;
imshow(A);title('原图像');
R=A(:,:,1);%RGB图像的R分量
G=A(:,:,2);%RGB图像的G分量
B=A(:,:,3);%RGB图像的B分量
figure; imshow(R);title('R');
figure; imshow(G);title('G');
figure; imshow(B);title('B');
figure('Position',[100 100 850 450],'Name','RGB模型下的锐化','NumberTitle','off' );; subplot(231), imshow(A),title('RGB图像');%读出原图像和Laplace算子高提升滤波的图像rSharp=U23(R);
subplot(232),imshow(rSharp),title('R图像');
gSharp=U23(G);
subplot(234),imshow(gSharp),title('G图像');
bSharp=U23(B);
subplot(235),imshow(bSharp),title('B图像');
A(:,:,1)=rSharp;
A(:,:,2)=gSharp;
A(:,:,3)=bSharp;
subplot(133),imshow(A),title('RGB图锐化结果图');
figure;imshow(A);title('锐化后的图像');
function N=U23(M)%Laplace算子作图像锐化函数
[dep1,wide1]=size(M);
a1=double(M);
b1=size(M);
s1=ones(size(b1)); %取同图像同大小的矩阵s1,s2
s2=ones(size(b1));
new_image1=ones(size(b1)); %取同图像同大小的矩阵new_image为输出图像的矩阵sx1=[ 0 1 0;0 -2 0 ; 0 1 0]; %Laplace算子x方向
sy1=[0 0 0;1 -2 1;0 0 0]; %Laplace算子y方向
for i=2:dep1-1 %利用Laplace算子作图像锐化
for j=2:wide1-1
x1(i,j)=0*a1(i-1,j-1) +1*a1(i-1,j) +0*a1(i-1,j+1)+0*a1(i,j-1)-2* a1(i,j) +0*a1(i,j+1)+0*a1(i+1,j-1)+a1(i+1,j)+0*a1(i+1,j+1);
y1(i,j)=0*a1(i-1,j-1)+0*2*
a1(i-1,j)+0*a1(i-1,j+1)+1*a1(i,j-1)-2*a1(i,j)+1*a1(i,j+1)+0*a1(i+1,j-1) +0*a1(i+1,j) +0*a1(i+1,j+1);
%s(i,j)=a(i,j)-x(i,j)-y(i,j);
s1(i,j)=a1(i,j)-x1(i,j)-y1(i,j);
if(s1(i,j)>0.5) %s1(i,j)的阈值判定
s1(i,j)=1;
end
new_image1(i,j)=a1(i,j)+s1(i,j);
end
end
for i=2:dep1-1 %对边缘进行操作
new_image1(i,1)=new_image1(i,2);
new_image1(i,wide1)=new_image1(i,wide1-1);
end
new_image1(1,:)=new_image1(2,:);
new_image1(dep1,:)=new_image1(dep1-1,:);
N=new_image1;