索贝尔(Sobel)算子是计算机视觉领域的一种重要处理方法。主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测。索贝尔算子是把图像中每个像素的上下左右四领域的灰度值加权差,在边缘处达到极值从而检测边缘。

该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像,其公式如下:

图像的每一个像素的横向及纵向梯度近似值可用以下的公式结合,来计算梯度的大小。

Matlab代码实现:

clc;
clear all;
close all;RGB_data = imread('G:\picture_deal\matlab_code\chepai2.bmp');%图像读入[height,width, DIM] = size(RGB_data); %提取图片的行列数Y_data = zeros(height,width);
Cb_data = zeros(height,width);
Cr_data = zeros(height,width);
Gray_data = RGB_data;R_data =    RGB_data(:,:,1);
G_data =    RGB_data(:,:,2);
B_data =    RGB_data(:,:,3);for r = 1:heightfor c = 1:widthY_data(r, c) = 0.299*R_data(r, c) + 0.587*G_data(r, c) + 0.114*B_data(r, c);Cb_data(r, c) = -0.172*R_data(r, c) - 0.339*G_data(r, c) + 0.511*B_data(r, c) + 128;Cr_data(r, c) = 0.511*R_data(r, c) - 0.428*G_data(r, c) - 0.083*B_data(r, c) + 128;end
endGray_data(:,:,1)=Y_data;
Gray_data(:,:,2)=Y_data;
Gray_data(:,:,3)=Y_data;figure(1);
imshow(Gray_data);
title('Y分量灰度图像'); %sobel边缘检测计算
for i = 2:height - 1   for j = 2:width - 1Gx = (Y_data(i+1,j-1) + 2*Y_data(i+1,j) + Y_data(i+1,j+1)) - (Y_data(i-1,j-1) + 2*Y_data(i-1,j) + Y_data(i-1,j+1));Gy = (Y_data(i-1,j+1) + 2*Y_data(i,j+1) + Y_data(i+1,j+1)) - (Y_data(i-1,j-1) + 2*Y_data(i,j-1) + Y_data(i+1,j-1));temp(i,j)=floor(sqrt(Gx^2 + Gy^2));if(uint8((sqrt(Gx^2 + Gy^2))) > 150)uSobel(i,j) = 0; %elseuSobel(i,j) = 255;endend
end uSobel(480,:)=uSobel(1,:);
uSobel(:,640)=uSobel(:,1);Gray_data(:,:,1)=uSobel;
Gray_data(:,:,2)=uSobel;
Gray_data(:,:,3)=uSobel;figure(2);
imshow(Gray_data);
title('sobel算子后的Y分量图像');

结果:

Sobel 边缘检测 matlab代码实现相关推荐

  1. 【图像边缘检测】基于蚁群算法实现图像边缘检测matlab代码

    1 简介 目的提出基于蚂蚁算法的图像分割技术,解决传统的图像分割算法分割图像的效果不理想.不能满足图像分割要求等问题.方法将图像的灰度.梯度和邻域特征组合成蚂蚁,通过MATLAB实现蚁群图像分割算法对 ...

  2. 基于MATLAB的Sobel边缘检测算法实现

    图像边缘就是图像灰度值突变的地方,也就是图像在该部分的像素值变化速度非常之快,就比如在坐标轴上一条曲线有刚开始的平滑突然来个大转弯,在变化出的导数非常大. Sobel算子主要用作边缘检测,它是一离散型 ...

  3. matlab差分算子的灰度图像边缘检测,灰度图像的 Sobel 边缘检测算法的 HDL实现(一)...

    1.1 边缘检测算法介绍 所谓边缘是指其周围像素灰度急剧变化的那些象素的集合,它是图像最基本的特征.边缘存在于目标.背景和区域之间,所以,它是图像分割所依赖的最重要的依据.由于边缘是位置的标志,对灰度 ...

  4. 多尺度结构元素形态学边缘检测算法的研究-含Matlab代码

    目录 一.引言 二.数学形态学理论概述 三.实验验证 四.参考文献 五.Matlab代码获取 一.引言 使用数字图像处理技术来解决计算机视觉.人工智能.生物遥感器视觉等领域所涉及到的图像问题时,最重要 ...

  5. 图像的边缘检测和缺失修复(附matlab代码)

    最近在数学建模过程中老师给了个图片分别在清晰.有噪声及模糊状态下对其进行边缘检测的题目,最后一题是将图片中一部分抠出后将图片按照剩余图片的特征进行修复,整个问题涉及到人工智能及计算机视觉的领域较多,和 ...

  6. opencv:卷积涉及的基础概念,Sobel边缘检测代码实现及卷积填充模式

    具体参考我的另一篇文章: opencv:卷积涉及的基础概念,Sobel边缘检测代码实现及Same(相同)填充与Vaild(有效)填充 这里是对这一篇文章的补充! 卷积-三种填充模式 橙色部分为imag ...

  7. opencv:卷积涉及的基础概念,Sobel边缘检测代码实现及Same(相同)填充与Vaild(有效)填充

    滤波 线性滤波可以说是图像处理最基本的方法,它可以允许我们对图像进行处理,产生很多不同的效果. 卷积 卷积的概念: 卷积的原理与滤波类似.但是卷积却有着细小的差别. 卷积操作也是卷积核与图像对应位置的 ...

  8. Matlab与FPGA图像处理系列——基于FPGA的实时边缘检测系统设计,sobel边缘检测流水线实现

    注:下载链接的资源是图片存 ROM 后读取进行 Sobel 检测显示在 VGA上,可供参考. 摘要:本文设计了一种基于 FPGA 的实时边缘检测系统,使用OV5640 摄像头模块获取实时的视频图像数据 ...

  9. 图像处理:边缘提取算法(边缘提取算子总结)——Matlab代码实现

    边缘提取算子 一阶:  Roberts算子.Sobel算子.Prewitt算子.Kirsch算子.Robinson算子 二阶: Laplacian算子.Canny算子.Marr-Hildreth(Lo ...

  10. matlab 图像分割库,图像分割Matlab代码

    图像分割Matlab代码 图像分割 Matlab 代码(一)图像边缘检测不同方法比较将 Roberts.Sobel.Prewitt.LOG.Canny 算子等经典图像分割算法对灰度图像分割的结果进行比 ...

最新文章

  1. SAP PM IW33里查看维护订单相关的维护计划
  2. .NET开发环境MonoDevelop 2.2 发布
  3. 多进程客户端-服务器模型
  4. Ubuntu下安装tilix终端仿真器
  5. UIMenuController在label中的使用
  6. 程序员的算法课(20)-常用的图算法:最小生成树(MST)
  7. javascript Prototype constructor的理解(一)
  8. Ajax技术复习---狂神笔记
  9. Java数字抽奖游戏核心代码及分析
  10. checkbox不全部选中,会跳出提示(这个是我记录的重点)
  11. 土地购买(USACO 2008 March Gold)
  12. 谷歌chrome浏览器突然不记录登录状态,怎么办
  13. 华为鸿蒙智慧屏和手机,【荣耀智慧屏评测】鸿蒙初体验:荣耀智慧屏跨系统交互构建新生态(全文)_荣耀 智慧屏_手机评测-中关村在线...
  14. labview信号频域分析算法
  15. 登康口腔冲刺上市:销售费用远高于研发,旗下品牌包括冷酸灵等
  16. 领域驱动设计战术模式:领域服务
  17. vim报错E45: ‘readonly‘ option is set (add ! to override)
  18. 数字创意产业定义与研究范围
  19. swf文件转换其他视频格式工具(例:swf to mp4) ,转换后的视频无水印
  20. STOTEN | 生态中心庄绪亮-群体感应在植物根际促生菌中的重要性

热门文章

  1. VRay 2.0 for SketchUp高级室内渲染教程锌
  2. 一个RGB数据采集实例学习matlab_GUI界面设计
  3. gdi win7奔溃_win7 64位操作系统,新安装的软件一打开就崩溃,故障模块“StackHash_0a9e”,有大神知道是什么问题吗...
  4. cJSON字符串解析
  5. 汽车租赁管理系统(管理车辆基本信息、租车/还车、统计租金)
  6. HTML表单颜色选择器
  7. java扫描条形码的两种方式
  8. Tomcat9安装及配置步骤
  9. 基于Matlab的hdb3编译码设计,基于MATLAB的HDB3编译码实现
  10. 【Java开发bug-011】excel设置自定义日期格式