二维最大类间方差(otsu)matlab实现源码
来源:互联网 发布:服务器监控软件 免费 编辑:程序博客网 时间:2024/06/06 13:16
今天整理电脑资料,没想到翻到以前上学时候写的小论文,电脑里居然还存着以前用matlab写得最大类间方差的二维实现源码。当时持续写了好几个星期才搞定,忘了哪个是最终版本了,只好按照日期把最后的那个源码版本贴出来,不知道里面有没有bug。
%%传统二维Otsu方法function [idx idy]=otsuHistgram2(I)%I=imread('rice.png');noise=imnoise(I,'gaussian',0,0.03);I=noise;figure,imhist(I);figure,imshow(I);%% 求出图像的邻域和中值h=fspecial('average',[3 3]);[m,n]=size(I);totalnum=m*n;flt=filter2(h,I);%邻域均值flt=uint8(flt);I=uint8(I);%duality 二元性(灰度,邻域)%% 求(灰度,邻域)出现的频率num_bins = 256;f(1:num_bins,1:num_bins)=0;for r=1:m for l=1:n gry=I(r,l); %灰度gray adj=flt(r,l);%邻域adjacent f(gry+1,adj+1)=f(gry+1,adj+1)+1; endendPij=f./totalnum;%% 画出二维直方图[X,Y] = meshgrid(1:num_bins);Z=f; plot3(X,Y,Z);figure;mesh(X,Y,Z);colormap(cool); %% 二维直方图上总的均值矢量Ut=(uti,utj)'r=1:num_bins;muti=sum((r-1)*Pij(r,:));mutj=sum((r-1)*Pij(:,r)');%% 两类出现的概率 W0,W1=1-W0 w0=cumsum(Pij); w0=cumsum(w0,2); w0=w0+(w0==0)*eps; %% 两类对应的均值矢量 Ui,Uj%%将[0:255]分别乘以Pij的每行和每列,然后再求(s,t)内的和aa=zeros(1,num_bins);cc=zeros(num_bins,1);for i=1:num_bins aa=[aa;(i-1)*Pij(i,:)]; cc=[cc (i-1)*Pij(:,i)];endbb=aa(2:end,:);mui=cumsum(bb);mui=cumsum(mui,2); dd=cc(:,2:end);muj=cumsum(dd);muj=cumsum(muj,2); %% 求出使类间方差最大的阈值sigma_b_squared=((w0*muti-mui).^2+(w0*mutj-muj).^2)./(w0.*(1 - w0));maxval = max(sigma_b_squared(:));isfinite_maxval = isfinite(maxval);if isfinite_maxval [idx idy]=find(sigma_b_squared==maxval); idx=mean(idx)-1; idy=mean(idy)-1; else idx=0; idy=0;end%% 根据阈值对图像进行分割out1=im2bw(I,graythresh(I));figure,imshow(out1);out=((I<=idx)&(flt<=idy));out=1-out;figure,imshow(out);
0 0
- 二维最大类间方差(otsu)matlab实现源码
- Otsu最大类间方差法图像二值化MATLAB实现
- cvOtsu2D--最大类间方差法(二维Otsu算法)
- 自动选择阈值--最大类间方差法(OTSU)原理及matlab实现
- MATLAB实现最大类间方差算法
- 最大类间方差法(OTSU)
- 最大类间方差法(大津法,OTSU)
- 最大类间方差法(大津法OTSU)
- 最大类间方差法(OTSU)
- 最大类间方差法(OTSU)
- 最大类间方差法大津法OTSU
- 最大类间方差法(OTSU)
- 最大类间方差法(OTSU)
- 最大类间方差法(大津法,OTSU)
- OTSU 最大类间方差算法
- Otsu最大类间方差法
- 最大类间方差法(大津法,OTSU)
- 最大类间方差法----Otsu
- 对数据库的恢复技术的认识
- 几种大数据框架的对比
- 一句话木马上传常见的几种方法
- go语言(一):go 1.6安装
- Android横竖屏总结
- 二维最大类间方差(otsu)matlab实现源码
- IOS开发中 类、对象、实例变量、成员变量、属性变量等区别和关系
- linex命令大全
- Service与Android系统实现(1)-- 应用程序里的Service
- 树莓派错误“No space left on device”
- Bootstrap导航元素
- unicode WCHAR 与多字符集char相互转换
- 【黑马程序员】第八章:IO(输入输出)
- 2015’12杭电校赛1005 Bitwise Equations(二进制找规律)