利用Sobel算子,求梯度图像
学习了Sobel算子,总结一下
上图中的模板为Sobel算子,之所以其中的系数是这样的,是因为和求他们偏导邻域的近似形式有关,具体请看书。
自己编写的利用Sobel算子,求梯度图像的matlab程序
%%%%%%%%%%%%%%%自编Sobel算子,求梯度图像%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%by席小贱 2017.12.15%%%%%%%%%%%%%%%%%%
clear;
close all;
%% 生成灰度图像
rgb_image = imread('F:\matlab\pic.jpg'); %写入RGB原图
gray_image = rgb2gray(rgb_image); %将RGB转灰度图像
[row,col] = size(gray_image); %正x轴向下延伸,正y轴向右延伸.size函数所对应的(row,col)分别是x行,y列
%% 原灰度图像一圈扩展1个像素
double_image = double(gray_image);
big_image = zeros(row+2,col+2);
for i = 2:row+1for j = 2:col+1big_image(i,j) = double_image(i-1,j-1);end
end
%% 设置Sobel算子x方向模板
Hx = [-1,-2,-1;0,0,0;1,2,1];
%% 设置Sobel算子y方向模板
Hy = Hx';
%% 编程序实现x方向梯度计算
gradx_image = zeros(row+2,col+2);
grady_image = zeros(row+2,col+2);
W = zeros(3,3);%移动窗口
for i = 1:rowfor j = 1:col%模板移动窗口W = [big_image(i,j),big_image(i,j+1),big_image(i,j+2);big_image(i+1,j),big_image(i+1,j+1),big_image(i+1,j+2);big_image(i+2,j),big_image(i+2,j+1),big_image(i+2,j+2)];Sx = Hx .* W;Sy = Hy .* W;gradx_image(i+1,j+1) = sum(sum(Sx));grady_image(i+1,j+1) = sum(sum(Sy));end
end
gradx_image = abs(gradx_image);
grady_image = abs(grady_image);
%% 将一圈扩展1个像素的图像复原
gradx = zeros(row,col);
grady = zeros(row,col);
for i = 1:rowfor j = 1:colgradx(i,j) = gradx_image(i+1,j+1);grady(i,j) = grady_image(i+1,j+1);end
end
%sobel梯度
grad = gradx + grady; %得到图像的sobel梯度
%% 显示图像
figure();
subplot(2,2,1);imshow(gray_image);title('原图');
subplot(2,2,2);imshow(uint8(gradx),[]);title('x方向梯度(Sobel算子)');
subplot(2,2,3);imshow(uint8(grady),[]);title('y方向梯度(Sobel算子)');
subplot(2,2,4);imshow(grad,[]);title('图像的sobel梯度');
源自http://blog.csdn.net/zhufanqie/article/details/8709910
别人的程序,利用filter2函数
%% 利用filter2函数的sobel算子梯度计算实现
clear;
close all;
rgb_image = imread('F:\matlab\pic.jpg');
gray_image = rgb2gray(rgb_image);
%% 构造sobel模板
hx = [-1 -2 -1;0 0 0 ;1 2 1];%生产sobel垂直梯度模板
hy = hx'; %生产sobel水平梯度模板
%% 计算图像的sobel梯度
%垂直梯度
gradx = filter2(hx,gray_image,'same');
gradx = abs(gradx); %计算图像的sobel垂直梯度
%水平梯度
grady = filter2(hy,gray_image,'same');
grady = abs(grady); %计算图像的sobel水平梯度
%sobel梯度
grad = gradx + grady; %得到图像的sobel梯度
%% 显示
subplot(2,2,1);imshow(gray_image);title('原图');
subplot(2,2,2);imshow(gradx,[]);title('图像的sobel垂直梯度');
subplot(2,2,3);imshow(grady,[]);title('图像的sobel水平梯度');
subplot(2,2,4);imshow(grad,[]);title('图像的sobel梯度');
利用Sobel算子,求梯度图像相关推荐
- python sobel算子_利用sobel算子计算图像的梯度(python+opencv)
sobel算子计算的梯度图是带有方向的 代码实现如下: #coding=utf-8 import cv2 import numpy as np #利用sobel算子计算图像的梯度 img=cv2.im ...
- 应用sobel算子算法c语言,Canny算子与Sobel算子求图像边缘的C代码实现
*Canny算子与Sobel算子求图像边缘笔记* 1.Canny求边缘算法原理简述 Canny检测边缘主要分为以下 四个算法步骤: A:噪声去除 canny算子是通过对每个像素点求一阶导数来找到梯度明 ...
- 利用sobel算子提取图像的水平特征和竖直特征
一. sobel滤波器介绍 sobel滤波器常用来提取灰度图像的水平边缘(水平特征)和竖直边缘(竖直特征) 二. sobel算子 纵向算子,提取图像水平边缘 ↑ 横向算子,提取图像竖直边缘 ↑ ...
- 11-图像梯度-Sobel算子
图像梯度是指图像某像素在x和y两个方向上的变化率(与相邻像素比较),是一个二维向量,由2个分量组成,X轴的变化.Y轴的变化 . 其中X轴的变化是指当前像素右侧(X加1)的像素值减去当前像素左侧(X减1 ...
- 差分近似图像导数算子之Sobel算子
背景引言 图像处理中,一个最基本并且最重要的卷积就是导数的计算,一般用来表达微分最常用的操作是Sobel算子,可以包含任意阶的微分以及融合偏导.主要用作为边缘检测.在技术上,它是一离散性差分算子,用来 ...
- sobel算子检测图像清晰度
文章目录 前言 概念 图像处理.视觉等基础概念 清晰度判断概念 sobel算子是什么? Sobel原理 Sobel实现 Sobel应用 改进的八方向sobel算子基于的理论 视觉系统 sobel算子实 ...
- sobel算子 拉普拉斯算子以及散度与梯度的概念
在ECBSR论文的代码研究中,我发现关于ECBSR提出的多分支重参数化模型中,代码用到了sobel算子与laplace算子,很难判断这两个算子是为了论文的创新点还是真的有用,这块只能等待后续的对比实验 ...
- 计算机视觉开源库OpenCV梯度之Sobel算子
Sobel算子是像素图像边缘检测中最重要的算子之一,在机器学习.数字媒体.计算机视觉等信息科技领域起着举足轻重的作用.在技术上,它是一个离散的一阶差分算子,用来计算图像亮度函数的一阶梯度之近似值.在图 ...
- 【OpenCV入门教程之十二】OpenCV边缘检测:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/25560901 作者:毛星云(浅墨) ...
最新文章
- 快速滚动_方老师教滚动快速作文
- android开发中用到的px、dp、sp
- Redhat change hostname
- Java - Get a list of all Classes loaded in the JVM[转]
- GROUP与HAVING的使用
- netscreen 25配置外网到内网的Webserver实践
- 荣耀 Magicbook Pro 锐龙版搭载深度操作系统桌面版
- 开发一款高端大气上档次的android应用需要必备的知识——记于2013年末
- Android中UI线程与后台线程交互设计的5种方法
- ios keychain 不被清理_限免 | 可爱天气 清理君等等
- c语言编程软件我的世界,我的世界(Minecraft)
- 根据ip地址定位城市信息
- 大数据和云计算技术的就业前景
- 微信小程序添加删除线和下划线
- bandzip屏蔽广告
- 温度对免疫代谢调节和癌症进展的影响
- 计算机速算训练,世界上最快的速算法,背熟就是速算神童,大脑堪比计算机!仅发一次...
- Snapper 快照管理工具
- php guzzle并发,使用Guzzle并发请求接口
- 什么是AQS?AQS有什么作用?常见的基于AQS的组件有哪些?
热门文章
- 羊毛党千亿产业链,信息安全何去何从?
- Axon 4.4 中文版文档(一)
- 语义分割yolov5 v4.0 baseline快速复现 快速跑通 图像分割 图像分类 重新训练,训练结果,测试结果,实验图片-20210227
- 鸿蒙系统怎样去掉下拉音乐播放器,windows10系统下怎样取消音乐播放器默认播放器...
- ARM Cortex-A系列编程指南之ARMv8 A -- 第二章 ARMv8 A架构和处理器
- 整理!这10款PC端软件,设计师必备!
- 机械过滤器(石英砂过滤器)和多介质过滤器的区别
- python 基于pygame实现俄罗斯方块
- 电商系统中的商品模型的分析与设计
- 如何判断一个点在矩形或多边形内