⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s1.m

📁 利用sobel算子和霍夫变换求出图像的边缘
💻 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 + -