matlab边缘检测

f=imread(‘0.jpg‘);                           % 读入图像

f=rgb2gray(f);                                     % 将彩色图像转换为灰度图像

f=im2double(f);                                    % 转换为双精度,便于后面的计算

PE=edge(f,‘sobel‘,‘horizontal‘);%sobel水平

figure, imshow(PE),title(‘sobel Image‘),

figure, imshow(f),title(‘Original Image‘),

PF=edge(f,‘prewitt‘);                               % 边缘探测,算子为prewitt

figure,imshow(PF),title(‘Prewitt Filter‘);

RF=edge(f,‘roberts‘);                              % 边缘探测,算子为roberts

figure,imshow(RF),title(‘Roberts Filter‘);

LF=edge(f,‘log‘);                                  % 边缘探测,算子为log

figure,imshow(LF),title(‘Laplacian of Gaussian (LoG) Filter‘);

CF=edge(f,‘canny‘);                                 % 边缘探测,算子为canny

figure,imshow(CF),title(‘Canny Filter‘);

MATLAB的图像处理工具箱中提供的edge函数可以实现检测边缘的功能,其语法格式如下:

BW = edge(I,‘sobel‘)

BW = edge(I,‘sobel‘,direction)

BW = edge(I,‘roberts‘)

BW = edge(I,‘log‘)

这里BW = edge(I,‘sobel‘)采用Sobel算子进行边缘检测。BW = edge(I,‘sobel‘,direction)可以指定算子方向,即:

direction=’horizontal’,为水平方向;

direction=’vertical’,为垂直方向;

direction=’both’,为水平和垂直两个方向。

BW = edge(I,‘roberts‘)和BW = edge(I,‘log‘)分别为用Roberts算子和拉普拉斯高斯算子进行边缘检测。

时间: 2024-10-05 20:47:57

matlab边缘检测的相关文章

Atitit java c# php c++ js跨语言调用matlab实现边缘检测等功能attilax总结

1.1. 边缘检测的基本方法Canny最常用了1 1.2. 编写matlab边缘检测代码,保存为m文件1 1.3. 通过cli接口调用Matlab执行m文件1 1.4. 效果如图1 1.1. 边缘检测的基本方法Canny最常用了 1.2. 编写matlab边缘检测代码,保存为m文件 fprintf('Hello World'); imag = imread('C:\00edge\a.jpg');  %读取 imag = rgb2gray(imag);        %转化为灰度图 %imag_f

图像边缘检测小结

边缘是图像中灰度发生急剧变化的区域边界.图像灰度的变化情况可以用图像灰度分布的梯度来表示,数字图像中求导是利用差分近似微分来进行的,实际上常用空域微分算子通过卷积来完成. 一阶导数算子 1)  Roberts算子 Roberts算子是一种斜向偏差分的梯度计算方法,梯度的大小代表边缘的强度,梯度的方向与边缘的走向垂直.Roberts操作实际上是求旋转45度两个方向上微分值的和.Roberts算子定位精度高,在水平和垂直方向的效果好,但对噪声敏感.两个卷积核Gx.Gy分别为: 采用1范数衡量梯度的幅

基于matlab的经典图像边缘检测算法

图像边缘检测算法 (1)Robert算子边缘检测 (2)Sobel算子边缘检测 (3)Prewitt算子边缘检测 (4)LOG算子边缘检测 (5)Canny边缘检测 Matlab的实现. 其实还只是掉包侠,一点算法没有写 争取有空用openCV写一遍 I=imread('1.jpg'); I0=rgb2gray(I); subplot(231); imshow(I); BW1=edge(I0,'Roberts',0.16); subplot(232); imshow(BW1); title('R

Log和Canny边缘检测(附Matlab程序)

  一. 实验目的 (1) 通过实验分析不同尺度下LOG和Canny边缘提取算子的性能. (2) 研究这两种边缘提取方法在不同参数下的边缘提取能力. (3) 使用不同的滤波尺度和添加噪声能量(噪声水平),通过与无噪声图像对比,选择最能说明自己结论的滤波尺度和噪声水平,并做出分析说明. 二. 实验原理 边缘的含义:在数字图像中,边缘是指图像局部变化最显著的部分,边缘主要存在于目标与目标,目标与背景之间,是图像局部特性的不连续性,如灰度的突变.纹理结构的突变.颜色的突变等.尽管图像的边缘点产生的原因

边缘检测算子和小波变换提取图像边缘【matlab】

Roberts边缘检测算子:根据一对互相垂直方向上的差分可用来计算梯度的原理,采用对角线方向相邻两像素之差. 小波变换的方法比较适用于展现夹带在正常信号中的瞬间反常现象,具有方向敏感性.所以可以边缘检测. Roberts边缘检测算子: clear; I=imread('D:\文件及下载相关\图片\gray2.png'); I=rgb2gray(I); grayPic=mat2gray(I); [m,n]=size(grayPic); newGrayPic=grayPic; robertsNum=

边缘检测matlab算法汇总

边缘检测matlab算法汇总 1.      基于一阶微分算子检测边缘图像 一阶微分边缘算子又称梯度边缘算子,它是利用图像在边缘处的阶跃性,及图像梯度在边缘去得极大值得特征性进行边缘检测. Sobel算子:image =edge(in_image,'sobel',threshold,direction); Prewitt算子: image = edge(in_image,'prewitt',threshold,direction); Roberts算子: image = edge(in_imag

sobel算子实现边缘检测及其c++实现及与matlab效果对比

这里增加了对边缘像素的补齐.sobel梯度分割抗噪性好,但是无法做到自动阈值,是其一大遗憾,matlab却解决的很好. //默认对8位位图进行处理 void Sobel(unsigned char *pIn, int width, int height, unsigned char *pOut) { //每行像素所占字节数,输出图像与输入图像相同 int lineByte=(width+3)/4*4; //申请输出图像缓冲区 pOut=new unsigned char[lineByte*hei

学习笔记(2)---Matlab 图像处理相关函数命令大全

Matlab 图像处理相关函数命令大全 一.通用函数: colorbar  显示彩色条 语法:colorbar \ colorbar('vert') \ colorbar('horiz') \ colorbar(h) \ h=colorbar(...) \ colorbar(...,'peer',axes_handle) getimage 从坐标轴取得图像数据 语法:A=getimage(h) \ [x,y,A]=getimage(h) \ [...,A,flag]=getimage(h) \

Atitit MATLAB 图像处理 经典书籍attilax总结

1.1. MATLAB数字图像处理1 1.2. <MATLAB实用教程(第二版)>((美)穆尔 著)[简介_书评_在线阅读] - 当当图书.html1 1.3. 数字图像处理(MATLAB版)(第二版)(本科教学版)2 1.1. MATLAB数字图像处理 第1章 图像处理与MATLAB2007a简介 第2章 图像的编码和解码 第3章 图像复原 第4章 图像处理的相关操作 第5章 图像频域变换 第6章 图像处理中的代数运算及几何变换 第7章 图像增强 第8章 图像分割与边缘检测 第9章 小波分析