基本全局阈值分割步骤如下:

(1)设定参数

,并选择一个初始的估计阈值

(2)用阈值

分割图像。将图像分成两部分:

是由灰度值大于

的像素组成,

是由灰度值小于或等于

的像素组成。

(3)计算

中所有像素的平均灰度值

,以及新的阈值

(4)如果

,则推出

即为最优阈值;否则,将

赋值给

,并重复步骤(2)~(4),直到获取最优阈值。

其具体实现MATLAB代码如下:

%image_bgt.m

function level =image_bgt(I)

%该函数使用basic global thresholding算法实现二值化

I = im2double(I);          %对图像归一化

[M,N] = size(I);

T0 = 0.001;           %设置门限

T1 = (max(max(I)) +min(min(I)))/2;          %得到初始阈值T1

%定义G1、G2的下标,同时起统计个数的作用

columns1 = 1;

columns2 = 1;

%开始遍历

while 1

for i = 1:M

for j = 1:N

if I(i,j)>T1

G1(columns1) = I(i,j);          %得到分组G1

columns1 = columns1 + 1;

else

G2(columns2) = I(i,j);          %得到分组G2

columns2 = columns2 + 1;

end

end

end

%计算G1、G2均值

ave1 = mean(G1);

ave2 = mean(G2);

T2 = (ave1 + ave2)/2;           %得到新阈值T2

if abs(T2 - T1)break;

end

T1 = T2;

columns1 = 1;

columns2 = 1;

end

level = T2;

end

%DIP_exp4_2.m

%该m文件调用image_bgt函数对图像进行basic global thresholding算法阈值分割

clc;clear;closeall;

I =imread('cameraman.tif');

level =image_bgt(I);            %得到basic global thresholding算法阈值

J = im2bw(I,level);                    %实现图像二值化,即非黑即白

subplot(121),imshow(I);title('原图像');

subplot(122),imshow(J);title('basicglobal thresholding后图像');

运行DIP_exp4_2.m文件得结果如下:

灰度值阈值设置matlab,基本全局阈值法(basic global thresholding)MATLAB实现相关推荐

  1. 【图像处理】——图像的二值化操作及阈值化操作(固定阈值法(全局阈值法——大津法OTSU和三角法TRIANGLE)和自适应阈值法(局部阈值法——均值和高斯法))

    目录 一.二值化的概念(实际上就是一个阈值化操作) 1.概念: 2.实现方法 3.常用方法 二.阈值类型 1.常见阈值类型(主要有五种类型) (1)公式描述 (2)图表描述 2.两种特殊的阈值算法(O ...

  2. 基本全局阈值法(basic global thresholding)MATLAB实现

    基本全局阈值分割步骤如下: (1)设定参数,并选择一个初始的估计阈值. (2)用阈值分割图像.将图像分成两部分:是由灰度值大于的像素组成,是由灰度值小于或等于的像素组成. (3)计算和中所有像素的平均 ...

  3. Ostu(大津法)二值化图像算法/最佳全局阈值

    介绍 最大类间方差法是由日本学者大津于1979年提出的,是一种自适应的阈值确定的方法,又叫大津 法,简称OTSU.它是按图像的灰度特性,将图像分成背景和目标2部分.背景和目标之间的类间方差 越大,说明 ...

  4. 【图像算法】七种常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)...

    图像算法:图像阈值分割 SkySeraph Dec 21st 2010  HQU Email:zgzhaobo@gmail.com    QQ:452728574 Latest Modified Da ...

  5. 常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)

    主程序(核心部分) 代码 1  2  3  4  IplImage *  binaryImg  =  cvCreateImage(cvSize(w, h),IPL_DEPTH_8U,  1 ); 5  ...

  6. otus阈值分割matlab,OSTU最佳阈值法二值化原理-matlab和C | 学步园

    觉得这篇介绍OTSU方法挺清楚的.自己又加了一些,希望对初学者有帮助哦~ OTSU 1. OTSU算法原理简介 对于一幅图像,设当前景与背景的分割阈值为t时,前景点占图像比例为w0,均值为u0,背景点 ...

  7. 七种常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)...

    转自:http://blog.csdn.net/xw20084898/article/details/17564957 一.工具:VC+OpenCV 二.语言:C++ 三.原理 otsu法(最大类间方 ...

  8. 【转】七种常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)...

    http://blog.csdn.net/xw20084898/article/details/17564957 一.工具:VC+OpenCV 二.语言:C++ 三.原理 otsu法(最大类间方差法, ...

  9. C#,图像二值化(12)——基于谷底最小值的全局阈值算法(Valley-Minium Thresholding)与源代码

    1.基于谷底最小值的阈值 这个方法适用于通过有限的迭代次数,平滑后能得到双峰的图像,让双峰的谷底成为阈值.当执行完基于谷底最小值的阈值操作的时候,改变了直方图信息,使之成为处理过后的直方图信息,这时候 ...

最新文章

  1. 【Java设计模式】GOF32 - 单例模式
  2. spring mail 发送邮件
  3. 基于 Redis 实现 CAS 操作
  4. Azure Cosmos DB技术性解读
  5. 一个柱状图里两种数据_分享一些数据分析常用的统计图图表
  6. elementui 表头错位解决方法
  7. Java线程输出字母大小写_FastJson 输出值 首字母大小写问题
  8. Qt 网络编程制作一个客户端与服务器
  9. lucene-使用htmlparser解析有编码页面
  10. Machine learning approximation algorithmsfor high-dimensional fully nonlinear PDE
  11. 干货 | 那些你不知道的爬虫反爬虫套路
  12. Linux下的LWP(轻量级进程)、进程 、 线程、用户级线程、内核线程
  13. Pandas中透视表和交叉表
  14. 用Python画等边三角形
  15. GetLastError()函数返回的值及含义
  16. 【python逆向一把梭】pyinstaller打包的exe逆向一把梭
  17. 7-112 斐波那契数列 (10 分)
  18. 苹果Mac在一段时间不使用后,应用(系统)会自动退出(重启)的解决方法
  19. 许昌一高2021年高考成绩查询,2021年许昌最好的高中排名,许昌重点高中升学率排名...
  20. 系统分析员论文(二)------某电子支付系统分析论文

热门文章

  1. KT142A语音芯片IC的固件升级方法详细描述,PC升级和U盘升级
  2. mysql association_Mybatis的一对多(collection)和一对一(association)查询
  3. mysql查找名字含A的的姓名_mysql查询结果排序,name字段有中文名字,有英文名字,如何按a-z的顺序把名字排序...
  4. Latex中处理中文
  5. 云计算模拟平台——Cloudsim的配置(Windows10 和 ubuntu18.04)
  6. webRTC服务器搭建(基于Janus)与Demo运行
  7. 程序员自学编程被腾讯拒却月入3w是一种怎样的体验?
  8. 缓存(cache、Redis)
  9. 转载 骏马金龙第9章 Linux进程和信号超详细分析
  10. 【Python】os.path.exists()的含义 及文件存在但os.path.exists()返回False的原因