首先记录一下理论基础(虽然我TM也不怎么懂)
大津算法:
算法假定该图像根据双模直方图包含两类像素:
前景像素和背景像素
于是它要计算能将两类分开的最佳阈值, 使得它们的类内方差最小; 由于两两平方距离恒定, 所以即它们的类间方差最大。
说白了就是找一个最为合理的阈值,用这个阈值来二值化
运行环境:matlab R2012a
ostu函数实现:
function [binaryzationGraph]=ostu(I) %传入原RGB图片
clc;
%rgb图像转成灰度图
G=rgb2gray(I);
figure;
imshow(G);
title('灰度图');
%1.统计各灰度级像素在整幅图像中的个数
Count=imhist(G);%统计各灰度级像素在整幅图像中的个数
%2. 计算每个灰