精华内容
下载资源
问答
  • 局部阈值分割原理
    千次阅读
    2018-11-15 14:05:19

    当人观察景物时,在视觉系统中对景物进行分割的过程是比不可少的,这个过程非常有效,以至于人所看到的并不是复杂的场景,而是一些物体的集合体。该过程用数字图像处理描述,就是把图像分成若干个特定的、具有独特性质的区域,每一个区域代表一个像素的集合,每一个集合又代表一个物体,而完成该过程的技术通常称为图像分割,它是图像处理到图像分析的关键步骤。图像的分割主要有:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法。
    本文主要围绕阈值分割技术展开,它是一种基于区域的、简单的通过灰度值信息提取形状的技术,因其实现简单、计算量小、性能稳定而成为图像分割中最基本和应用最广泛的分割技术。往往阈值分割后的输出图像只有两种灰度值:255和0,所以阈值分割处理又常称为图像的二值化处理。阈值分割处理主要是根据灰度值信息提取前景,所以对前景物体与背景有较强对比度的图像的分割特别有用。对对比度很弱的图像进行阈值分割,需要先进行图像的对比度增强,然后再进行阈值处理。
    全局阈值分割:灰度图像
    全局阈值分割指的是将灰度值大于thresh(阈值)的像素设为白色,小于或者等于thresh的像素设为黑色,或者反过来。阈值分割的核心就是如何选取阈值。
    局部阈值分割
    局部阈值又称自适应阈值.即不再像全局阈值一样,对整个矩阵只有一个阈值,而是针对输入矩阵的每一个位置的值都有相应的阈值,这些阈值构成了和输入矩阵同等尺寸的矩阵thresh。局部分割的核心思想也是计算阈值矩阵,比较常用的是后面提到的自适应阈值算法(又称移动平均值算法),其核心思想是把每一个像素的邻域的”平均值“作为该位置的阈值。
    直方图技术法
    直方图技术法就是首先找到这两个峰值,然后取两个峰值之间的波谷位置对应的灰度值,就是所要的阈值。由于灰度值在直方图中的随机波动,两个波峰(局部最大值)和它们之间的波谷都不能很好的确定。一种常用的方式是先对直方图进行高斯平滑处理,逐渐增大高斯滤波器的 标准差,直到能从平滑后的直方图中得到两个唯一的波峰和它们之间唯一的最小值。
    熵算法
    信息熵(entropy)的概念来源于信息论,假设信源符号u有N种取值,且每一种信源符号出现的概率有N种。图像也可以看作一种信源,假设输入图像为I,normHistI代表归一化的图像灰度直方图,那么对于8位图可以看成由256个灰度符号,且每一个符号出现的概率为normHistI(k)组成的信源,其中<=k<=255.
    Ostu阈值算法
    在对图像进行阈值分割时,所选取的分割阈值应使情景区域的平均灰度、背景区域的平均灰度与整幅图像的平均灰度之间的差异最大,这种差异用区域的方法来表示。Otsu提出了最大方差法,该算法是在判别分析最小二乘法原理的基础上推导得出的。
    自适应阈值
    在不均匀照明或者灰度值分布不均的情况下,如果使用全局阈值分割,那么得到的分割效果往往会很不理想。需要针对每一个位置的灰度值设置一个对应的阈值,而该位置阈值的设置也和其邻域有必然的关系。在对图像进行平滑处理时,均指平滑、高斯平滑、中值平滑用不同规则计算出以当前像素为中心的邻域内的灰度“平均值”,所以可以使用平滑处理后的输出结果作为每个像素设置阈值的参考值。在自适应阈值处理中,平滑算子的尺寸决定了分割出来的物体的尺寸,如果滤波器尺寸太小,那么估计出的局部阈值讲不理想。评经验,平滑算子的宽度必须大于被识别物体的宽度,平滑算子的尺寸越大,平滑后的结果越能更好地作为每个像素的阈值的参考。
    二值图的逻辑运算
    对于阈值处理后的二值图,还可以利用二值图之间的逻辑运算:“与”运算和”或"运算,以便得到想要的结果。Opencv提供的两个函数bitwise_and和bitwise_or 分别实现了两个矩阵之间的与运算和或运算。

    更多相关内容
  • 局部阈值分割算法总结

    千次阅读 2020-12-23 06:59:46
    常见的图像二值化算法大致可分为全局阈值方法与局部阈值方法这两种类型。全局方法就是一个阈值,像素值大于此值的为1,小于此值的为0。...重点介绍局部阈值分割算法.1. Bersen算法原理1) 先人为设定两个值S与TT(B...

    常见的图像二值化算法大致可分为全局阈值方法与局部阈值方法这两种类型。全局方法就是一个阈值,像素值大于此值的为1,小于此值的为0。局部方法就是对每一个像素求阈值,大于此值为1,小于此值为0。其中OTSU算法是全局阈值的代表,而Sauvola算法则是局部阈值方法的标杆。Otsu(大津法),相关介绍很多,这里不做介绍。重点介绍局部阈值分割算法.

    1. Bersen算法原理

    1) 先人为设定两个值S与TT(Bemsen最初设S为15,TT设为128);

    2)计算以图像中任意像素尸为中心的大小为k×k窗口内的所有像素的最大值M与最小值N,两者的均值T,

    如果M-N大于S,则当前P的阈值为T;

    若小于S,则表示该窗口所在区域灰度级灰度级差别较小,那么窗口在目标区或在背景区;

    3)再判断T与TT的关系,若T>TT则当前点灰度值为255,否则当前点灰度值为0。

    缺点:耗时大.

    2. Niblack算法

    T是阈值,m是图像邻域窗口的均值,s是邻域窗口的标准差,K是预先设定的修正值。

    Niblack根据以像素点为中心的邻域内的点的情况为此像素计算阈值.

    Niblack法的优点:

    对每一个像素点都独立的跟据此像素点的邻域的情况来计算门限,对于和邻域均值m(x,y)相近的像素点判断为背景而反之判断为前景;而具体相近到什么程度由标准差s(X’y)和修正系数k来决定,这保证了这种的方法的灵活性。

    Niblack法的不足:

    由于要利用域r×r模板遍历图像,导致边界区域(r-1)/2的像素范围内无法求取阈值;同时当进行图像遍历时,如果域r×r范围内都是背景,经NIBLACK计算后必有一部分被确定为目标,产生伪噪声。

    总之,用Niblack方法进行图像分割时,选择的处理模板窗口R*R大小的选择很关键,选择的空间太小,则噪声抑制的效果不理想,目标主体不够突出,选择的空间太大,则目标的细节会被去除而丢失信息。

    3. Sauvola算法

    Sauvola算法的输入是灰度图像,它以当前像素点为中心,根据当前像素点邻域内的灰度均值与标准方差来动态计算该像素点的阈值。

    假定当前像素点的坐标为(x,y),以该点为中心的领域为r*r,g(x,y)表示(x,y)处的灰度值,Sauvola算法的步骤为:

    参考:https://livezingy.com/derivations-of-sauvola-formula/

    展开全文
  • 其中f(x,y)为点(x,y)的像素值,g(x,y) 为分割后的图像,T为全局阈值,阈值分割技术是最经典和流行的图像分割方法之一,也是最简单的一种图像分割方法。可以通过全局的信息,例如整个图像的灰度直方图。

    一、阈值分割基本定义

    阈值分割技术是最经典和流行的图像分割方法之一,也是最简单的一种图像分割方法。此技术关键在于寻找适当的灰度阈值,通常是根据图像的灰度直方图来选取。它是用一个或几个阈值将图像的灰度级分为几个部分,认为属于同一个部分的像素是同一个物体。它不仅可以极大的压缩数据量,而且也大大简化了图像信息的分析和处理步骤。阈值分割技术特别适用于目标和背景处于不同灰度级范围的图像。该方法的最大特点是计算简单,在重视运算效率的应用场合中得到了广泛的应用。

    二、全局阈值分割

    1、基本原理

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

    对于物体和背景对比较明显的图像,其灰度直方图为双峰形状,可以选择两峰之间的波谷对应的像素值作为全局阙值,将图像分割为目标对象和背景。其公式如下:
    在这里插入图片描述

    其中f(x,y)为点(x,y)的像素值,g(x,y) 为分割后的图像,T为全局阈值,通常通过直方图来获取全局阈值

    2、matlab实现

    (1)实现代码:

    % 采用全局阈值对图像进行分割
    close all;
    clear all;
    clc;
    
    I=imread('rice.png');
    [width,height]=size(I);
    for i=1:width      % 双重for循环逐个像素进行比较计算
        for j=1:height
            if(I(i,j)>130)
                K(i,j)=1;% 将大于全局阈值的像素点置为1(白色)
            else
                K(i,j)=0;% 将小于等于全局阈值的像素点置为0(黑色)
            end
        end
    end
    
    subplot(131),imshow(I);
    title('原始图像');
    subplot(132),imhist(I);
    title('原始图像直方图');
    subplot(133),imshow(K);
    title('全局阈值分割后的图像');
    

    (2)实现效果:
    在这里插入图片描述
    二、Otsu阈值分割

    1、基本原理

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

    设f(x,)为图像IxN的位置(x,y)处的灰度值,灰度级为L,则f(x,y)属于[0,L-1].若灰度级i的所有像素个数为f,则第i级灰度出现的概率为:
    在这里插入图片描述
    将图像中的像素按灰度级用阈值t划分为两类,即背景C0和目标C1。背景CO的灰度级为0 ~ t-1,目标C1的灰度级为t ~ L-1。背景C0和目标C1对应的像素分别为:{f(x,y)<1}和{f(x,y)>=t}。
    在这里插入图片描述
    在这里插入图片描述

    在MATLAB软件中,函数graythresh()采用Otsu算法获取全局阈值,获取全局阈值后,可以采用函数im2bw()进行图像分割

    2、matlab实现

    (1)实现代码:

    % 采用Ostu算法进行图像分割
    close all;
    clear all;
    clc;
    I=imread('coins.png');
    I=im2double(I);
    % 函数graythresh()采用Ostu算法获取图像(既可以是灰度也可以RGB)的最优阈值,调用格式为level=graythresh(I),level大小介于[0,1之间
    T=graythresh(I);
    J=im2bw(I,T);
    
    subplot(121),imshow(I);
    title('原始图像');
    subplot(122),imshow(J);
    title('Otsu阈值分割后的图像');
    

    (2)实现效果:
    在这里插入图片描述
    四、迭代式阈值分割

    1、基本原理

    迭代阈值法是阈值法图像分割中比较有效的方法,通过迭代的方法来求出分割的最佳阅值,具有一定的自适应性。迭代法阈值分割的步骤如下:

    (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) ,直到获取最优阈值。

    2、matlab实现

    (1)实现代码:

    % 采用迭代式阈值进行图像分割
    close all;
    clear all;
    clc;
    I=imread('cameraman.tif');
    I=im2double(I);
    % 第一步:设置参数T0,并选择一个初始的估计阈值T1(取图像I像素值的最小值和最大值的平均值)
    T0=0.01;
    T1=(min(I(:))+max(I(:)))/2;
    % 第二步:用阈值T1分割图像.将图像分成两部分:r1由灰度值大于T1的像素组成,r2是由灰度小于或等于T1的像素组成
    r1=find(I>T1);% find函数返回素有非零元素的位置
    r2=find(I<=T1);
    % 第三步:计算r1和r2中所有像素的平均灰度值h1和h2以及新的阈值T2=(h1+h2)/2
    T2=(mean(I(r1))+mean(I(r2)))/2;
    % 第四步:|T2-T1|<T0,则推出T2即为最优阈值;否则,将T2赋值给T1,并重复步骤2-4直到获取最优阈值
    if abs(T2-T1)<T0
        J=imbinarize(I,T2);  % 使用imbinarize函数进行图像分割
    else
        while abs(T2-T1)>=T0
            T1=T2;
            r1=find(I>T1);
            r2=find(I<=T1);
            T2=(mean(I(r1))+mean(I(r2)))/2;
        end
        J=imbinarize(I,T2);  % 使用imbinarize函数进行图像分割
    end
    
    subplot(121),imshow(I);
    title('原始图像');
    subplot(122),imshow(J);
    title('迭代式阈值分割后的图像');
    

    (2)实现效果:
    在这里插入图片描述

    注意:除了以上三种阈值分割方法,还有其他方法比如自适应阈值分割(局部阈值分割)、最大熵阈值分割等等。但是我发现自适应阈值分割和最大熵阈值分割基本都是用C++或Python实现,还没有找到合适的使用matlab实现的代码。如果以后有机会,再回来补充吧!

    由于刚刚开始学习图像处理,对于很多知识理解不到位。如有错误,恳请指正,任重而道远,慢慢加油!

    展开全文
  • 局部阈值分割算法的python实现(1)

    千次阅读 2021-07-26 14:22:58
    Bersen算法原理  1) 先人为设定两个值S与TT(Bemsen最初设S为15,TT设为128); 2)计算以图像中任意像素尸为中心的大小为k×k窗口内的所有像素的最大值M与最小值N,两者的均值T, 如果M-N大于S,则当前P的阈值...

    Bersen算法

    声明:本文参考于https://www.cnblogs.com/zhaopengpeng/p/13300795.html,感谢该作者的理解,并对该分割算法进行python实现。

    Bersen算法原理

      1) 先人为设定两个值S与TT(Bemsen最初设S为15,TT设为128);

           2)计算以图像中任意像素P为中心的大小为k×k窗口内的所有像素的最大值M与最小值N,两者的均值T,

                如果M-N大于S,则当前像素P的阈值为T;

                若小于S,则表示该窗口所在区域灰度级灰度级差别较小,那么窗口在目标区或在背景区;

           3)再判断T与TT的关系,若T>TT则当前点灰度值为255,否则当前点灰度值为0。

    缺点:耗时大.

    python代码:

    import cv2
    import matplotlib.pyplot as plt
    from skimage import filters
    import numpy as np
    
    
    def Bersen(image, k=1):
        plt.imshow(image)
        plt.show()
        mean, dev = cv2.meanStdDev(image)
        print("均值:", mean, "方差:", dev)
        s = dev
        tt=filters.threshold_otsu(image)
        print(tt)
        window = np.zeros((2 * k + 1, 2 * k + 1), dtype=np.int16)
        dst = np.zeros(image.shape, image.dtype)
        for i in range(k, image.shape[0]-k):
            for j in range(k, image.shape[1]-k):
                window=image[i-k:i+k, j-k:j+k]
                maxn=np.max(window)
                minn=np.min(window)
                t = (maxn + minn) / 2
                if maxn-minn >= s:
                    if image[i,j]<t:
                        dst[i,j] = 0
                    else:
                        dst[i, j] = 255
                else:
                    # 修改后第三步
    #                 if image[i, j] < tt:
    #                     dst[i,j] = 0
    #                 else:
    #                     dst[i,j] = 255
                    # 原算法第三步
                    if t < tt:
                        dst[i,j] = 0
                    else:
                        dst[i, j] = 255
        plt.imshow(dst)
        plt.show()
    
    
    path = r'***********.png'  # 图片路径
    img = cv2.imread(path, 0)
    Bersen(img)

            与原算法做了一点点变化。

            第一,原算法是自己预先指定全局阈值,本文使用OTSU法先由全图自动得到全局阈值。

            第二,原算法s是自己预先指定的,本文使用图像方差作为s。

            第三,原算法第三步是通过窗口内最大值与最小值的均值和全局阈值相比较,本文修改为点P的像素值与全局阈值相比较。

    效果如下:

    第三步未修改时:

     修改后:

    可以看出,用均值与全局阈值相比较感觉有点像是边缘提取一样了。

    下面给出不同k值的修改后的效果。

    k=1,即窗口大小为3

     

    k=2,即窗口大小为5 

     

     k=3,即窗口大小为7

     

     可以看出,窗口越小越细致。

    欢迎尝试本文代码,因为很可能有写错的地方,请指出,谢谢~

    展开全文
  • 局部自适应阈值分割方法

    万次阅读 2018-03-22 09:34:47
    Local_Yanowitz 由于光照的影响,图像的灰度可能是不均匀分布的,此时...Yanowitz提出了一种局部阈值分割方法。结合边缘和灰度信息找到阈值表面(treshhold surface)。在阈值表面上的就是目标。 算法的主要...
  • 第六节:阈值分割一: 全阈值分割 实例代码:image = cv2.imread('img.jpg', cv2.IMREAD_GRAYSCALE)the = 100 # 设置阈值为100maxval = 255dst, img = cv2.threshold(image, the, maxval, cv2.THRESH_BINARY)cv2....
  • 全局阈值分割
  • 最大熵阈值分割算法原理及实现

    万次阅读 热门讨论 2019-05-14 19:39:48
    前面介绍了OTSU算法,对于阈值分割法,不得不介绍另外一种较为突出的算法——最大熵阈值分割法(KSW熵算法)。 最大熵阈值分割法和OTSU算法类似,假设将图像分为背景和前景两个部分。熵代表信息量,图像信息量越大...
  • Halcon-常用阈值分割方法总结

    千次阅读 2021-06-24 13:48:55
    (1)全局阈值分割: threshold(Image : Region : MinGray, MaxGray : ) 该算子适用于环境稳定,光照变化不大,目标与背景存在明显的灰度差的场合,根据灰度直方图确定阈值进行图像分割。 read_image (Image, 'clip'...
  • 自适应阈值(adaptiveThreshold)分割原理及实现

    万次阅读 多人点赞 2019-05-14 20:27:27
    前面介绍了OTSU算法和最大熵算法,但这两种算法都属于全局阈值法,所以对于某些光照不均的图像,这种全局阈值分割的方法会显得苍白无力,如下图: 显然,这样的阈值处理结果不是我们想要的,那么就需要一种方法...
  • 自适应阈值分割

    千次阅读 2020-03-07 17:13:06
    这种方法一般称为全局阈值分割,接下来想介绍的是一种局部阈值分割算法,其原理很简单,通俗地讲就是图片的每个局部都会通过处理得到一个阈值,这个区域就用这个阈值来进行分割,同理,每个区域都有不同的阈值来处理...
  • 主要讲述几种halcon中经常用到的一些阈值分割算子。 1,全局阈值分割 threshold(Image : Region : MinGray, MaxGray : ) 全局阈值分割,适用于环境稳定,目标与背景存在明显的灰度差的场合。(即根据高低双阈值将...
  • 立即学习:https://edu.csdn.net/course/play/26281/327087?utm_source=blogtoedu 局部阈值法:解决照明不均的情况下分割效果不好的问题。 多阈值分割:解决多值目标的分割问题。
  • opencv学习-阈值分割

    千次阅读 2019-06-06 18:41:56
    把图像分成若干个特定的、具有独特性质的区域,每一个区域代表一个像素的集合,每一个集合代表一个物体,而完成该过程的技术通常称为图像...阈值分割处理主要是根据灰度值信息提取前景,对前景与背景有较强对比度...
  • 图像分割__阈值分割

    千次阅读 2021-11-05 17:27:02
    阈值分割 为得到图像中的物体信息, 必须进行图像分割, 即提取图像中与感兴趣物体相对应的区域, 而其中最简单的分割算法是图像的阈值分割。 1. 全局阈值 使用过程中的五种阈值类型如上图所示 这种设定全局阈值的...
  • 知道阈值分割的内容:全阈值分割,自适应阈值分割,熟悉大津法 知道分水岭算法的原理 了解GrabCut算法 1 图像分割 所谓图像分割指的是根据灰度、颜色、纹理和形状等特征把图像划分成若干互...
  • opencv-python阈值分割

    千次阅读 2020-07-11 18:32:32
    全局阈值分割` import numpy as np src = np.array([[123,234,68],[33,51,17],[48,98,234],[129,89,27],[45,167,134]]) src[src>150] = 255 src[src<=150] = 0 src 在图像处理中一般不处理原图 而是使用...
  • (1)进一步理解图像的阈值分割方法和边缘检测方法的原理。 (2)掌握图像基本全局阈值方法和最大类间方差法(otsu法)的原理并编程实现。 (3)编程实现图像的边缘检测。 二.实验内容和要求 编程实现图像阈值分割(基本...
  • 针对各种阈值分割算法,本文在最后做了详细的研究,并给出了相应的MATLAB程序源代码。[关键词]:数字图像处理;图像分割;阈值;算法ResearchonlgorithmAbstract:ImageInthisthesis,thedigi...
  • halcon 阈值分割

    2022-04-14 14:59:18
    Halcon算子学习:图像阈值分割算子 前言1.threshold-全局固定阈值分割2.Binary Threshold-自动全局阈值分割3.dyn_threshold-局部动态阈值分割小结: 4.var_threshold算子-均值和标准偏差局部阈...
  • 1、基于阈值分割方法 阈值法的基本思想是基于图像的灰度特征来计算一个或多个灰度阈值,并将图像中每个像素的灰度值与阈值相比较,最后将像素根据比较结果分到合适的类别中。因此,该类方法最为关键的一步就是...
  • 局部阈值分割自适应阈值 阈值的分割的核心就是如何选取阈值,选取正确的阈值时分割成功的关键。可以使用手动设置阈值,也可以采用直方图技术法、Otsu算法、熵算法自动选取全局阈值,也可以采用自适应阈值算法自动...
  • 阈值分割小结

    万次阅读 多人点赞 2019-06-23 16:44:08
    阈值分割 一: 全阈值分割 实例代码: image = cv2.imread('img.jpg', cv2.IMREAD_GRAYSCALE) the = 100 # 设置阈值为100 maxval = 255 dst, img = cv2.threshold(image, the, maxval, cv2.THRESH_BINARY) cv2....
  • 算法原理:OTSU的算法是假设存在阈值TH将所有图像分成两类C1,也叫前景(小于TH)和C2,也叫后景(大于TH),这两类的均值分别为m1和m2,整个图像的均值为mG。同时图像被分为C1类和C2类的概率分别为p1和p2。因此有:...
  • 基于Python的阈值分割算法实现(二)

    千次阅读 2020-12-20 15:46:40
    引言前文我们讨论了关于实现OTSU算法的问题,该算法主要是针对于特征值阈值的确定...本文代码共包含了四种不同的分割算法,分别是三角阈值分割法、Riddler-Calvard分割法、自适应局部均值分割法、自适应局部高斯分割...
  • Opencv_11 阈值分割

    2022-05-16 10:41:08
    自适应阈值(局部阈值)① 自适应阈值分割原理② 自适应阈值分割的函数原型③ 自适应阈值分割代码示例 一. 全局阈值分割 全局阈值分割指的是使用一个固定的阈值,大于这个阈值的设定为一个颜色,小于或者等于这个阈值...
  • 本章将学习阈值分割,即找到一个合适的阈值实现数字图像的二值化。阈值分割有很多种方法,本章学习直方图阈值、三角法阈值,迭代法阈值,大律法阈值,和自适应阈值。 1.直方图阈值 图像直方图阈值分割法: 算法描述...
  • 上周在组会学习中小师妹介绍了分水岭算法和阈值分割算法,并用opencv实现相关代码,借用实现的代码,加之一些优秀的博客,对于图像分割做一个简单的介绍。在这里,将从以下四个方面对于图像分割做一个简单的介绍,...
  • 图像处理基本算法 动态阈值分割

    千次阅读 2021-01-29 17:01:58
    在图像处理时,受外界光线的干扰一般比较大,假如在阈值分割时采用固定阈值,那么在环境改变时分割效果受影响极大,那么为了避免此影响就必须采用动态阈值,自动求出合适的阈值进行分割。本文的介绍几种主要的图像...
  • 不过话说回来人能分辨出来的东西代码也能,只不过怎么把原理提取出来。 今日在网上找到一案例: 好图: 坏图: 要求是检测右边的那些斑点。看似非常简单,立马就产生了思路,写的时候猛的发现这个视觉系统的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,606
精华内容 3,842
关键字:

局部阈值分割原理

友情链接: php_manual_zh.zip