图像分割值OTSU方法介绍
来源:互联网 发布:刷票软件 编辑:程序博客网 时间:2024/05/18 03:34
图像分割方法今天暂时不深入讨论了,因为本人目前对于图像二值化和分割认为是一样的,可是很多图像处理任务中会将图像先二值化后再分割,没搞懂~~因此暂时从二值化开始讨论,首先讨论的是OTSU(最大类间方差方法):
假设输入图像为灰度图像(0-255),那么在图像二值化的目的就是对图像进行基于设定阈值的分割得到图像的前景(255)和背景(0),进而得到二值图像。实现过程是,首先统计灰度图像的分布直方图,得到各灰度值对应的像素统计值,随机设定一个阈值T,将图像分为“第一种”二值图像,随后基于该直方图分别计算前景和背景的比重、灰度均值、方差等三种数值,并通过计算比重和方差之和得到该阈值下的图像类间方差计算值,随后对图像基于其它阈值的类间方差计算(如果图像的灰度分布遍布256个灰度值,那么需要计算256次,依次类推),最终以类间方差最大的情况下的T为阈值对图像进行分割进而得到图像的OTSU分割结果。
clc; clear all;
img = im2double(imread(imageFiles{nImage}));
[height, width] = size(img);
globalThresh = graythresh(img);
imgBinGlobal = im2bw(img, globalThresh);
imhist(img);
histCounts = imhist(img);
h = plot(globalThresh*ones(1,100), linspace(0,max(histCounts)), 'r-');
imgBinLocal = imgBinGlobal;
winHalfWidth = 10;
localVarThresh = 0.002;
for col = 1:width
inCols = max(1,col-winHalfWidth) : min(width,col+winHalfWidth);
inRows = 1:height;
inTile = img(inRows, inCols);
localThresh = graythresh(inTile);
localVar = std(inTile(:))^2; %方差
if localVar > localVarThresh
imgBinLocal(:,col) = im2bw(img(:,col), localThresh);
else
imgBinLocal(:,col) = 1;
end
if nImage == 1
pause
end
end
很悲催的发现,LOFTER好像写代码不方便,今天暂时粘别人的过来看看,明天再找一个写代码好的地方,GITHUB应该不错,以后代码直接贴链接了!!
睡了,困死了~~
- 图像分割值OTSU方法介绍
- 图像分割方法介绍
- 图像分割方法介绍
- 图像分割方法介绍
- 图像分割--使用Otsu方法的全局阈值处理
- 图像分割中OTSU算法
- 一种otsu阈值分割方法
- Otsu灰度图像自适应分割算法
- 简单介绍图像分割的方法
- 图像分割及常用方法介绍
- 边缘检测和Otsu方法背景分割
- 灰度图像--图像分割 阈值处理之OTSU阈值
- Otsu算法寻找灰度图像中最优分割阈值
- 灰度图像的自动阈值分割(Otsu 法)
- 基于Otsu算法的图像自适应阈值分割
- MFC处理bmp图像—Otsu阈值分割
- 图像分割之大津算法(OTSU)
- opencv图像差分+otsu方法
- 香港性别鉴定多少钱
- 如何鉴别胎兒的性别
- Oracle学习(5):多表查询
- 图像分割基本原理介绍
- 漂亮妹妹去宾馆开房
- 图像分割值OTSU方法介绍
- 程序员练级手册
- 图像滤波基本理解
- 图像特征基本介绍
- 杭电里面遇见的几何的分割问题
- LBP算子理解
- 画链表分析图引发的思考
- 头发能做亲子鉴定吗
- 性別鑒定要去哪兒做