图像处理——边缘检测(MATLAB实现)

这篇具有很好参考价值的文章主要介绍了图像处理——边缘检测(MATLAB实现)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

边缘检测

实验表明,人眼对图像中边缘的识别不是通过设置阈值来分割的,目标的边缘一般表现为灰度(对彩色图像还包括色度)的特变。对于人类的视觉感知,图像边缘对理解图像内容起到关键作用。在灰度渐变的图像中无法区分其灰度变化的边界,但如果边界灰度有突变,则可以区分两个灰度不同的区域。这是基于灰度不连续性进行的分割方法。常见的边缘有:阶跃边缘、有干扰的渐变边缘、灰度变化率突变的边缘、窄带脉冲边缘······

边缘的含义体现在灰度的突变上。使用差分、梯度、拉普拉斯算子及各种高通滤波处理方法可以对图像边缘进行增强,只要再进行一次阈值处理,便可以将边缘增强的方法用于边缘检测。但是需要注意的是,对边缘处理的目的已经不是对整幅图像的边缘进行加强,而是根据边缘来进行图像分割。边缘检测要按照图像的内内容和应用的要求进行,可以先对图像做预处理,使边缘突出,然后选择合适的阈值进行分割。

MATLAB 边缘检测的函数为

BW=edge(I,'edge-finding methods ',THRESH, DIRECTION/SIGMA)

其中,I为灰度图像,BW 为返回的相同大小的二值图像。若检测到边沿则返回 1,否则返回 0。

edge 函数支持6种不同的边缘检测方法。'sobel'指定 Sobel 方法,'prewitt'指定 Prewitt 方法,'roberts'指定 Roberts 方法,'log'指定 LoG 方法(高斯-拉普拉斯算子),'zerocross'指定(零交叉法),'canny'指定坎尼方法(SIGMA 为高斯滤波器的标准差)。

THRESH 指定分割方法的阈值。

DIRECTION 指定分割方法的方向,可以指定'horizontal'(水平)或'vertical'(垂直)边缘,或'both'(双向)边缘(默认值)。

如果 THRESH、DIRECTION、SIGMA 默认,则由 MATLAB 指定相应的数值。

基于roberts、prewitt、soble、log和canny算子对图像进行边缘检测

abc=imread('hai.jpg');
C=rgb2gray(abc);
B1=edge(C,'roberts');
B2= edge(C,'prewitt');
B3= edge(C,'sobel');
B4= edge(C,'log');
B5= edge(C,'canny');
figure,imshow(B1),title('Reberts算子边缘检测');
figure,imshow(B2,[]),title('Prewitt算子边缘检测');
figure,imshow(B3,[]),title('Sobel算子边缘检测');
figure,imshow(B4,[]),title('LoG算子边缘检测');
figure,imshow(B5,[]),title('canny算子边缘检测');

 输出:

matlabcanny边缘检测,图像处理,图像处理,matlab,人工智能,计算机视觉,学习方法

matlabcanny边缘检测,图像处理,图像处理,matlab,人工智能,计算机视觉,学习方法

霍夫变换

霍夫变换(Hough Transform)是一种边界跟踪方法,它利用图像的全局特性直接检测目标轮廓。利用霍夫变换可以从图像中识别几何形状,应用很广泛,也有很多改进算法。最基本的霍夫变换是从黑白图像中检测直线(线段)。在预先知道区域形状的条件下,利用霍夫变换可以方便地将不连续的边缘像素点连接起来得到边界曲线的逼近,其主要优点是受噪声和曲线间断的影响较小。

基于Hough变换的图像分割

在进行霍夫变换前应该先对图像进行预处理,一般先对灰度图像进行二值化处理,然后细化边缘得到图像骨架,再采用霍夫变换提取图像中的直线。调用IPT 二值图像标准霍夫变换函数 [H,THETA,RHO]=hough(BW),其中BW是待变换的二值图像,(THETA,RHO)分别是离散化的(θ,ρ)。H是霍夫变换矩阵。

Ⅰ:读入图像;

Ⅱ:检测图像边缘;

Ⅲ:实现Hough变换;

Ⅳ:输出结果。

 

%基于Hough变换
clear;
close all;
clc;
fg=rgb2gray(imread('hai.png'));
bw=edge(fg,'canny');%canny算子边缘检测得二值边缘图像
figure,imshow(bw);
[h,t,r]=hough(bw,'RhoResolution',0.5,'Thetaresolution',0.5);
figure,imshow(imadjust(mat2gray(h)),'XData',t,'YData',r,'InitialMagnification','fit');
xlabel('\theta'),ylabel('\rho');
axis on,axis normal,hold on;
P=houghpeaks(h,2);
x=t(P(:,2));y=r(P(:,1));
plot(x,y,'s','color','r');
lines=houghlines(bw,t,r,P,'FillGap',5,'Minlength',7);%检测图像中得直线段
figure,imshow(fg);
hold on;
max_len=0;
for i=1:length(lines)
    xy=[lines(i).point1;lines(i).point2];
    plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','g');
    plot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','y');
    plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Color','r');
end
hold off

 输出:

matlabcanny边缘检测,图像处理,图像处理,matlab,人工智能,计算机视觉,学习方法

 .

.

.

.

.

资料来源为以前学习阶段搜寻到的资料,或电子版或纸质版的资料,已寻不到来源,以此形式来及记录以前的学习......以上为中部部分的文字说明,另附资料和代码等在往后文章......文章来源地址https://www.toymoban.com/news/detail-778832.html

到了这里,关于图像处理——边缘检测(MATLAB实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (数字图像处理MATLAB+Python)第七章图像锐化-第三节:高斯滤波与边缘检测

    高斯函数 :是一种常见的连续函数,通常用符号 G ( x ) G(x) G ( x ) 表示。它可以用下面的公式定义 G ( x ) = 1 σ 2 π e − x 2 2 σ 2 G(x)=frac{1}{sigma sqrt{ 2pi }}e^{-frac{x^{2}}{2sigma^{2}}} G ( x ) = σ 2 π ​ 1 ​ e − 2 σ 2 x 2 ​ 其中, x x x 是自变量, σ sigma σ 是一个正实数,表示高斯函

    2024年02月06日
    浏览(57)
  • QT+OpenCV实现一个标注工具(图像处理、边缘检测)

    作者是一名QT初学者,为检验学习成果及完成毕业设计,在张老师和学姐的指导下,开发了这个标注工具。CSDN上很多文章对我的学习提供了极大的帮助,分享这篇文章给需要的人一起学习进步~ 废话不多说,先看看效果: Windows10、Qt5.13.2(编译器用的是MinGW64_bit)、OpenCV4.1 环

    2024年02月11日
    浏览(48)
  • 【数字图像处理】边缘检测

    边缘检测是一种图像处理技术,旨在标识和定位数字图像中的边缘和轮廓。 边缘是图像中灰度值变化明显的位置 ,通常是物体的边缘或表面的变化。通过边缘检测算法,可以将图像中的物体和背景分离出来,从而实现目标检测、图像分割、计算机视觉和机器人视觉等应用。

    2024年02月02日
    浏览(47)
  • 图像处理:边缘检测原理

    很抱歉,前面推导三种边缘检测算子我不是很满意就发出去了,现在以我的知识储备看他们还是有着很大的问题,我潜下心的找资料,看视频,就是为了将我的基础打牢,所以,我在这一篇当中好好的抠细节,毕竟从实际的应用上来说,这是我的学习笔记,再怎么也不能糊弄

    2024年02月06日
    浏览(49)
  • 【图像处理】交通标志检测(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 人工智能技术

    2024年02月03日
    浏览(52)
  • 数字图像处理:图像分割——边缘检测与区域分割

    1.图像分割:根据图像的某些局部特征(灰度级、纹理、彩色或统计特征等)的相似性和互斥性,将图像分割成若干子区域,在每个子区域内部具有相似(相同或相近)特性,而相邻子区域的特性互斥。所以图像分割是利用图像局部特征的相似性和互斥性。 2.图像分割方法分

    2024年02月05日
    浏览(44)
  • 图像处理之梯度及边缘检测算子

    梯度是一个量变化的速度,在数学中通常使用求导、求偏导获取梯度或者某一方向上的梯度。 在数字图像中梯度可以看为像素值分别在x,y方向上的变化速度,因为数字图像的离散型,以及像素是最小处理单元的特性,求数字图像的梯度时,不需要求导,只需要进行加减运算即

    2024年02月16日
    浏览(45)
  • 图像处理技术:数字图像分割 ------ 图像分割、边界分割(边缘检测)、区域分割

    是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分 成若干个互不相交的区域,使得这些特征在同一区域内表现出一致 性或相似性,而在不同区域间表现出明显的不同 分割出来的区域应该同时满足:  (1)分割出来的图像区域的均匀性和连通性。 • 均匀性是指该

    2024年02月04日
    浏览(48)
  • ZYNQ图像处理(7)——sobel边缘检测

    所谓边缘是指其周围像素灰度急剧变化的那些象素的集合,它是图像最基本的特征。边缘存在于目标、背景和区域之间,所以,它是图像分割所依赖的最重要的依据。由于边缘是位置的标志,对灰度的变化不敏感,,因此,边缘也是图像匹配的重要的特征。边缘检测和区域划分

    2024年02月05日
    浏览(71)
  • 我在Vscode学OpenCV 图像处理三(图像梯度--边缘检测【图像梯度、Sobel 算子、 Scharr 算子、 Laplacian 算子、Canny 边缘检测】)

    这里需要区分开边缘检测和轮廓检测 边缘检测并非万能,边缘检测虽然能够检测出边缘,但边缘是不连续的,检测到的边缘并不是一个整体。图像轮廓是指将边缘连接起来形成的一个整体,用于后续的计算。 OpenCV 提供了查找图像轮廓的函数 cv2.findContours(),该函数能够查找图

    2024年02月04日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包