<span style="font-size:18px; font-family: Arial, Helvetica, sans-serif;"></span>

1、用Prewitt算子检测图像的边缘

I = imread('bacteria.BMP');

BW1 = edge(I,'prewitt',0.04);             % 0.04为梯度阈值

figure(1);

imshow(I);

figure(2);

imshow(BW1);

2、用不同σ值的LoG算子检测图像的边缘

I = imread('bacteria.BMP');

BW1 = edge(I,'log',0.003); % σ=2

imshow(BW1);title('σ=2')

BW1 = edge(I,'log',0.003,3); % σ=3

figure, imshow(BW1);title('σ=3')

3、用Canny算子检测图像的边缘

I = imread('bacteria.BMP');

imshow(I);

BW1 = edge(I,'canny',0.2);

figure,imshow(BW1);

4、图像的阈值分割

I=imread('blood1.tif');

imhist(I);          % 观察灰度直方图, 灰度140处有谷,确定阈值T=140

I1=im2bw(I,140/255); % im2bw函数需要将灰度值转换到[0,1]范围内

figure,imshow(I1);

5、用水线阈值法分割图像

afm = imread('afmsurf.tif');figure, imshow(afm);

se = strel('disk', 15);

Itop = imtophat(afm, se); % 高帽变换

Ibot = imbothat(afm, se); % 低帽变换

figure, imshow(Itop, []);   % 高帽变换,体现原始图像的灰度峰值

figure, imshow(Ibot, []);   % 低帽变换,体现原始图像的灰度谷值

Ienhance = imsubtract(imadd(Itop, afm), Ibot);% 高帽图像与低帽图像相减,增强图像

figure, imshow(Ienhance);

Iec = imcomplement(Ienhance); % 进一步增强图像

Iemin = imextendedmin(Iec, 20); figure,imshow(Iemin) % 搜索Iec中的谷值

Iimpose = imimposemin(Iec, Iemin);

wat = watershed(Iimpose); % 分水岭分割

rgb = label2rgb(wat); figure, imshow(rgb); % 用不同的颜色表示分割出的不同区域

6、对矩阵进行四叉树分解

I = [ 1     1     1     1     2     3     6     6

         1     1     2     1     4     5     6     8

         1     1     1     1    10    15     7     7

         1     1     1     1    20    25     7     7

        20    22    20    22     1     2     3     4

        20    22    22    20     5     6     7     8

        20    22    20    20     9    10    11    12

        22    22    20    20    13    14    15    16];

S = qtdecomp(I,5);

full(S)

7、将图像分为文字和非文字的两个类别

I=imread('4-11.jpg');

I1=I(:,:,1);

I2=I(:,:,2);

I3=I(:,:,3);

[y,x,z]=size(I);

d1=zeros(y,x);

d2=d1;

myI=double(I);

I0=zeros(y,x);

for i=1:x

    for j=1:y

%欧式聚类

d1(j,i)=sqrt((myI(j,i,1)-180)^2+(myI(j,i,2)-180)^2+(myI(j,i,3)-180)^2);

d2(j,i)=sqrt((myI(j,i,1)-200)^2+(myI(j,i,2)-200)^2+(myI(j,i,3)-200)^2);

       

        if (d1(j,i)>=d2(j,i))

             I0(j,i)=1;

        end

    end

end

figure(1);

imshow(I);

% 显示RGB空间的灰度直方图,确定两个聚类中心(180,180,180)和(200,200,200)

figure(2);    

subplot(1,3,1);

imhist(I1);

subplot(1,3,2);

imhist(I2);

subplot(1,3,3);

imhist(I3);

figure(4);

imshow(I0);

8、形态学梯度检测二值图像的边缘

I=imread('wrod213.bmp');

imshow(I);

I=~I;        % 腐蚀运算对灰度值为1的进行

figure, imshow(I);

SE=strel('square',3); % 定义3×3腐蚀结构元素

J=imerode(~I,SE);

BW=(~I)-J;        % 检测边缘

figure,imshow(BW);

9、形态学实例——从PCB图像中删除所有电流线,仅保留芯片对象

I=imread('circbw.tif');

imshow(I);

SE=strel('rectangle',[40 30]); % 结构定义

J=imopen(I,SE);            % 开启运算

figure,imshow(J);

<span style="font-size: 18px;"></span>

MATLAB 边缘检测相关推荐

  1. 【图像处理】基于matlab边缘检测 Sobel、Roberts、Prewitt

    matlab边缘检测 Sobel.Roberts.Prewitt 一.Sobel边缘检测算法 1.算法简介 2.matlab实现 3.Sobel检测结果 二.Roberts边缘检测算法 1.算法简介 ...

  2. hough变换连接边缘matlab,边缘检测与Hough变换实验报告 Matlab - 图文

    <边缘检测与Hough变换实验报告 Matlab - 图文>由会员分享,可在线阅读,更多相关<边缘检测与Hough变换实验报告 Matlab - 图文(5页珍藏版)>请在人人文 ...

  3. 数字图像matlab边缘检测(一)

    1.图像的一阶边缘检测 图像的边缘检测,是图像分割的重要依据,一般图像的边缘可分为阶梯状,脉冲状,屋顶状 一阶微分算子主要是依据图像梯度在边缘取得最大值. 数据模板 a0 a1 a2 a3 a4 a5 ...

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

    Roberts边缘检测算子:根据一对互相垂直方向上的差分可用来计算梯度的原理,采用对角线方向相邻两像素之差. 小波变换的方法比较适用于展现夹带在正常信号中的瞬间反常现象,具有方向敏感性.所以可以边缘检 ...

  5. MATLAB边缘检测系统

    摘 要 在边缘检测是图像处理和计算机视觉中的基本问题,它的目的是标识出数字图像中亮度变化明显的点.图像经过边沿检测处理之后,不仅大幅度地减少了数据量,并且剔除了可以认为不相关的信息,保留了图像重要的结 ...

  6. matlab边缘检测

    ####概述: 边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点. 图像属性中的显著变化通常反映了属性的重要事件和变化. 这些包括(i)深度上的不连续. (i ...

  7. matlab 垂直边缘检测,matlab 边缘检测

    一.没有噪声时的检测结果 1 原始图像 2 Sobel算子边缘检测 3 Prewitt算子边缘检测 4 Roberts算子边缘检测 5 Laplace算子边缘检测 6 Canny算子边缘检测 二.加入 ...

  8. matlab 边缘检测 抠图,ps如何调整边缘的流程:边缘检测、调整边缘、输出(调整边缘抠图...

    文章详细介绍ps如何调整边缘的流程,遵循ps调整边缘抠图三步骤:边缘检测.调整边缘.输出来操作就OK. 关于ps如何调整边缘,我们使用一个截图来介绍ps调整边缘抠图的流程. ps调整边缘抠图的步骤如下 ...

  9. matlab 边缘检测不闭合,Matlab多种图像边缘检测方法

    1.用Prewitt算子检测图像的边缘 I = imread('bacteria.BMP'); BW1 = edge(I,'prewitt',0.04);             % 0.04为梯度阈 ...

最新文章

  1. 四步相移法怎么获得相位信息_如何拥有超强的学习能力?世界公认的费曼学习法了解一下...
  2. 错误代码中文查询GetLastError返回代码的含义
  3. php 商品规格笛卡尔积,PHP 求多个数组的笛卡尔积,适用于求商品规格组合【原创】...
  4. 模板类的析构函数如何写_如何写财务分析报告?全套财务分析报告模板(含分析方法及流程)...
  5. 【笔记】多态之Override
  6. 关于局云混合的新思路
  7. FT5X06 如何应用在10寸电容屏
  8. SAS编程基础 - 数据获取与数据集操作(1)
  9. CodeBlocks下载及安装教程(小白图解)
  10. 冰点还原精灵手工强制删除方法
  11. Vue使用debugger
  12. c语言求字符ascii,C语言中ASCII码是什么意思? c语言怎么求字符的ascii码
  13. 解决org.apache.hadoop.io.nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)
  14. Mint家族迎来了“瑟瑞娜”
  15. 前端程序员快速画原型的方法在这里
  16. 钩稽“及其在VE中的实现
  17. DirectShow 09 - 音视频捕捉
  18. Linux系统对中断的处理
  19. 鲜为人知的大小端问题
  20. 使用C++的CCF-CSP满分解决方案 202206-2 寻宝!大冒险!点集

热门文章

  1. android平台TP调试无法正常使用问题
  2. centos 6.5 关闭防火墙
  3. kvm.huge页、常用命令和桥接设置
  4. ★宣传广告变成社会标准
  5. phpcmsv9 幻灯片管理模块_UTF8
  6. cocos中添加显示文字的三种方式(CCLabelTTF 、CCLabelBMFont 和CCLabelAtlas)
  7. 来自damon的zencart二次开发教程-3.2复制模板(仿站)操作教程
  8. 网站在线访问人数统计并计算停留时间
  9. POJ 3687 Labeling Balls【拓扑排序】
  10. 严重: Dispatcher initialization failed java.lang.RuntimeException