资源简介
关于sobel算子的算法,分为x和y方向的梯度,看完可以对sobel有个很好的了解
代码片段和文件信息
% function [gra_xgra_y] = grad(I)
%%%读入图像并预处理
clear all;
close all;
f=imread(‘lenna_gray.jpg‘);
f=rgb2gray(f);
I=double(f);
[m n] = size(I);
gra_x = zeros(mn);
gra_y = zeros(nn);
%%%求图像四个角x和y方向梯度
gra_x(11) = +2*I(21) + I(22);
gra_x(1n) = +I(2n-1) + 2*I(2n);
gra_x(m1) = -2*I(m-11) - I(m-12);
gra_x(mm) = -I(m-1n-1) - 2*I(m-1n);
gra_y(11) = +2*I(12) + I(22);
gra_y(1n) = -2*I(1n-1)-I(2n-1);
gra_y(m1) = +I(m-12)+2*I(m2);
gra_y(mn) = -I(m-1n-1)-2*I(mn-1);
%%%求图像最右边和最左边一列元素的x和y方向梯度
for j=2:n-1
gra_x(1j) = +I(2j-1)+2*I(2j)+I(2j+1);
gra_x(mj) = -I(m-1j-1)-2*I(m-1j) - I(m-1j+1);
gra_y(1j) = -2*I(1j-1)-I(2j-1)+2*I(1j+1)+I(2j+1);
gra_y(mj) = -I(m-1j-1)-2*I(mj-1)+2*I(m-1j+1)+I(mj+1);
end
%%%求图像最上边和最下边一列元素的x和y方向梯度
fo
- 上一篇:广义预测控制说明文档
- 下一篇:数字图像处理MATLAB版工具箱
评论
共有 条评论