大津法(最大类间方差法OTSU)

        大津法是由大津展之(おおつのぶゆき)发明的算法,故称大津法。

 一、 数学原理

        大津法又叫最大类间方差法、最大类间阈值法(OTSU)。它的基本思想是,用一个阈值将图像中的数据分为两类,一类中图像的像素点的灰度均小于这个阈值,另一类中的图像的像素点的灰度均大于或者等于该阈值。如果这两个类中像素点的灰度的方差越大,说明获取到的阈值就是最佳的阈值(方差是灰度分布均匀性的一种度量,背景和前景之间的类间方差越大,说明构成图像的两部分的差别越大,当部分前景错分为背景或部分背景错分为前景都会导致两部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。)。则利用该阈值可以将图像分为前景和背景两个部分。而我们所感兴趣的部分一般为前景。

        其优点是计算简单快速,不受图像亮度和对比度的影响。缺点是对图像噪声敏感;只能针对单一目标分割;当目标和背景大小比例悬殊、类间方差函数可能呈现双峰或者多峰,这个时候效果不好。

二、编程实现

        程序是通过matlab实现的,通常,我们在智能车大赛的过程中也常常会用到,代码含义已注释。

filename='E:\learning\机器视觉\machinevision\saidao.jpg';
rgb = imread(filename);
gray = rgb2gray(rgb);%转换为灰度图
gray_max = max(max(gray));
gray_min = min(min(gray));
gray_list = gray_min : gray_max;%阈值范围
ISIZE = size(gray);%图像大小
pixel_all = ISIZE(1) * ISIZE(2);%总像素个数
Tmp = 0;%存放类间方差
threshold = 0;%存放阈值

for i = 1 : length(gray_list)  %从MIN到MAX
    gray_value = gray_list(1,i);
    pixel_front = 0;%前景像素个数
    pixel_back = 0;%背景像素个数
    gray_front = 0;%前景总灰度
    gray_back = 0;%背景总灰度
    for j = 1 : ISIZE(1)
        for k=1 : ISIZE(2)
            pixelgray = gray(j,k);
            if(pixelgray >= gray_value)
                pixel_front = pixel_front+1;
                gray_front = gray_front + double(pixelgray);
            else
               pixel_back = pixel_back+1;
               gray_back = gray_back+double(pixelgray);
            end
        end
    end
    w0 = pixel_front/pixel_all;%前景点数比例
    w1 = pixel_back/pixel_all;%背景点数比例
    u0 = gray_front/pixel_front;%前景点数平均灰度
    u1 = gray_back/pixel_back;%背景点数平均灰度
    u = (gray_front+gray_back)/pixel_all;%图像总平均灰度

    tmp = w0*(u0-u)*(u0-u) + w1*(u1-u)*(u1-u);
    if(Tmp < tmp)
        threshold = gray_value;
        Tmp = tmp;
    end
end

%二值化
black_and_white = gray;
for j = 1:ISIZE(1)
   for k = 1:ISIZE(2)
       if(black_and_white(j,k) >= threshold)
           black_and_white(j,k) = 255;
       else
           black_and_white(j,k) = 0;
       end
   end
end

level = graythresh(gray);
imgbw = im2bw(gray,level);

level2=double(threshold)/255;
imgbw2 = im2bw(gray,level2);

subplot(221); imshow(gray);
subplot(222); imshow(black_and_white);
subplot(223); imshow(imgbw);
subplot(224); imshow(imgbw2);

三、处理效果

        可见效果较好。 

机器视觉目录:

机器视觉(一):概述

机器视觉(二):机器视觉硬件技术

机器视觉(三):摄像机标定技术

机器视觉(四):空域图像增强

机器视觉(五):机器视觉与世界杯

机器视觉(六):频域图像增强

机器视觉(七):图像分割

机器视觉(八):图像特征提取

机器视觉(九):图像配准

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liutangplease

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值