图像的阈值分割(迭代法选择阈值)
来源:互联网 发布:该域名访问升级 编辑:程序博客网 时间:2024/06/05 11:58
迭代法阈值选择算法是对双峰法的改进,他首先选择一个近似的阈值T,将图像分割成两个部分,R1和R2,计算出区域R1和R2的均值u1和u2,再选择新的
阈值T=(u1+u2)/2;
重复上面的过程,知道u1和u2不在变化为止,
详细过程的代码:
<span style="font-size:18px;"><strong>clc;clear all;close all;I=imread('lena.jpg');%设置初始阈值 去最大值和最小值的中间值zmax=max(max(I));zmin=min(min(I));tk=(zmax+zmin)/2;%根据阈值将图像进行分割为前景和背景,分别求出两者的平均灰度 zo和zbb=1;[m n]=size(I);while (b) ifg=0; ibg=0; fnum=0; bnum=0; for i=1:m for j=1:n tmp=I(i,j); if(tmp>=tk) ifg=ifg+1; fnum=fnum+double(tmp); %前景像素的个数以及像素值的总和 else ibg=ibg+1; bnum=bnum+double(tmp);%背景像素的个数以及像素值的总和 end end end %计算前景和背景的平均值 zo=fnum/ifg; zb=bnum/ibg; if(tk==(uint8((zo+zb)/2))) b=0; else tk=uint8((zo+zb)/2); end %当阈值不变换时,退出迭代enddisp(strcat('迭代的阈值',num2str(tk)));I1=im2bw(I,double(tk)/255);imshow(I1) </strong></span>
简单的代码:
%读入图像,并进行灰度转换A=imread('baihe.jpg');B=rgb2gray(A);%初始化阈值T=0.5*(double(min(B(:)))+double(max(B(:))));d=false;%通过迭代求最佳阈值while~d g=B>=T; Tn=0.5*(mean(B(g))+mean(B(~g))); d=abs(T-Tn)<0.5; T=Tn;end% 根据最佳阈值进行图像分割level=Tn/255;BW=im2bw(B,level);% 显示分割结果subplot(121),imshow(A)subplot(122),imshow(BW)
1 0
- 图像的阈值分割(迭代法选择阈值)
- 基于matlab的图像阈值分割算法---参数法(自动阈值选择)
- 图像阈值分割---基本的全局阈值
- 图像分割—基于图像数据的自动选择阈值(基本全局阈值处理方法)
- 图像阈值分割(二值化)
- 迭代的(最优的)阈值选择法进行图像分割
- 基于阈值图像分割
- 灰度图像的自动阈值分割(Otsu 法)
- 基于阈值法的图像分割技术
- 基于阈值法的图像分割技术
- 图像分割自适应阈值的求取
- 利用OpenCV实现图像的阈值分割
- 图像的阈值分割(Optimum Thresholding)
- 图像分割 1.基于阈值的算法
- 图像分割-阈值分割法
- 图像算法:图像阈值分割
- opencv 图像阈值分割图像
- 图像算法:图像阈值分割
- Hadoop2.5+HA+zk3.4.6集群搭建
- Spark-1.4.1+MLlib的安装和搭建
- sqlite3编绎
- Android 超高仿微信图片选择器 图片该这么加载
- InnoDB特性之-两次写
- 图像的阈值分割(迭代法选择阈值)
- 工作经验应该这么写,有模板哦!
- AT&T计划削减支出 SDN头功
- Java初学项目------满汉楼:工具栏+菜单栏
- HDU 5296 Annoying problem
- django 1.8 官方文档翻译: 3-4-2 内建显示视图
- 最小费用最大流模板
- 软件工程的七条基本原则
- ubuntu安装jdk之后,报错java/lang/NoClassDefFoundError: java/lang/Object的解决办法