【matlab】图像二值化---最大类间方差法
最大类间方差法
最大类间方差法是由日本学者大津(Nobuyuki Otsu)于1979年提出的,是一种自适合于双峰情况的自动求取阈值的方法,又叫大津法,简称Otsu。它是按图像的灰度特性,将图像分成背景和目标2部分。背景和目标之间的类间方差越大,说明构成图像的2部分的差别越大,当部分目标错分为背景或部分背景错分为目标都会导致2部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。
在Matlab中, graythresh 函数使用最大类间方差法获得图像的阈值。
如: level=graythresh(I1);
输入 :I1 是灰度图
输出: level 就是灰度图进行二值化的阈值
用 im2bw (推荐使用 imbinarize)将灰度图转换成二值图
如: I2=im2bw(I1,level);
输入:I1 原灰度图 level 灰度阈值
输出: I2 二值图
I=imread('./ImageLib/DT4.png');
subplot(131);imshow(I);title('原始图像');I=im2double(I);
[h,w,L]=size(I); %计算图像的大小
I1=2*I(:,:,2)-I(:,:,1)-I(:,:,3);
subplot(132);imshow(I1);title('2G-R-B灰度化图像');level=graythresh(I1); %确定灰度阈值
% I2=im2bw(I1,level);
I2=imbinarize(I1,level);
subplot(133);imshow(I2);title('Otsu二值图');
效果图:
【matlab】图像二值化---最大类间方差法相关推荐
- MATLAB图像二值化函数im2bw与imbinarize对给定阈值的内部处理细节
MATLAB图像处理工具包中的im2bw函数和imbinarize函数均可以实现灰度图像的二值化功能,且在MATLAB R2018a之后推荐使用imbinarize.但两者在内部处理图像的时候具有一些 ...
- MATLAB图像二值化
还是老规矩先宣传一下QQ群群: 格子玻尔兹曼救星:293267908. 一切为了早日毕业. 听说可以在PPT作图然后用MATLAB二值化把复杂边界用01矩阵表达出来.上网看了下: I = imread ...
- matlab 图像二值化 后0、1像素的个数统计
目标: 批量处理RGB图像,对其进行二值化处理(需要考虑二值化的阈值设置,此处不展开) 统计二值化之后,各个黑白图像中0.1 的像素点数目 使用折线图的方式,展示出统计的结果 首先进行输入文件夹 与输 ...
- matlab 图像二值化_推荐:为图像处理初学者设计的100个问题(含python实现代码)...
本文整理了图像处理初学者应该需要了解的100个基础问题,涉及读取.显示图像.操作像素.拷贝图像.保存图像.灰度化(Grayscale).二值化(Thresholding).大津算法.HSV 变换.减色 ...
- OTSU_图像二值化分割阈值的算法
简介: 大津法(OTSU)是一种确定图像二值化分割阈值的算法,由日本学者大津于1979年提出.从大津法的原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景 ...
- 图像二值化之最大类间方差法(大津法,OTSU)
参考文章1:图像二值化与otsu算法介绍 参考文章2:python opencv cv2.threshold() (将固定级别的阈值应用于每个数组元素)ThresholdTypes 最大类间方差法(大 ...
- opencv与C++实现最大类间方差法(OTSU)进行图像二值化
直接上代码,使用最大类间方差法进行二值化的函数 void threshold_otsu(Mat &mat, Mat &mat_thresh) //mat为输入图像,mat_thresh ...
- 基于阈值的图像二值化方法MATLAB
文章目录 一.目录 二.摘要 三.实验步骤 3.1 固定阈值法 (1)计算均值和方差 (2)绘制和分析高斯分布图像 (3)以128为阈值进行固定阈值分割 (4)观察灰度直方图选择最优固定阈值 3.2 ...
- 【编程语言】利用CImage类对图像像素的处理(图像二值化)
最近做的课程作业需要用到CImage函数处理图像,其中涉及到读取图像以及对图像像素进行操作,在这里记录一下自己的理解. 首先是CImage类的定义和读取图片 CImage srcImage;CIm ...
- 【MATLAB】图像二值化(imbinarize函数)
[MATLAB]图像二值化(imbinarize函数) 图像二值化在MATLAB 2019 版中提示:建议不要使用'im2bw'而改用'imbinarize'.所以特意总结im2bw和imbinari ...
最新文章
- 零基础学Java程序有什么好的建议
- Ubuntu 17 安装 tensorflow
- 实现Spark集群部署 这些公司都经历了什么?
- linux 强制刷新文件,vim 如何刷新或重载reload 已打开的文件
- Python 删除列表中的重复数据
- 【直播预告】阿里云服务网格 ASM 产品易用性改善实践与思考
- OpenCV直线和圆形检测
- Redux异步中间件
- 2019蓝桥杯Java决赛题答案_2019第十届蓝桥杯JavaB组省赛真题详解
- OpenCv色彩通道分离与融合
- WordPress优化:为原创文章和转载文章分别添加不同的版权申明
- 什么是分布式垃圾回收(dgc)?它是如何工作的?_激荡60年——垃圾回收与Go的选择...
- cad两直线相交画圆弧_在CAD图纸中绘制中心线的操作技巧
- STM32 CAN波特率计算程序
- SoapUI接口测试工具测试webservice
- HDU2594 Simpsons’ Hidden Talents 前缀与后缀转化成用s1去匹配s2
- 彻底拿下QSPI双闪存W25Q256| STM32H750| QSPI 双FLASH |cubeIDE |下载算法(一)
- Linux性能测试(UnixBench)(bench)一键脚本
- 制作软件工程师风格的qq头像
- Tibco Designer -- 循环遍历