灰度值阈值设置matlab,基本全局阈值法(basic global thresholding)MATLAB实现
基本全局阈值分割步骤如下:
(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实现相关推荐
- 【图像处理】——图像的二值化操作及阈值化操作(固定阈值法(全局阈值法——大津法OTSU和三角法TRIANGLE)和自适应阈值法(局部阈值法——均值和高斯法))
目录 一.二值化的概念(实际上就是一个阈值化操作) 1.概念: 2.实现方法 3.常用方法 二.阈值类型 1.常见阈值类型(主要有五种类型) (1)公式描述 (2)图表描述 2.两种特殊的阈值算法(O ...
- 基本全局阈值法(basic global thresholding)MATLAB实现
基本全局阈值分割步骤如下: (1)设定参数,并选择一个初始的估计阈值. (2)用阈值分割图像.将图像分成两部分:是由灰度值大于的像素组成,是由灰度值小于或等于的像素组成. (3)计算和中所有像素的平均 ...
- Ostu(大津法)二值化图像算法/最佳全局阈值
介绍 最大类间方差法是由日本学者大津于1979年提出的,是一种自适应的阈值确定的方法,又叫大津 法,简称OTSU.它是按图像的灰度特性,将图像分成背景和目标2部分.背景和目标之间的类间方差 越大,说明 ...
- 【图像算法】七种常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)...
图像算法:图像阈值分割 SkySeraph Dec 21st 2010 HQU Email:zgzhaobo@gmail.com QQ:452728574 Latest Modified Da ...
- 常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)
主程序(核心部分) 代码 1 2 3 4 IplImage * binaryImg = cvCreateImage(cvSize(w, h),IPL_DEPTH_8U, 1 ); 5 ...
- otus阈值分割matlab,OSTU最佳阈值法二值化原理-matlab和C | 学步园
觉得这篇介绍OTSU方法挺清楚的.自己又加了一些,希望对初学者有帮助哦~ OTSU 1. OTSU算法原理简介 对于一幅图像,设当前景与背景的分割阈值为t时,前景点占图像比例为w0,均值为u0,背景点 ...
- 七种常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)...
转自:http://blog.csdn.net/xw20084898/article/details/17564957 一.工具:VC+OpenCV 二.语言:C++ 三.原理 otsu法(最大类间方 ...
- 【转】七种常见阈值分割代码(Otsu、最大熵、迭代法、自适应阀值、手动、迭代法、基本全局阈值法)...
http://blog.csdn.net/xw20084898/article/details/17564957 一.工具:VC+OpenCV 二.语言:C++ 三.原理 otsu法(最大类间方差法, ...
- C#,图像二值化(12)——基于谷底最小值的全局阈值算法(Valley-Minium Thresholding)与源代码
1.基于谷底最小值的阈值 这个方法适用于通过有限的迭代次数,平滑后能得到双峰的图像,让双峰的谷底成为阈值.当执行完基于谷底最小值的阈值操作的时候,改变了直方图信息,使之成为处理过后的直方图信息,这时候 ...
最新文章
- 【Java设计模式】GOF32 - 单例模式
- spring mail 发送邮件
- 基于 Redis 实现 CAS 操作
- Azure Cosmos DB技术性解读
- 一个柱状图里两种数据_分享一些数据分析常用的统计图图表
- elementui 表头错位解决方法
- Java线程输出字母大小写_FastJson 输出值 首字母大小写问题
- Qt 网络编程制作一个客户端与服务器
- lucene-使用htmlparser解析有编码页面
- Machine learning approximation algorithmsfor high-dimensional fully nonlinear PDE
- 干货 | 那些你不知道的爬虫反爬虫套路
- Linux下的LWP(轻量级进程)、进程 、 线程、用户级线程、内核线程
- Pandas中透视表和交叉表
- 用Python画等边三角形
- GetLastError()函数返回的值及含义
- 【python逆向一把梭】pyinstaller打包的exe逆向一把梭
- 7-112 斐波那契数列 (10 分)
- 苹果Mac在一段时间不使用后,应用(系统)会自动退出(重启)的解决方法
- 许昌一高2021年高考成绩查询,2021年许昌最好的高中排名,许昌重点高中升学率排名...
- 系统分析员论文(二)------某电子支付系统分析论文
热门文章
- KT142A语音芯片IC的固件升级方法详细描述,PC升级和U盘升级
- mysql association_Mybatis的一对多(collection)和一对一(association)查询
- mysql查找名字含A的的姓名_mysql查询结果排序,name字段有中文名字,有英文名字,如何按a-z的顺序把名字排序...
- Latex中处理中文
- 云计算模拟平台——Cloudsim的配置(Windows10 和 ubuntu18.04)
- webRTC服务器搭建(基于Janus)与Demo运行
- 程序员自学编程被腾讯拒却月入3w是一种怎样的体验?
- 缓存(cache、Redis)
- 转载 骏马金龙第9章 Linux进程和信号超详细分析
- 【Python】os.path.exists()的含义 及文件存在但os.path.exists()返回False的原因