首页 > 其他分享 >Matlab中边缘提取方法简析

Matlab中边缘提取方法简析

时间:2023-12-02 15:56:27浏览次数:40  
标签:提取 检测 边缘 简析 edge Matlab 算子 canny

 1、Matlab简述

  Matlab是国际上最流行的科学与工程计算的软件工具,它起源于矩阵运算,已经发展成一种高度集成的计算机语言。有人称它为“第四代”计算机语言,它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化界面设计、便捷的与其它程序和语言接口的功能。随着Matlab语言功能越来越强大,不断适应新的要求并提出新的解决方法,可以预见,在科学运算,自动控制与科学绘图领域,Matlab语言将长期保持其独一无二的地位。

 

2、几种常用的边缘检测算子

  边缘是图像的最重要的特征,边缘是指周围像素灰度有阶跃变化或屋顶变化的那些像素的集合。边缘检测主要是灰度变化的度量、检测和定位。有很多种不同的边缘检测方法,同一种方法使用的滤波器也不尽相同。图像边缘检测就是研究更好的边缘检测方法和检测算子。

  边缘检测的基本思想首先是:

    (1)利用边缘增强算子,突出图像中的局部边缘,

    (2)然后定义象素的“边缘强度”,通过设置阈值的方法提取边缘点集。

  由于噪声和模糊的存在,监测到的边界可能会变宽或在某点处发生间断。因此,边界检测包括两个基本内容:

    i. 用边缘算子提取出反映灰度变化的边缘点集

    ii. 在边缘点集合中剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线

  常用的检测算子有微分算子、拉普拉斯高斯算子和canny算子。在Matlab图像处理工具箱中,提供了edge函数利用以上算子来检测灰度图像的边缘。

亚像素边缘检测算法

3、边缘检测算子举例(MATLAB)

  数字图像处理技术中常用的边缘检测算子有Sobel算子,Roberts算子,prewitt算子,log算子,canny算子。其中canny算子检测效果最好。

  MATLAB实现算法如下:

I=imread('lena.bmp');% 提取图像
BW1=edge(I,'sobel'); %用SOBEL算子进行边缘检测
BW2=edge(I,'roberts');%用Roberts算子进行边缘检测
BW3=edge(I,'prewitt'); %用prewitt算子进行边缘检测
BW4=edge(I,'log'); %用log算子进行边缘检测
BW5=edge(I,'canny'); %用canny算子进行边缘检测
h=fspecial('gaussian’,5);
BW6=edge(I,’canny’);
subplot(2,3,1), imshow(BW1);
title(‘sobel edge check’);
subplot(2,3,2), imshow(BW2);
title(‘sobel edge check’);
subplot(2,3,3), imshow(BW3);
title(‘prewitt edge check’);
subplot(2,3,4), imshow(BW4);
title(‘log edge check’);
subplot(2,3,5), imshow(BW5);
title(‘canny edge check’);
subplot(2,3,6), imshow(BW6);
title(‘gasussian&canny edge check’);%此为用高斯滤波后Canny算子边缘检测结果

 


标签:提取,检测,边缘,简析,edge,Matlab,算子,canny
From: https://www.cnblogs.com/bbhhh/p/17871703.html

相关文章

  • Matlab中gradient函数 梯度计算原理
    ​Gradient(F)函数求的是数值上的梯度,假设F为矩阵.Gradient算法>>x=[6,9,3,4,0;5,4,1,2,5;6,7,7,8,0;7,8,9,10,0]x=6934054125677807891......
  • matlab练习程序(DLT)
    在计算位姿的时候,一般我们有一些观测量,这些观测量有些是三维的、有些是二维的,因此需要用到不同的方法。如果是3D-3D的位姿计算,一般可以用这几种方法(【1】,【2】,【3】,【4】)。如果是3D-2D的位姿计算,一般可以用PnP-BA或者是本篇的DLT(直接线性变换)方法。如果是2D-2D的位姿计算,一......
  • MATLAB时间序列数据重建与平滑:HANTS滤波
      本文介绍在MATLAB中,实现基于HANTS算法(时间序列谐波分析法)的长时间序列数据去噪、重建、填补的详细方法。  HANTS(HarmonicAnalysisofTimeSeries)是一种用于时间序列分析和插值的算法。它基于谐波分析原理,可以从观测数据中提取出周期性变化的信号成分,并进行数据插值和去噪......
  • matlab中绘制三维柱状图bar3函数的使用方法
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 关键字 开发-08 extract提取返回的结果
    1.extract提取请求返回结果的返回值在进行接口自动化的时候,往往需要提取上一个接口返回的值,传递给下一个接口使用。创建utils/extract.pyimportjsonimportreimportjsonpathimportjmespathfromutilsimportexceptionsfromrequestsimportResponsedefextract_b......
  • RGB转YCbCr——基于《基于MATLAB与FPGA的图像处理教程》
    YCbCr介绍YCbCr由Y、Cb、Cr组成。为一种数字信号1、Y:表示颜色的明亮度和浓度,也可叫灰度阶。(通过RGB转换YCBCR提取Y分量也可以得到灰度图像)2、Cb:表示颜色的蓝色浓度偏移量即RGB输入信号蓝色部分与RGB信号亮度值之间的差异。3、Cr:表示颜色的红色浓度偏移量即RGB输入信号红色部分......
  • matlab获取时间日期
    ​ 在MATLAB中得到系统当前日期、时间也是经常用到的内容,由以下函数实现。1.生成指定格式日期和时间datestr-生成指定格式日期和时间,是字符型变量。>> datestr(now) %其中now是获取当前日期和时间ans=    30-Dec-200916:05:16其中输出格式可由用户指定,共有31种......
  • MATLAB图像分析程序
    ​1.迭代法 I=imread('rice.png');ZMax=max(max(I));ZMin=min(min(I));TK=(ZMax+ZMin)/2;bCal=1;iSize=size(I);while(bCal)iForeground=0;iBackground=0;ForegroundSum=0;BackgroundSum=0;fori=1:iSize(1)forj=1:iSize(2)tmp=I(i,j);if(tmp>=TK......
  • JMeter的JSON提取器JSON Path一次性提取多个
    JMeter调用接口时,返回一串列表,后面需要列表里的多个参数如下面接口返回示例,我需要提取每个数组里的vpc_id,后面需要用到{"vpcs":[{"vpc_name":"vpc1","vpc_id":"1712289779223859200"},{&qu......
  • Matlab获取鼠标坐标值的ginput()函数
    ​获取鼠标坐标值的第一种途径:利用Matlab7.0中figure的WindowButtonDownFcn属性。当你在图上按下鼠标的时候,可通过该属性定义一个回调程序。回调程序可以是一个有效的Matlab表达式或者一个M文件。那么为显示当前鼠标按下时的坐标值,我们可以将其定义为一个坐标获取和显示程序。......