云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > OTSU阈值分割的实现

OTSU阈值分割的实现

  • 62 次阅读
  • 3 次下载
  • 2026/4/25 7:32:16

武汉理工大学《专业综合课程设计》

C0类像素所占的总面积的比例为:

?0??Pi (4)

i?0k?1 C1类像素所占的总面积的比例为:

?1?1??0 (5) C0类像素的平均灰度级为:

?0??0(k)/?0 (6) C1类像素的平均灰度级为:

?1??1(k)/?1 (7) 其中,

?0(k)??iPi (8)

i?0k?1 ?1(k)??iPi?1??0(k) (9)

i?kL?1 最大类间方差的公式为:

?2(k)??0(???0)2??1(???1)2 (10) 令k从0~L-1变化,计算在不同k值下的类间方差?2(k),使得?2(k)最大值时的那个k值就是所要求的最优阈值。

方法二:使用库函数的算法

在matlab工具箱提供的graythresh函数求取阈值采用的就是OTSU算法,使用库函数求取阈值就是调用graythresh函数选择阈值。

3

武汉理工大学《专业综合课程设计》

2 设计实现程序

依据本次课程设计的要求,在程序设计中,我用了非库函数和库函数两种方法进行图像的阈值求取,然后将图像进行人工选择不同阈值的阈值分割,以便进行对比。由于要实现的功能不止一个,程序比较复杂,所以为了方便程序的阅读与理解,我将程序进行分模块编写。具体程序如下:

function main %主程序

clear;close all; %清除变量,关闭所有窗口 [name path]=uigetfile('e\\dx1102.jpg'); %获取图片路径及文件名 I=imread([path name]); %读图 I=rgb2gray(I); %彩色转黑白 while 1 %循环执行

disp('0 原图 1 OTSU 2 全局阈值'); %显示功能提示信息 select=input('请选择:'); %选择相应功能 switch select

case 0 %输入0 显示原图 yuantu(I);

case 1 %输入1 OTSU法

fun1(I);

case 2 %输入2 全局阈值法 fun2(I);

otherwise %其他值不处理 end end

function yuantu(I) %显示原图 figure

imshow(I);title('原图')

function fun1(I) %阈值计算程序

4

武汉理工大学《专业综合课程设计》

Ni=imhist(I); %计算直方图数组 N=sum(Ni); %总像素点个数 delamax=0; %类间方差最大值 threshold=0; %阈值 for k=2:255

u=dot([0:255],Ni/N); %图像的总平均灰度级 w0=sum(Ni(1:k)/N); à类像素所占面积的比例 w1=1-w0; á类像素所占面积的比例 if w0==0|w0==1 %当w0为1或0时提前结束本次循环 continue end

u0=dot([0:k-1],Ni(1:k)/N)/w0; à类像素的平均灰度 u1=dot([k:255],Ni(k+1:256)/N)/w1; á类像素的平均灰度

dela(k)=w0*(u-u0)^2+w1*(u-u1)^2; %类间方差公式 %求出类间方差的最大值,最大时的那个值对应的k值存入delamax if dela(k)>delamax delamax=dela(k); threshold=k-1; end end

BW1=im2bw(I,threshold/255); %阈值分割 figure

imshow(BW1),title('自编程序运行结果') %显示图片 disp('自编程序求的的阈值:') %显示提示信息 disp(threshold) %显示结果 %调用系统函数OTSU阈值分割

level=graythresh(I); %调用系统函数计算阈值 BW2=im2bw(I,level); %阈值分割 figure

5

武汉理工大学《专业综合课程设计》

imshow(BW2),title('调用库函数运行结果')

level=round(level*255); %四舍五入计算调用系统函数的阈值 disp('调用库函数求得的阈值:') disp(level)

function fun2(I) %阈值分割程序 [width height]=size(I); th=input('请输入阈值:'); for i=1:width for j=1:height

if(I(i,j)

else BW1(i,j)=1; end end end figure

imshow(BW1),title('全局阈值')

%获取图片宽高 %灰度小于阈值时则为黑色 % 灰度大于等于阈值时则为白色 6

搜索更多关于: OTSU阈值分割的实现 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

武汉理工大学《专业综合课程设计》 C0类像素所占的总面积的比例为: ?0??Pi (4) i?0k?1 C1类像素所占的总面积的比例为: ?1?1??0 (5) C0类像素的平均灰度级为: ?0??0(k)/?0 (6) C1类像素的平均灰度级为: ?1??1(k)/?1 (7) 其中,

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com