基于Otsu的全局阈值处理的实现
来源:互联网 发布:ubuntu c语言开发工具 编辑:程序博客网 时间:2024/06/10 07:28
基于Otsu的全局阈值处理又称最大类间方差法,即在对图像进行阈值分割时,选定的分割阈值应使前景区域的平均灰度,背景区域的平均灰度与整幅图像的平均灰度之间差别最大,这种差异用区域的方差来表示
设图像中灰度为i的像素数为ni,灰度范围为[0,L-1], 总的像素数为
各灰度值出现的概率为
对于Pi
把图中的像素用阈值T分为两类C0和C1,C0由灰度值在[0,T-1]的像素组成,C1由灰度值在[T,L-1]的像素组成,则区域C0和C1的概率分别为
区域C0和C1的平均灰度分别为:
U是整幅图像的平均灰度
两个区域的总方差为:
让T在[0,L-1]范围内依次取值,使区域方差最大的T值便是最佳区域分割阈值
Matlab代码实现
I=imread('car.jpg'); %读入图像I=I(:,:,1);figure(1);imshow(I);[m,n]=size(I);[counts,x]=imhist(I,256); %灰度级为[0,255][Q,~]=size(x)Pi=counts/m/n;Variance=zeros(1,Q); %存放区域方差for k =1:Q-1 P0=sum(Pi(1:k)) P1=sum(Pi(k+1:Q)) Mu0=(1/P0)*([1:k]*counts(1:k)); Mu1=(1/P1)*([k+1:Q]*counts(k+1:Q)); Mu=P0*Mu0+P1*Mu1; variance=P0*P1*(Mu0-Mu1)^2; Variance(k)= variance;end[m1,n1]=max(Variance);I1=im2bw(I,n1/255);figure(2);imshow(I1)
运行结果:T=n1=137
以上是关于Otsu的全局阈值处理的实现,欢迎大家一起交流学习
阅读全文
0 0
- 基于Otsu的全局阈值处理的实现
- Otsu的全局阈值处理实现
- 图像分割--使用Otsu方法的全局阈值处理
- 多阈值处理利用双Otsu阈值-C#实现-基于EmguCv
- 图像的阈值化-OTSU、固定阈值法、基于局部的阈值化
- 图像处理之基于Otsu阈值二值化
- 图像处理------基于Otsu阈值二值化
- 图像处理之基于OTSU阈值二值化
- 图像分割—基于图像数据的自动选择阈值(基本全局阈值处理方法)
- 基于Otsu算法的图像自适应阈值分割
- OTSU算法提取图像阈值的C语言实现[转载】
- OTSU算法提取图像阈值的C语言实现
- OTSU算法提取图像阈值的C语言实现
- OTSU算法提取图像阈值的C语言实现
- OTSU算法提取图像阈值的C语言实现
- 利用边缘改进全局阈值处理-c#实现-基于EmguCv
- otsu阈值处理
- otsu阈值处理
- 串口通信基本知识
- Mac 手动签名记录
- Spin控件使用总结
- Java初学者必知:Java语言的11大特点
- ios-知识点补充
- 基于Otsu的全局阈值处理的实现
- 浮动布局--如何解决父元素高度为0以及原理
- percona5.26基于gtid的主从复制配置
- python实现拍照,录像,剪辑,分帧等操作
- CentOS 7更换国内yum源
- 配置启动hadoop jobhistory
- Echarts图表之柱状图
- 通过spring手动获取bean报空指针问题
- 关于git的使用