• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

图像分割MATLAB实现

武飞扬头像
万里直腰
帮助2

图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。

现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于同一区域的像素赋予相同的编号。

今日学习笔记:

1、利用roberts、prewitt、soble、log和canny等算子,对步骤一灰度图像进行边缘检测 

 代码如下:

  1.  
    A=imread('666666.jpg');
  2.  
    C=rgb2gray(A);
  3.  
    B1=edge(C,'roberts');
  4.  
    B2= edge(C,'prewitt');
  5.  
    B3= edge(C,'sobel');
  6.  
    B4= edge(C,'log');
  7.  
    B5= edge(C,'canny');
  8.  
    figure,imshow(B1),title('Reberts算子边缘检测');
  9.  
    figure,imshow(B2,[]),title('Prewitt算子边缘检测');
  10.  
    figure,imshow(B3,[]),title('Sobel算子边缘检测');
  11.  
    figure,imshow(B4,[]),title('LoG算子边缘检测');
  12.  
    figure,imshow(B5,[]),title('canny算子边缘检测');

学新通

学新通

2、自定阈值,对转换后的灰度图像进行阈值分割 

  1.  
    A=imread('666666.jpg');
  2.  
    C=rgb2gray(A);
  3.  
    level=graythresh(C)
  4.  
    b=im2bw(C,level);
  5.  
    figure,imshow(b);

学新通

 3、打开Matlab内容自带的coins.png图像,显示并观察它的直方图,选定一个阈值对其进行分割

  1.  
    A=imread('coins.png');
  2.  
    subplot(131);imshow(A);
  3.  
    subplot(132);imhist(A)
  4.  
    T=110;
  5.  
    S=size(A)
  6.  
    [maxczn,maxP] = max(A(:,:));
  7.  
    [minczn,minP] = min(A(:,:));
  8.  
    for i = 1:S(1)
  9.  
    for j = 1:S(2)
  10.  
    if A(i,j)>= T A(i,j) = 255;
  11.  
    else A(i,j) = 0;
  12.  
    end
  13.  
    end
  14.  
    end
  15.  
    subplot(133);
  16.  
    imshow(A);a
学新通

学新通

 4、利用graythresh函数自动获取灰度图的阈值和上一题灰度图的阈值并进行分割 

  1.  
    A=imread('666666.jpg');
  2.  
    B=imread('coins.png');
  3.  
    C=rgb2gray(A);
  4.  
    level = graythresh(C)
  5.  
    b=im2bw(C,level);
  6.  
    level = graythresh(B)
  7.  
    c=im2bw(B,level);
  8.  
    figure,imshow(b),title('66666');
  9.  
    figure,imshow(c),title('coins');
  10.  
    B1=edge(b,'roberts');
  11.  
    B2= edge(c,'prewitt');
  12.  
    figure,imshow(B1,[]),title('Reberts');
  13.  
    figure,imshow(B2,[]),title('Prewitt');

学新通

 5、全局阈值分割

可以通过全局的信息,例如整个图像的灰度直方图。如果在整个图像中只使用一个阈值,则这种方法叫做全局阈值法,整个图像分成两个区域,即目标对象( 黑色)和背景对象(白色)。全局阈值将整个图像的灰度阈值设置为常数。

对于物体和背景对比较明显的图像,其灰度直方图为双峰形状,可以选择两峰之间的波谷对应的像素值作为全局阙值,将图像分割为目标对象和背景。

6、Otsu阈值分割

最大类间方差法,又称为Otsu算法,该算法是在灰度直方图的基础上采用最小二乘法原理推导出来的,具有统计意义上的最佳分割。它的基本原理是以最佳阈值将图像的灰度值分割成两部分,使两部分之间的方差最大,即具有最大的分离性。

7、迭代式阈值分割

(1) 设定参数T0,并选择一个初始的估计阈值T1

(2)用阈值T分割图像。将图像分成两部分: G1 是由灰度值大于T1的像素组成,G2是由灰度值小于或等于T1的像素组成。

(3)计算G1和G2中所有像素的平均灰度值u1和u2,以及新的阈值T2 =(u1 u2)/2。

(4)如果|T2-T1|<T0,则推出T2即为最优阈值;否则,将T2赋值给T1,并重复步骤(2) ~ (4) ,直到获取最优阈值。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhiahaaf
系列文章
更多 icon
同类精品
更多 icon
继续加载