Advertisement

图像分割(MATLAB实现)

阅读量:

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

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

今日学习笔记:

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

代码如下:

复制代码
 A=imread('666666.jpg');

    
 C=rgb2gray(A);
    
 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算子边缘检测');


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

复制代码
 A=imread('666666.jpg');

    
 C=rgb2gray(A);
    
 level=graythresh(C)
    
 b=im2bw(C,level);
    
 figure,imshow(b);

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

复制代码
 A=imread('coins.png');

    
 subplot(131);imshow(A);
    
 subplot(132);imhist(A)
    
 T=110;
    
 S=size(A)
    
 [maxczn,maxP] = max(A(:,:));
    
 [minczn,minP] = min(A(:,:));
    
 for i = 1:S(1)
    
     for j = 1:S(2)
    
     if A(i,j)>= T A(i,j) = 255;
    
     else A(i,j) = 0;
    
     end
    
     end
    
 end
    
 subplot(133);
    
 imshow(A);a

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

复制代码
 A=imread('666666.jpg');

    
 B=imread('coins.png');
    
 C=rgb2gray(A);
    
 level = graythresh(C)
    
 b=im2bw(C,level);
    
 level = graythresh(B)
    
 c=im2bw(B,level);
    
 figure,imshow(b),title('66666');
    
 figure,imshow(c),title('coins');
    
 B1=edge(b,'roberts');
    
 B2= edge(c,'prewitt');
    
 figure,imshow(B1,[]),title('Reberts');
    
 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) ,直到获取最优阈值。

全部评论 (0)

还没有任何评论哟~