精华内容
下载资源
问答
  • 局部阈值法matlab
    千次阅读
    2021-04-23 14:16:41

    在此提供两种方法,一,最大阈值分割(大律法):

    I=imread('test.jpg');

    subplot(1,3,1);imshow(I);title('原图');

    I1=rgb2gray(I);

    subplot(1,3,2);imhist(I1);title('直方图');

    level=graythresh(I);

    g=im2bw(I,level);%最佳阈值level

    subplot(1,3,3);imshow(g);title('阈值分割');

    %在Command窗口输出灰度阈值

    disp(strcat('graythresh 计算灰度阈值:',num2str(uint8(level*255))))

    第二种:迭代求阈值

    I=imread('C:test.jpg');

    Zmax=max(max(I));

    Zmin=min(min(I));

    TK=(Zmax+Zmin)/2;%初始阈值

    flag=1;

    [m,n]=size(I);

    while(flag)

    fg=0;

    bg=0;

    fgsum=0;

    bgsum=0;

    for i=1:m

    for j=1:n

    tmp=I(i,j);

    if(tmp>=TK)

    fg=fg+1;

    fgsum=fgsum+double(tmp);

    else

    bg=bg+1;

    bgsum=bgsum+double(tmp);

    end

    end

    end

    u1=fgsum/fg;

    u2=bgsum/bg;

    TKTmp=uint8((u1+u2)/2);

    if(TKTmp==TK)

    flag=0;

    else

    TK=TKTmp;

    end

    end

    disp(strcat('迭代后的阈值:',num2str(TK)));

    newI=im2bw(I,double(TK)/255);

    subplot(1,2,1);imshow(I);title('原图')

    subplot(1,2,2);imshow(newI);tltle('阈值分割图');

    更多相关内容
  • 在现有 GUI 程序上,返回二进制图像 (bw) 和局部阈值 (params) 参数。 使用没有 GUI 的功能。 bw = localthresh(img, ssize, msize, sthresh, mthresh) 对图像执行本地脱粒保持。 ssize :标准偏差过滤器的过滤...
  • matlab局部自适应阈值

    千次阅读 2021-04-21 01:36:06
    小型微型计算机系统 JournalofChineseComputerSystems 2017年7月第7期V01.38No.72017 一种自适应双阈值中值滤波方法 宗永胜,胡晓辉,张荣光 (兰州交通大学电子与信息.........应用 Matlab 对.........

    小型微型计算机系统 JournalofChineseComputerSystems 2017年7月第7期V01.38No.72017 一种自适应双阈值中值滤波方法 宗永胜,胡晓辉,张荣光 (兰州交通大学电子与信息......

    自适应地确定最佳小 波分解层数,根据各层细节系数中有用信息和噪声信息的分布特性以及细节系数的 正、负峰值比,动态调整各层细节系数的上、下阈值.应用 Matlab 对......

    图形学与辅助设计 Matlab环境下的彩色图像皮肤区域分割 系统设计陈茂源(中国...

    图像分割中采用自适应阈值方法较采用直方 图分割具有较好的分割效果。针对较为复杂的...

    Gonzalez. Digital Image Processing Using MATLAB void cvThresholdOtsu(IplImage* src, IplImage* dst) { int height=src->height; int width=src->width; /......

    突出图像中的局部边缘 !然后定义象素的 &边 缘强度 $!通过设置阈值的方法 提取边缘点集 ’ 由于噪声和模糊的存在 ! 监测到的边界可能会变 宽或在某点处发生......

    根 据对全图使用统一阈值还是对不同区域使用不同阈值,可以分为全局阈值方法 (global thresholding)和局部阈值方法(local thresholding,也叫做自适应阈 值方法 ......

    关键词:二值化;全局阈值法;局部阈值法;基本自适应阈值法;图像分割; MATLAB GUI 0 引言 图像分割技术作为图像处理领域中极为重要的内容之一, 是实现图像分析和 ......

    根据对全图使 用统一阈值还是对不同区域使用不同阈值,可以分为全局阈值方法 (global thresholding)和局部阈值方法(local thresholding,也叫做自适应阈值方法 adaptive......

    直方图阈值分割技术 (一)定义与原理 灰度直方图就是灰度级的像素数 ni 与灰度 i 的二维关系,它反映了一幅图像 上灰度分布的统计特性,在 MATLAB 中使用函数“......

    ('全局阈值去噪图像'); J2=medfilt2(J1); subplot(2,2,4);imshow(J2); title('第二次去噪图像'); PS:在 MATLAB 图像处理工具箱中,提供了 medfilt2 ......

    关键词:二值化;全局阈值法;局部阈值法;基本自适应阈值法;图像分割; MATLAB GUI 0 引言图像分割技术作为图像处理领域中极为重要的内容之一, 是实现图像分析和 ......

    根 据对全图使用统一阈值还是对不同区域使用不同阈值,可以分为全局阈值方法 (global thresholding)和局部阈值方法(local thresholding,也叫做自适应阈 值方法 ......

    了一部分噪声并最大可能保留指纹原图的细节 特征,为下面的处理工作奠定了坚实的基础.目前为止比较好的二值化算法有全 局阈值法、局部自适应阈值法等.全局阈值法抗......

    关键词:图像分割;阈值;matlab . Based on thresholdi...

    ('全局阈值去噪图像'); J2=medfilt2(J1); subplot(2,2,4);imshow(J2); title('第二次去噪图像'); PS:在 MATLAB 图像处理工具箱中,提供了 medfilt2 ......

    基于MATLAB的图像增强处理_数学_自然科学_专业资料。第一章:数字图像处理简...

    关键词:图像分割,区域阈值.Matlab中图分类号:TP751 文献标识码:A ...

    BP神经网络matlab实例(简单而经典)_计算机软件及应用_IT/计算机_专业...

    (Cb, Sb); %B 通道局部阈值 % --- % 自适应阈值 ---x4_...

    展开全文
  • 这是使用积分图像方法对传统 Niblack 局部图像阈值化的实现,无论邻域大小如何,都可以保证恒定的计算时间。 该方法可以描述为: 如果像素 > (mean + k * standard_deviation) 像素 = 对象; 别的像素 = 背景; ...
  • 这个函数用来计算N Black局部阈值,这个算法在二值化中很有用
  • matlab开发-Sauvola局部图像阈值。Sauvola二值化方法非常适合于光线不足或文档有污点的情况。
  • 如果局部对比度(max-min)高于或等于对比度阈值,则阈值设置为局部midgrey值(局部窗口中最小和最大灰度值的平均值)。 如果局部对比度低于对比度阈值,则认为邻域仅由一类组成,并且像素根据 midgrey 的值设置为...
  • 全局阈值分割

    全局阈值分割

    迭代法阈值获取方法:
    1)选取一个的初始估计值T(128);
    2)用T分割图像。这样便会生成两组像素集合:G1由所有灰度值大于T的像素组成,而G2由所有灰度值小于或等于T的像素组成。
    3)对G1和G2中所有像素计算平均灰度值u1和u2。
    4)计算新的阈值:T=1/2(u1 + u2)。
    重复步骤(2)到(4),直到得到的T值之差小于一个事先定义的参数T0。

    先导进来图片

    I = imread('rice.png');
    [width,height] = size(I);
    T0 = 1;%设置门限
    T1= 128; %初始阈值T1
    %设置G1,G2两个列向量,各自统计<T和>T的值
    gray_leval_1 = 1;
    gray_leval_2 = 1;
    

    matlab里没有do-while语句,所以用
    while 1

    break
    代替

    while 1
        for i = 1:width
            for j = 1:height
                if I(i,j)>T1
                    G1(gray_leval_1) = I(i,j); %得到分组G1
                    gray_leval_1 = gray_leval_1 + 1;
                else
                    G2(gray_leval_2) = I(i,j); %得到分组G2
                    gray_leval_2 = gray_leval_2 + 1;
                end
            end
        end
        %计算G1、G2均值
        avg1 = mean(G1);
        avg2 = mean(G2);
        T2 = (avg1 + avg2)/2;
        if abs(T2 - T1)<T0 
            break;
        end
        T1 = T2;
        gray_leval_1 = 1;
        gray_leval_2 = 1;
    end
    T1
    T1=uint8(T1);
    

    T1=130.7
    然后画出来

    for i=1:width
        for j=1:height
            if(I(i,j)<T1)
                BW1(i,j)=0;
            else 
                BW1(i,j)=1;
            end
        end
    end
    subplot(1,3,1);imshow(I)
    subplot(1,3,2);imshow(BW1);title('阈值分割');
    

    matlab自带的Otus阈值分割方法

    T3=graythresh(I)
    BW2=imbinarize(I,T3);%Otus阈值分割
    subplot(1,3,3);imshow(BW2);title('Otus阈值分割');
    

    I=130.9,差不多哈。
    结果
    在这里插入图片描述

    这个阈值分割方法存在偏差,如果两个峰值数目相差越多,偏差越大
    (假设第一次迭代前,T在正确位置,很容易看出来,随着迭代进行,越来越偏离)
    在这里插入图片描述
    计算的T=93,目测值应该在110-120吧。

    多说一句,图像处理,一定要double一下,否则可能出现问题。比如,我想把大米图的直方图暗部拉大(偏向0),以体现这种偏差,就用了个一次函数的变换,结果这样了

    在这里插入图片描述

    因为先乘k,结果>255的全归于255,以后全错。

    自适应阈值分割

    1)将整幅图像分成一系列互相之间有50%重叠的子图像;
    2)做出每个子图像的直方图;
    3)检测各个子图像的直方图是否为双峰,如果是,则采用最佳阈值法确定一个阈值,否则就不进行处理;
    4)根据对直方图为双峰的子图像得到的阈值通过插值得到所有子图像(像素点)的阈值。
    仨坑
    1、怎么割图像啊(这个还好吧,也不算割,设置好步长来就行了)
    2、怎么检测单峰还是双峰啊,单峰的话,空缺imresize是不行的。
    3、怎么插值啊(主要是老师上课讲的太玄学,按照距离加权,四点平均,把相距很远的点内部全部插满,听懵了。后来想到,matlab直接imresize啊!然后就码下来啦)
    1、分割方式设置好矩形大小和步长就行
    2、峰值个数没写,matlab统计工具箱里好像有正态拟合图像,而不是plot()这种拟合,plot拟合只是画的圆滑了些还是很多局部峰值
    在这里插入图片描述
    3、插值方式采用了imresize函数
    A=imresize(I,2,‘nearest’);%最近邻插值
    B=imresize(I,2,‘bilinear’);%双线性
    C=imresize(I,2,‘bicubic’);%双三次

    I=imread('rice.png');
    T=zeros(15);
    for i=0:14
        for j=0:14
            img = imcrop(I,[1+i*16 1+j*16 31 31]);%内核32*32,步长设置为16
            t=255*graythresh(img);%我这里直接用了
            T(j+1,i+1)=t;%这里注意坐标顺序反着
        end
    end
    T=uint8(T);
    T1=imresize(T,[256 256],'bilinear');%看了下貌似双线性插值最好
    %%
    for i=1:256
        for j=1:256
            if (I(i,j)<T1(i,j))
                BW(i,j)=0;
            else
                BW(i,j)=1;
            end
        end
    end
    imshow(BW)
    

    有一个地方要注意,图像[i,j],矩阵得是[j,i]。

    阈值图像:
    在这里插入图片描述
    底部更暗,所以阈值也更低才能滤完整
    阈值分割结果
    在这里插入图片描述
    嗯,上部噪声少了,下部也更完整了
    然后试了下这位兄弟博客的图片
    这老哥跑的OPENCV中自带的函数,效果一级棒(怎么看着像边缘检测)
    我这个…毕竟没字的地方有黑背景有白背景,一加权,也没法搞,不过还阔以吧
    在这里插入图片描述

    matlab中自带的阈值分割,对大米图还行。全局阈值分割底部大米都割残了,这个方法完整,可是,这跟局部有关系?貌似先调了调灰度,就好分割了

     I=imread('rice.png');
     I=im2double(I);
    se=strel('disk',10);%se.Neighborhood:10*10圆盘
    ft=imtophat(I,se);% 高帽变换
    gt=uint8(255*ft);
    Th=graythresh(ft);                       
    G=imbinarize(ft,Th);%阈值分割                       
    figure,imshow(G),title('局部阈值');
    

    在这里插入图片描述

    Otsu算法

    matlab自带的阈值分割方法
    参考动态阈值–大津法基于Otsu算法的图像自适应阈值分割,重新打了一下
    调用:

    [counts x] = imhist(img);
    [m n] = size(img);
    BW1 = otsu(counts, m*n);
    第一个元素为直方图,第二个元素为图片大小
    或者:
    T=graythresh(I)
    BW2=imbinarize(I,T);

    原理:
    在这里插入图片描述

    在这里插入图片描述
    让T遍历所有灰度值,找到g的最大值
    代码:

    function level = otsu(histogramCounts, total)%histogramCounts是图像的直方图, total图像的总像素数
    sum0 = 0;
    w0 = 0;%像素个数
    maximum = 0.0;%保存T的最大值
    total_value = sum((0:255).*histogramCounts');
    for ii=1:256
        w0 = w0 + histogramCounts(ii);%<T像素个数累加
        if (w0 == 0)
            continue;
        end
        w1 = total - w0;
        if (w1 == 0)%遍历结束>T像素=0
            break;
        end
        sum0 = sum0 +  (ii-1) * histogramCounts(ii);%灰度和
        m0 = sum0 / w0;%平局灰度u0
        m1 = (total_value - sum0) / w1;%平局灰度u1
        icv = w0 * w1 * (m0 - m1) * (m0 - m1);
        if ( icv >= maximum )
            level = ii;
            maximum = icv;
        end
    end
    end
    
    展开全文
  • Nick 的二值化从基本的 Niblack 算法中推导出阈值公式,这是许多局部图像阈值方法的父级。 Nick 方法相对于 Niblack 的主要优势在于,它通过降低二值化阈值显着改善了“白色”和浅色页面图像的二值化。 方法说明...
  • 从网上收集的matlab下的Otus阈值方法、迭代阈值、局部阈值对比,可以运行,但是没整理比价乱
  • 自适应模糊阈值法matlab代码SPIE 2019医学影像报告 郝江〜02/25/2019〜 目录 电脑辅助设计 使用弱监督和无监督对抗域自适应的独立于供应商的软组织病变检测 这项工作是针对软组织病变检测的对抗域适应 当前的软病变...
  • 阈值分割 Matlab

    2016-08-24 21:06:24
    阈值分割 自适应阈值 全局阈值 局部阈值 Matlab
  • 应用Matlab工具箱演示对比度增强,局部平滑,中值滤波,小波工具,边缘检测,图像二值化,Hough变换直线提取,灰度阈值分割,四叉树分裂合并等,并完成这些处理程序的GUI集成。
  • 该算法计算窗口中的平均值,如果像素的强度高于平均值,则将像素设置为白色,否则将像素设置为黑色。 为了提高抗噪声能力,可以将阈值移动常数c。 伪代码: 如果(像素 >= mean-c) 像素 = 1; 别的像素 = 0; 结尾
  • %执行局部阈值处理 SIG=stdfilt(f,ones(3));%stdfilt函数用于计算局部标准差 SIG=im2bw(SIG); %g=rgb2gray(g); figure,imshow(SIG,[]);title('局部标准差图像'); figure,imshow(mat2gray(g));title('局部阈值处理的...
  • matlab开发-平均阈值局部图像阈值。meanthresh执行简单的本地图像阈值
  • 针对各种阈值分割算法,本文在最后做了详细的研究,并给出了相应的MATLAB程序源代码。[关键词]:数字图像处理;图像分割;阈值;算法ResearchonlgorithmAbstract:ImageInthisthesis,thedigi...

    [摘要]:图像分割是一种重要的数字图像处理技术。本文首先介绍了图像分割技术,其次总结了目前图像分割技术中所用到的阈值、边缘检测、区域提取等方法以及分水岭算法。针对各种阈值分割算法,本文在最后做了详细的研究,并给出了相应的MATLAB程序源代码。

    [关键词]:数字图像处理;图像分割;阈值;算法

    Research onlgorithm

    Abstract:ImageIn thisthesis, thedigital image processing technique will be illustrated in the first place. Besides, it summarizes the method of image segmentation, such as threshold,edge detection, region extraction, andwatershedalgorithm. Last but not least, it makes a study of variousthresholdimagesegmentation algorithms. Meanwhile, the code of MATLAB will be showed.

    Key words:DigitalImageProcessingTechnique;Image Segmentation;Threshold; Algorithm

    引言

    随着科学技术的发展,人们对信息处理和信息交流的要求越来越高,最典型的表现是手机及相关数码产品的更新换代速度加快。图像信息具有直观、形象、易懂和信息量大等特点,因此它是人们日常生活、生产中接触最多的信息种类之一。正是因为图像所带给人们的直观信息的特点,使得数字图像处理技术随着计算机技术、多媒体技术的发展取得了长足的进步。

    在图像分析中,通常需要将关心的目标从图像中提取出来,这种从图像中将某个区域与其他部分进行分离并提取出来的处理,就是图像分割。因为图像分割实际上就是区分图像中的“前景目标”和“背景”,所以通常又称之为图像的二值化处理。图像分割是图像处理中的一项关键技术,自20世纪70年代起一直受到人们的高度重视,至今已提出上千种分割算法,但因尚无通用的分割理论,现提出的分割算法大都是针对具体问题的,并没有一种适合所有图像的通用分割算法。另外,还没有制定出选择适用分割算法的标准,这给图像分割技术的应用带来许多实际问题。最近几年又出现了许多新思路、新方法或改进算法。总的来说,图像分割是图像识别和图像分析的基本前提步骤,图像分割的质量好坏直接影响后续图像处理的效果,甚至决定成败。因此,图像分割在数字图像处理技术中占有非常重要的地位。

    1.图像分割概述

    1.1.图像分割的定义

    图像分割时指将一副图像分解为若干互不交叠的、有意义的、具有相同性质的区域。好的图像分割应具备以下特征:

    ⑴ 分割出来的各个区域对某种特性(例如灰度和纹理)而言具有相似性,区域内部是连通的且没有过多小孔

    ⑵ 相似区域对分割所依据的性质有明显的差异

    ⑶ 区域边界是明确的

    图像分割更形式化的定义如下:令

    blog_758521400102vi7i.html表示图像,

    blog_758521400102vi7i.html表示具有相同性质的谓词,图像分割把

    blog_758521400102vi7i.html分解成

    blog_758521400102vi7i.html个区域

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html,满足:

    blog_758521400102vi7i.html

    blog_758521400102vi7i.htmlФ,

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    条件⑴表明分割区域要覆盖整个图像且各区域互不重叠,条件⑵表明每一个区域都具有相同的性质,条件⑶表明相邻的两个区域性质相异不能合并为一个区域。

    实际的图像处理和分析都是面向某种具体应用的,所以上述条件中的各种关系也要视具体情况而定。目前,还没有一种通用的方法可以很好的兼顾这些约束条件,也没有一种通用的方法可以完成不同的图像分割任务。原因在于实际的图像时千差万别的,还有一个重要原因在于图像数据质量的下降,包括图像在获取和传输过程引入的各种噪声以及光照不均与等因素。到目前为止,对图像分割的好坏和评价还没有统一的准则。因此,图像分割使图像分析和计算机视觉中的经典难题。至今,提出的分割算法已有上千种,每年还有不少新算法出现。这些算法的实现方式各不相同,然而大都基于图像在像素级的两个性质:不连续性和相似性。属于同一目标的区域一般具有相似性,而不同区域在边界出现不连续性。

    1.2.图像分割的方法

    图像分割方法依照分割时所依据的图像特性不同,大致可以分为四大类。第一类是阈值方法,这种方法是根据图像灰度值得分布特性确定某个阈值来进行图像分割的。第二类为边缘检测方法,这类方法是通过检测出封闭某个区域的边界来进行图像分割的。通俗地讲,这类方法实际上是沿着闭合的边缘线将其包围的区域剪切出来。第三类方法是区域提取方法,这类方法的特点是根据特定区域与其他背景区域特性上的不同来进行图像分割的。另外,还有一种基于形态学的分水岭算法。

    1.2.1.阈值方法

    所谓阈值分割方法就是确定某个阈值

    blog_758521400102vi7i.html,根据图像中每个像素的灰度值大小或小于该阈值

    blog_758521400102vi7i.html,来进行图像分割。阈值方法的数学模型如下:

    设原图像为

    blog_758521400102vi7i.html,经过分割处理后的图像为

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html为二值图像,则有:

    blog_758521400102vi7i.html

    根据上式可知,阈值方法的核心就是阈值

    blog_758521400102vi7i.html的确定方法。

    1.2.2.边缘检测方法

    边缘检测技术对于处理数字图像非常重要,因为边缘时所要提取目标和背景的边界线,提取出边缘才能将目标和背景区分出来。在图像中,边界表明一个特征区域的始终和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同区域内部的特征或属性是不同的,边缘检测正是利用物体和背景在某种图像特性上的差异来实现的,这些差异包括灰度、颜色或纹理特征。边缘检测实际上就是检测图像特性发生变化的位置。

    最简单的边缘检测方法是边缘检测算子,它利用相邻区域的像素值不连续的性质,采用一阶或二阶导数来检测边缘点。近年来还提出了基于曲面拟合的方法,基于边界曲线拟合的方法。

    1.2.3.区域提取方法

    数字图像的像素分布在一定程度上可以反映图像内容的特征,利用像素值的分布特征进行图像分类成了目前对图像进行分类的常用手段。图像分类的性能主要取决于图像的特征提取,数字图像的特征提取主要从颜色、纹理、形状等几个方面提取图像的特征。

    1.2.4.分水岭算法

    分水岭算法是一种借鉴了形态学的分割算法,在该方法中,将一副图像看成是一个拓扑地图其中灰度值

    blog_758521400102vi7i.html对应的高度图。高灰度值对应着山峰,低灰度对应着山谷。水总是朝着低的地方流动,直到某一局部低洼处才停下来,这个低洼处被称为吸水盆地。最终所有的水会分聚在不同的吸水盆地,吸水盆地之间的山脊称为分水岭。水从分水岭流下时,它朝不同可能的吸水盆地流去的可能性是相等的。将这种想法用于图像分割,就是要在灰度图像中找出不同的吸水盆地和分水岭,由这些不同的吸水盆地和分水岭组成的区域即为要分割的目标。MATLAB图像处理工具箱中的watershed函数可以用于显示分水岭算法。

    2.基于MATLAB的图像阈值分割算法的研究

    2.1.人工阈值选择法

    阈值分割最简单的方法就是人工选择法。基于灰度阈值的分割方法,其关键是如何合理的选择阈值。人工选择方法是通过人眼的观察,应用人对图像的知识,在分析图像直方图的基础上,人工选择出合理的阈值。也可以在人工选择出阈值后,根据分割的效果,不断地进行交互操作,从而选择出最佳的阈值。例如,分析图2.1,做出其灰度直方图(见图2.2),这里选择0.3为阈值,则可得到较为理想的分割结果(见图2.3)。

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    图2.1 国际标准测试图片 图2.3 阈值分割后的图片

    blog_758521400102vi7i.html

    图2.2 图2.1的灰度直方图

    显然,灰度直方图的峰谷阈值方法是一种有效且非常简单的阈值方法,但是该方法有一个局限性,就是要求图像的灰度直方图必须具有双峰型。

    2.2.自动阈值选择算法

    虽然人工选择方法可以选取出令人满意的阈值,但是在无人介入的情况下自动选区阈值是大部分应用的要求,自动阈值选择方法通常使用灰度直方图来分析图像中灰度值的分布,结合特定的应用领域知识来选取最合适的阈值。

    2.2.1.

    blog_758521400102vi7i.html-参数法

    blog_758521400102vi7i.html-参数法是针对预先已知图像中目标物所占比例的情况下,所采用的一种简单且有效的方法。

    blog_758521400102vi7i.html-参数法的设计思想是,选择一个值

    blog_758521400102vi7i.html,使前景目标物所占的比例为

    blog_758521400102vi7i.html,背景所占比例为

    blog_758521400102vi7i.html

    根据上面的原理:

    blog_758521400102vi7i.html-参数法的具体步骤如下:

    ①首先获得理想状态下的目标物所占画面的比例

    blog_758521400102vi7i.html

    ②尝试性地给定一个阈值

    blog_758521400102vi7i.html

    ③计算在

    blog_758521400102vi7i.html下判定的目标物的像素点数

    blog_758521400102vi7i.html,此时目标物所占比例为

    blog_758521400102vi7i.html

    ④当

    blog_758521400102vi7i.html足够接近

    blog_758521400102vi7i.html时,此时得到最佳分割阈值

    blog_758521400102vi7i.html

    2.2.2.迭代法

    迭代法的的设计思想是,开始时选择一个阈值作为初始估计值,然后按某种策略不断的改进这一估计值,直到满足给定的准则为止。在迭代过程中,关键之处在于选择什么样的阈值改进策略。好的改进策略应该具备两个特征:一是能够快速收敛,二是在每一个迭代过程中,新产生的阈值优于上一次的阈值。下面介绍一种迭代法:

    ①选择图像灰度的中值作为初始阈值

    blog_758521400102vi7i.html

    ②利用阈值

    blog_758521400102vi7i.html把图像分割为两个区域

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html,用下式计算区域

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html的灰度均值

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html为第

    blog_758521400102vi7i.html类中的像素个数

    ③计算出

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html后,用下式计算出新的阈值

    blog_758521400102vi7i.html

    ④重复②和③,直到

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html的差小于某个特定的值

    2.2.3.均匀性度量法

    均匀性度量法的设计思想是,假设当图像被分为目标物和背景两个类别时,属于同一类别内的像素值分布应该具有均匀性。在这里采用方差来度量像素间的均匀性。设原图像为

    blog_758521400102vi7i.html,结果图像为

    blog_758521400102vi7i.html。通过图像分割将原图像分为

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html(即背景与目标)两类,则算法步骤如下:

    ①给定一个初始阈值

    blog_758521400102vi7i.html

    ②分别计算两类中的方差

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    其中,

    blog_758521400102vi7i.html为第

    blog_758521400102vi7i.html类中的像素个数

    ③分别计算两类在图像中的分布概率

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    ④选择最佳的阈值

    blog_758521400102vi7i.html,使得图像按照该阈值分为

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html两类后,满足

    blog_758521400102vi7i.html

    2.2.4.类间最大距离法

    类间最大距离法德设计思想是,在某个适当的阈值下,图像分割后的前景目标与背景两个类之间的差异最大为最佳阈值。在这里两个类别(目标与背景)的差异,用两个类别中心与阈值之间的距离差来度量。具体步骤如下:

    ①给定一个初始阈值

    blog_758521400102vi7i.html,将图像分为

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html两类

    ②计算两类的灰度均值

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    ③计算两类的相对距离值

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    ④选择最佳的阈值

    blog_758521400102vi7i.html,使得图像按照该阈值分为

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html两类后,满足

    blog_758521400102vi7i.html

    2.2.5.Otsu法

    Otsu是一种使类间方差最大的自动确定阈值的方法,该方法具有简单、处理速度快的特点,是一种常用的阈值选取方法。MATLAB中的graythresh函数求取阈值采用的就是Otsu法。具体步骤如下:

    ①给定一个初始阈值

    blog_758521400102vi7i.html,将图像分为

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html两类

    ②计算两类的灰度均值

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html,以及图像的总体灰度均值

    blog_758521400102vi7i.html

    ③计算两类的概率

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    ④计算类间方差

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    ⑤选择最佳的阈值

    blog_758521400102vi7i.html,使得图像按照该阈值分为

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html两类后,满足

    blog_758521400102vi7i.html

    2.2.6.最大熵法

    熵是信息论中对不确定性的度量,是对数据中所包含信息量大小的度量。熵取最大值时,就表明获得的信息量为最大。最大熵法的设计思想是,选择适当的阈值将图像分为两类,两类的平均熵之和为最大时,可以从图像中获得最大信息量,以此来确定最佳阈值。具体步骤如下:

    ①求出图像中的所有像素的分布概率

    blog_758521400102vi7i.html,图像灰度的分布范围为

    blog_758521400102vi7i.html

    ②给定一个初始阈值

    blog_758521400102vi7i.html,将图像分为

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html两类

    ③分别计算两个类的平均相对熵

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    ④选择最佳的阈值

    blog_758521400102vi7i.html,使得图像按照该阈值分为

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html两类后,满足

    blog_758521400102vi7i.html

    2.2.7.最大类间、类内方差比法

    从统计意义上讲,方差是表征数据分布不均衡性的统计量,要通过阈值对两类问题进行分割,显然,适当的阈值使得两类数据间的方差越大越好,表明该阈值的确将两类不同的区域分开了,同时希望属于同一类的方差越小越好,表明同一类区域有一定的相似性。因此可以采用类内,类间方差比作为选择阈值的评价参数。具体步骤如下:

    ①求出图像中的所有像素的分布概率

    blog_758521400102vi7i.html,图像灰度的分布范围为

    blog_758521400102vi7i.html

    ②给定一个初始阈值

    blog_758521400102vi7i.html,将图像分为

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html两类

    ③计算两类的方差

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html,和灰度均值

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html,以及图像的总体灰度均值

    blog_758521400102vi7i.html

    ④计算两类的概率

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    ⑤计算类间方差

    blog_758521400102vi7i.html和类内方差

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    ⑥选择最佳的阈值

    blog_758521400102vi7i.html,使得图像按照该阈值分为

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html两类后,满足

    blog_758521400102vi7i.html

    2.2.8.聚类方法

    所谓聚类算法,是采用模式识别中的聚类思想,以类内保持最大相似性以及类内保持最大距离为目标,通过迭代优化获得最佳的图像分割阈值。具体步骤如下:

    ①给定一个初始的代表两个类别

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html的中心灰度值

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html,两类的方差

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    ②进行分类处理,对某个像素,若

    blog_758521400102vi7i.html,则

    blog_758521400102vi7i.html,否则,

    blog_758521400102vi7i.html

    ③对

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html中的所有像素分别重新计算其中心点的值

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html,中心点的值取每个类的均值,同时计算两类的方差

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html

    ④如果

    blog_758521400102vi7i.html,则返回②,否则将该分类结果作为最终的结果输出。其中

    blog_758521400102vi7i.html

    blog_758521400102vi7i.html为新分类的两类像素分布概率

    2.2.9.局部阈值方法

    前面给出的阈值算法,对于较为简单的图像(即目标与背景比较容易区分),上面的方法简单有效。但是对于较为复杂的图像,则往往会产生一些问题。图2.4给出了国际标准测试图像(图2.1)的局部阈值分割结果。

    blog_758521400102vi7i.html

    图2.3 局部阈值分割后的图片

    2.3.各种阈值算法的评价

    对于目前的各种阈值分割算法,尚无一种固定的分割评价标准。分割的好与坏取决于实际需求和技术人员的主观因素。

    参考文献

    [1]朱虹.数字图像处理基础[M].北京:科学出版社,2009.125~146.

    [2]秦襄培.MATLAB图像处理与界面编程宝典[M].北京:电子工业出版社,2009.441~477.

    展开全文
  • Wolf 方法解决了 Sauvola 方法中背景和文本像素的灰度级接近时的问题。 方法说明以及与其他方法的比较可在http://dx.doi.org/10.1117/12.805827获得。
  • Phansalkar 方法描述于: N. Phansalkar、S. More、A. Sabale 和 M. Joshi,“用于检测多样性染色细胞学图像中细胞核的自适应局部阈值”,2011 年国际通信和信号处理会议,2011 年,第 218-220 页: IEEE。
  • Vegas-Sánchez-Ferrero,“多区域图像分割的局部模糊阈值方法”,基于知识的系统,第一卷。 83,第 1-12 页,07/2015。 网址...
  • MATLAB图像分割之阈值分割

    千次阅读 2021-12-02 14:20:52
    如果在整个图像中只使用一个阈值,则这种方法叫做全局阈值法,整个图象分成两个区域,即目标对象(黑色)和背景对象(白色)。全局阈值将整个图像的灰度阈值设置为常数。 I=imread('veg.png'); figure,imshow(I); I2=...
  • 针对MATLAB工作环境下的彩色数字图像结构进行了论述分析,论述了数字图像基于阈值分割的基本原理与方法步骤,对于运用迭代求最佳阈值的计算方法进行了系统说明与分析。基于阈值分割技术提出一种新的灰度算法,在此...
  • 局部自适应阈值分割方法

    万次阅读 2018-03-22 09:34:47
    Local_Yanowitz 由于光照的影响,图像的灰度可能是不均匀分布的,此时...Yanowitz提出了一种局部阈值分割方法。结合边缘和灰度信息找到阈值表面(treshhold surface)。在阈值表面上的就是目标。 算法的主要...
  • 不均匀光照下的文字分割,综合运用同态滤波方法、Bernsen局部阈值法、边缘识别
  • 局部二值模式的改进形式:通过多阈值计算彩色,灰度等图像的lbp值
  • 为了提高自适应滤波器的性能,开发了一种新算法,该算法增加了基本算法的优势,即在必要时使用较小的窗口,靠近和存在小细节区域,通过增加局部方差增加与噪声方差的比率,超过某个阈值(作为参数提供给过滤器)。...
  • 1 迭代实践代码: 2 迭代实践截图: 3 均匀性度量实践代码: 4 均匀性度量实践截图: 5 类间最大距离实践代码: 6 类间最大距离实践截图: 7 最大类内类间方差比法实践代码...12 局部阈值实践截图:......
  • MATLAB阈值图像分割系统

    千次阅读 2021-08-25 11:59:53
    3.1图像阈值分割技术基本原理 所谓图像分割是指根据灰度、彩色、空间纹理、几何形状等特征把图像划分成若干个互不相交的区域,使得这些特征在同一区域内,表现出一致性或相似性,而在不同区域间表现出明显的不同。...
  • 卷图像的交互式图像查看器。 使用局部阈值算法的自动 ROI 分割。 开发用于分析神经活动的时变荧光成像数据。
  • 保守值法matlab代码Matlab代码用于多级阈值图像分割方法 该存储库包含论文的代码“使用非局部均值2D直方图和指数Kbest引力搜索算法的最佳多级图像阈值分割”。 本文提出了一种新颖的基于二维(2D)直方图的分割方法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,261
精华内容 2,104
关键字:

局部阈值法matlab