📄 s1.m
字号:
%============================================s1.m=============================================
%Step1:Sobel算子求图像梯度
%定义Sobel行算子和列算子
Hr = 0.25 * [-1 -2 -1;0 0 0;1 2 1];
Hc = 0.25 * [1 0 -1;2 0 -2;1 0 -1];
I = imread('pipe.jpg'); %将图像读入到I中
I = double(I); %将I转化为double型,方便卷积
%分别对图像的RGB三个值求行梯度和列梯度
G_X_R = conv2(I(:,:,1),Hr);
G_Y_R = conv2(I(:,:,1),Hc);
G_X_G = conv2(I(:,:,2),Hr);
G_Y_G = conv2(I(:,:,2),Hc);
G_X_B = conv2(I(:,:,3),Hr);
G_Y_B = conv2(I(:,:,3),Hc);
%综合6个分量计算图像梯度
Gxx = G_X_R.^2 + G_X_G.^2 + G_X_B.^2;
Gyy = G_Y_R.^2 + G_Y_G.^2 + G_Y_B.^2;
Gxy = G_X_R.*G_Y_R + G_X_G.*G_Y_G + G_X_B.*G_Y_B;
theta = atan(2 * Gxy./(Gxx - Gyy)) / 2;
G = sqrt(abs(Gxx + Gyy + (Gxx - Gyy).*cos(2 * theta) + 2*Gxy.*sin(2 * theta)) / 2);
G = uint8(G); %将G转化为uint8型,方便输出
%=========================================s1.m(end)==========================================
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -