700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 数字图像处理 拉普拉斯(Laplace)变换 边缘检测算子(二阶导 sobel)变换 锐化(

数字图像处理 拉普拉斯(Laplace)变换 边缘检测算子(二阶导 sobel)变换 锐化(

时间:2022-04-08 15:29:40

相关推荐

数字图像处理 拉普拉斯(Laplace)变换 边缘检测算子(二阶导 sobel)变换 锐化(

程序代码:

clear%拉普拉斯变换A = imread("Moon.jpg");Laplace1(A);%Soble变换B = imread("lens.jpg");Soble1(B);%锐化C = imread("rabbit.jpg");C = C(:,:,1);%st = 3,k = 1.5Sharpen1(C,3,1.5);%st = 3,k = 3Sharpen1(C,3,3);%st = 5,k = 1.5Sharpen1(C,5,1.5);%st = 5,k = 3Sharpen1(C,5,3);

一、Laplace变换

(1)Figure

(2)Code

function [g_1,g_2] = Laplace1(A)%拉普拉斯变换%预先留出输出图像A_double = double(A);g_1 = A;g_2 = A;[ra,ca] = size(A);%中心为负,最后应相减%h1是x轴和y轴方向的二阶导数%h2是四个方向的二阶导数h1 = [0,1,0;1,-4,1;0,1,0];h2 = [1,1,1;1,-8,1;1,1,1];st = 3;for A_i = (st+1)/2:ra-(st+1)/2+1for A_j = (st+1)/2:ca-(st+1)/2+1Hxy_1 = A_double(A_i-(st-1)/2:A_i+(st-1)/2,A_j-(st-1)/2:A_j+(st-1)/2).*h1;Hxy_2 = A_double(A_i-(st-1)/2:A_i+(st-1)/2,A_j-(st-1)/2:A_j+(st-1)/2).*h2;g_1(A_i,A_j) = sum(Hxy_1(:));g_2(A_i,A_j) = sum(Hxy_2(:));endend%对于超出0-255范围的值应加以归0或归255g_1 = uint8(A-g_1);g_1(g_1<0) = 0;g_1(g_1>255) = 255;g_2 = uint8(A-g_2);g_2(g_2<0) = 0;g_2(g_2>255) = 255;figure,subplot(131),imshow(A),title("原图");subplot(132),imshow(g_1),title("模板一锐化");subplot(133),imshow(g_2),title("模板二锐化");end

二、Soble变换

(1)Figure

(2)Coded

function [g_1,g_x,g_y] = Soble1(A)%soble边缘检测%单层图像的检测%g_1是xy方向完整的检测%g_x\g_y分别是x和y方向的检测A_double = double(A);g_x = A_double;g_y = A_double;[ra,ca] = size(A_double);hx = [-1,-2,-1;0,0,0;1,2,1];hy = [-1,0,1;-2,0,2;-1,0,1];st = 3;for A_i = (st+1)/2:ra-(st+1)/2+1for A_j = (st+1)/2:ca-(st+1)/2+1Hxy_x = A_double(A_i-(st-1)/2:A_i+(st-1)/2,A_j-(st-1)/2:A_j+(st-1)/2).*hx;Hxy_y = A_double(A_i-(st-1)/2:A_i+(st-1)/2,A_j-(st-1)/2:A_j+(st-1)/2).*hy; g_x(A_i,A_j) = sum(Hxy_x(:));g_y(A_i,A_j) = sum(Hxy_y(:));endendg_x = uint8(g_x);g_y = uint8(g_y);g_1 = g_x+g_y;g_1(g_1<0) = 0;g_1(g_1>255) = 255;figure,subplot(221),imshow(A),title("原图");subplot(222),imshow(g_x),title("x方向");subplot(223),imshow(g_y),title("y方向");subplot(224),imshow(g_1),title("soble变换后图片");end

三、锐化

(1)Figure

%st = 3,k = 1.5

%st = 3,k = 3

%st = 5,k = 1.5

%st = 5,k = 3

(2)Code

function [A_Out,Mod,A_Med] = Sharpen1(A,st,k)%锐化%步骤:先将原图钝化,原图-钝化图片=反锐化模板,原图+k*反锐化模板 = 输出图像%st可选,k是锐化系数A_Med = AverageFilter1(A,st);Mod = A-A_Med;A_Out = A+k.*Mod;figure,subplot(221),imshow(A),title('原图');subplot(222),imshow(A_Out),title("锐化图像st = "+st+" K = "+k);subplot(223),imshow(A_Med),title("均值滤波后图片st = "+st+" K = "+k);subplot(224),imshow(Mod),title("反锐化模板st = "+st+" K = "+k);end

###

数字图像处理 拉普拉斯(Laplace)变换 边缘检测算子(二阶导 sobel)变换 锐化(反锐化模板锐化) 算法实现及效果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。