Roberts边缘检测算子:根据一对互相垂直方向上的差分可用来计算梯度的原理,采用对角线方向相邻两像素之差。

小波变换的方法比较适用于展现夹带在正常信号中的瞬间反常现象,具有方向敏感性。所以可以边缘检测。

Roberts边缘检测算子:

clear;

I=imread(‘D:\文件及下载相关\图片\gray2.png‘);

I=rgb2gray(I);

grayPic=mat2gray(I);

[m,n]=size(grayPic);

newGrayPic=grayPic;

robertsNum=0;

robertThreshold=0.2;for j=1:m-1

for k=1:n-1robertsNum= abs(grayPic(j,k)-grayPic(j+1,k+1)) + abs(grayPic(j+1,k)-grayPic(j,k+1));if(robertsNum >robertThreshold)

newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;

end

end

end

figure,imshow(newGrayPic);

title(‘roberts‘)

小波变换检测边缘:

clear all;

I= imread(‘D:\文件及下载相关\图片\gray2.png‘);

I=rgb2gray(I);imshow(I);

I1= imadjust(I,stretchlim(I),[0,1]);figure;imshow(I1);

[N,M]=size(I);

h= [0.125,0.375,0.375,0.125];

g= [0.5,-0.5];

delta= [1,0,0];

J= 3;

a(1:N,1:M,1,1:J+1) = 0;

dx(1:N,1:M,1,1:J+1) = 0;

dy(1:N,1:M,1,1:J+1) = 0;

d(1:N,1:M,1,1:J+1) = 0;

a(:,:,1,1) = conv2(h,h,I,‘same‘);

dx(:,:,1,1) = conv2(delta,g,I,‘same‘);

dy(:,:,1,1) = conv2(g,delta,I,‘same‘);

x= dx(:,:,1,1);

y= dy(:,:,1,1);

d(:,:,1,1) = sqrt(x.^2+y.^2);

I1= imadjust(d(:,:,1,1),stretchlim(d(:,:,1,1)),[0 1]);figure;imshow(I1);

lh=length(h);

lg=length(g);for j = 1:J+1lhj= 2^j*(lh-1)+1;

lgj= 2^j*(lg-1)+1;

hj(1:lhj)=0;

gj(1:lgj)=0;for n = 1:lh

hj(2^j*(n-1)+1)=h(n);

endfor n = 1:lg

gj(2^j*(n-1)+1)=g(n);

end

a(:,:,1,j+1) = conv2(hj,hj,a(:,:,1,j),‘same‘);

dx(:,:,1,j+1) = conv2(delta,gj,a(:,:,1,j),‘same‘);

dy(:,:,1,j+1) = conv2(gj,delta,a(:,:,1,j),‘same‘);

x= dx(:,:,1,j+1);

y= dy(:,:,1,j+1);

dj(:,:,1,j+1) = sqrt(x.^2+y.^2);

I1= imadjust(dj(:,:,1,j+1),stretchlim(dj(:,:,1,j+1)),[0 1]);

figure;imshow(I1);

end

图像边缘检测经典算子及MATLAB实现 - CSDN博客 http://blog.csdn.net/u012808193/article/details/45722283

边缘检测是图像分析和模式识别的主要特征提取手段。所谓边缘是指其周围像素灰度后阶变化或屋顶状变化的那些像素的集合,它存在于目标与背景、目标与目标、区域与区域,基元与基元之间。 因此它是图象分割所依赖的重要的特征,也是纹理特征的重要信息源和形状特征的基础;而图象的纹理形状特征的提取又常常依赖于图象分割。 图象的边缘提取也是图象匹配的基础,因为它是位置的标志,对灰度的变化不敏感,它可作为匹配的特征点。

目前常用的边缘检测方法有:Roberts边缘检测算子、Sobel边缘检测算子、Prewitt边缘检测算子、Laplace边缘检测算子等等。

1、Roberts边缘检测算子

Roberts边缘检测算子根据任意一对互相垂直方向上的差分可用来计算梯度的原理,采用对角线方向相邻两像素之差。

MATLAB实验代码如下:

clear;

sourcePic=imread(‘lena.jpg‘); %读取原图像

grayPic=mat2gray(sourcePic); %实现图像矩阵的归一化操作

[m,n]=size(grayPic);

newGrayPic=grayPic;%为保留图像的边缘一个像素

robertsNum=0; %经roberts算子计算得到的每个像素的值

robertThreshold=0.2; %设定阈值for j=1:m-1 %进行边界提取for k=1:n-1robertsNum= abs(grayPic(j,k)-grayPic(j+1,k+1)) + abs(grayPic(j+1,k)-grayPic(j,k+1));if(robertsNum >robertThreshold)

newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;

end

end

end

figure,imshow(newGrayPic);

title(‘roberts算子的处理结果‘)

实验结果:

2、Sobel边缘检测算子

对数字图像的每个像素,考察它上、下、左、右邻点灰度的加权差,与之接近的邻点的权大。

MATLAB实验代码如下:

clear;

sourcePic=imread(‘lena.jpg‘);%读取原图像

grayPic=mat2gray(sourcePic);%实现图像矩阵的归一化操作

[m,n]=size(grayPic);

newGrayPic=grayPic;%为保留图像的边缘一个像素

sobelNum=0;%经sobel算子计算得到的每个像素的值

sobelThreshold=0.8;%设定阈值for j=2:m-1 %进行边界提取for k=2:n-1sobelNum=abs(grayPic(j-1,k+1)+2*grayPic(j,k+1)+grayPic(j+1,k+1)-grayPic(j-1,k-1)-2*grayPic(j,k-1)-grayPic(j+1,k-1))+abs(grayPic(j-1,k-1)+2*grayPic(j-1,k)+grayPic(j-1,k+1)-grayPic(j+1,k-1)-2*grayPic(j+1,k)-grayPic(j+1,k+1));if(sobelNum >sobelThreshold)

newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;

end

end

end

figure,imshow(newGrayPic);

title(‘Sobel算子的处理结果‘)

实验结果:

3、Prewitt边缘检测算子

Prewitt算子是一种边缘样板算子。这些算子样板由理想的边缘子图像构成。依次用边缘样板去检测图像,与被检测区域最为相似的样板给出最大值。

MATLAB实验代码

clear;

sourcePic=imread(‘lena.jpg‘);%读取原图像

grayPic=mat2gray(sourcePic);%实现图像矩阵的归一化操作

[m,n]=size(grayPic);

newGrayPic=grayPic;%为保留图像的边缘一个像素

PrewittNum=0;%经Prewitt算子计算得到的每个像素的值

PrewittThreshold=0.5;%设定阈值for j=2:m-1 %进行边界提取for k=2:n-1PrewittNum=abs(grayPic(j-1,k+1)-grayPic(j+1,k+1)+grayPic(j-1,k)-grayPic(j+1,k)+grayPic(j-1,k-1)-grayPic(j+1,k-1))+abs(grayPic(j-1,k+1)+grayPic(j,k+1)+grayPic(j+1,k+1)-grayPic(j-1,k-1)-grayPic(j,k-1)-grayPic(j+1,k-1));if(PrewittNum >PrewittThreshold)

newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;

end

end

end

figure,imshow(newGrayPic);

title(‘Prewitt算子的处理结果‘)

实验结果

4、Laplace边缘检测算子

Laplacian 算子是n维欧几里德空间中的一个二阶微分算子。

MATLAB实验代码

clear;

sourcePic=imread(‘lena.jpg‘);%读取原图像

grayPic=mat2gray(sourcePic);%实现图像矩阵的归一化操作

[m,n]=size(grayPic);

newGrayPic=grayPic;%为保留图像的边缘一个像素

LaplacianNum=0;%经Laplacian算子计算得到的每个像素的值

LaplacianThreshold=0.2;%设定阈值for j=2:m-1 %进行边界提取for k=2:n-1LaplacianNum=abs(4*grayPic(j,k)-grayPic(j-1,k)-grayPic(j+1,k)-grayPic(j,k+1)-grayPic(j,k-1));if(LaplacianNum >LaplacianThreshold)

newGrayPic(j,k)=255;elsenewGrayPic(j,k)=0;

end

end

end

figure,imshow(newGrayPic);

title(‘Laplacian算子的处理结果‘)

实验结果

小波变换 边缘检测 matlab,边缘检测算子和小波变换提取图像边缘【matlab】相关推荐

  1. 使用差分金字塔提取图像边缘 python实现

    本文提供一种提取图像边缘的快速算法 更多提取图像边缘的方法: 最大-最小滤波器实现图像边缘提取 Prewitt滤波器和Sobel滤波器提取图像边缘 拉普拉斯滤波器提取图像边缘 差分金字塔提取图像边缘算 ...

  2. 利用matlab写一个简单的拉普拉斯变换提取图像边缘

    可以证明,最简单的各向同性微分算子是拉普拉斯算子.一个二维图像函数 f(x,y) 的拉普拉斯算子定义为 其中,在 x 方向可近似为 同理,在 y 方向上可近似为 于是 我们得到满足以上三个公式的两个变 ...

  3. Prewitt滤波器的实现,对比Prewitt滤波器和Sobel滤波器提取图像边缘的效果

    一. Prewitt滤波器简介 Prewitt是一种常用的检测图像边缘的滤波器,它分为横向和纵向算子,分别用于检测纵向和横向的边缘(注意:横向形式的滤波器检测图像的纵向边缘,纵向形式的滤波器检测图像的 ...

  4. 图像边缘提取 java_提取图像边缘

    利用java打开一张图片,并提取其边缘.功能有打开文件,以及提取边缘. 算法原理 由于边缘提取的算法有很多种,而提取的精度在相同阈值的情况下也会有不同的结果. 这次我的边缘提取使用索贝尔算子(Sobe ...

  5. matlab如何输出一个函数的图像,在matlab中如何输出一个函数的图像

    点击查看在matlab中如何输出一个函数的图像具体信息 答:A. imread imread函数用于读入各种图像文件,其一般的用法为 [X,MAP]=imread('filename','fmt')其 ...

  6. 用matlab把表转化为图片,matlab怎么excel数据转化为图像《matlab将excel数据读成图片》...

    这个表格的数据怎样用matlab转换为图像?是一个49*57的表格 load进workspace,数值类型做一定的转换,就可以了. 如何将Excel中的数据导入MATLAB并在MATLAB中画出图像 ...

  7. matlab怎么利用圆形度提取园,基于Matlab+GUI图像处理的物料粒度与圆形度测试.pdf...

    基于Matlab+GUI图像处理的物料粒度与圆形度测试.pdf 第36卷第2期 中国农机化学报 Vol_36No.2 2015年3月 JournalofChinese Mechanization Ma ...

  8. 利用拉普拉斯滤波器提取图像边缘,实现图像锐化

    一. 拉普拉斯滤波器简介: 我们知道: 拉普拉斯算子 ↑ x方向上二阶偏导数的数值近似计算 ↑ y方向上二阶偏导数的数值近似计算 ↑ 拉普拉斯算子在平面内的数值近似 ↑ 拉普拉斯滤波器卷积核表示 ↑ ...

  9. Canny提取图像边缘后使用闭运算连接断线

    实验: # Writer : wojianxinygcl@163.com # Date  : 2020.3.22 import cv2 as cv import numpy as np image = ...

最新文章

  1. python常用变量名_python基础知识整理
  2. VS Code竟然能约会,找对象不看脸,看编程水平
  3. Spring Data JPA例子[基于Spring Boot、Mysql]
  4. 聚沙成塔 : 第十六届智能车竞赛规则你一言,我一语
  5. Web安全测试检查单
  6. DRF—Mixin拓展类、视图集
  7. Java问题集锦--The type StringEscapeUtils is deprecated
  8. php strchr 截断,PHP strchr() 函数
  9. vue+django前后端项目部署
  10. Windows桌面切换VC代码
  11. Transact-SQL 存储过程(c#调用执行)
  12. C++调用mask rcnn进行实时检测--opencv4.0
  13. [洛谷5463]小鱼比可爱
  14. MyEclipse创建Java项目
  15. C# 自定义电脑屏幕保护程序
  16. vue 设置表单必填项
  17. 第二次作业——时事点评
  18. maya检查模型重合点脚本
  19. 猿猿趴架构实战--02 软件工程及架构师
  20. 改善记忆力的二十种记忆方法,随便你挑!

热门文章

  1. 2021年CSP-S初赛试题
  2. c语言文件夹怎么设置密码,简单的文件加密(初学者进)
  3. 超越YOLOv4的目标检测算法-PP-YOLO
  4. 末日觉醒服务器端文件,末日觉醒单机版
  5. python labview c#知识产权_每天1小时,LabVIEW工程师轻松掌握C#(Winform)软件设计
  6. 抗渗等级p6是什么意思_混凝土p6是什么意思
  7. 【精选】JAVA算法题(十八)
  8. Web开发 媒体流遇到的坑
  9. 计算机网络实验-Cisco Packet Tracer 实验
  10. html表格美化源码,非常酷炫的CSS3表格设计样式源码