otsu天空分割matlab,matlab图像处理--Otsu阈值分割

otsu天空分割matlab,matlab图像处理--Otsu阈值分割
Otsu算法:取⼀个最优阈值把原图像分为前景⾊(A部分)与背景⾊(B部分),两部分的类间⽅差越⼤,说明两部分差别越⼤,便能有效的分割图像。所以该算法最关键的是到最优阈值。
⽅差:    例如  1,2,3,4,5
先求均值:1/5(1+2+3+4+5)=3
⽅差=1/5[(1-3)^2+(2-3)^2+(3-3)^2+(4-3)^2+(5-3)^2]=
(上式能把1/5分别带⼊相乘)
类间⽅差:与⽅差相似,求不同部分之间的⽅差
例如1,2,3,4,5。把1,2,3当成⼀个A部分,4,5当成B部分,由⽅差可知,需要得到总均值,A部分所有⽐例,B部分所占⽐例,A部分值(即均值),B部分值(即均值)
PA(A⽐例)=3/5          PB(B⽐例)=2/5
ave_all(总均值)=3      ave_A(A均值)=1/3(1+2+3)      ave_B(B均值)=1/2(4+5)
类间⽅差=PA*(ave_A-ave_all)^2+PB*(ave_B-ave_all)^2(Otsu算法)
我们的知识是有限的公式代码如下:
close;clear;clc;
I=im2double(imread('coins.png'));  %变为双精度,即0-1
subplot(221);imhist(I);            %显⽰灰度直⽅图
[M,N]=size(I);                    %得到图像⾏列像素
number_all=M*N;                    %总像素值
hui_all=0;                        %预设图像总灰度值为0
ICV_t=0;                          %预设最⼤⽅差为0气辅成型
%得到图像总灰度值
for i=1:M
关于公立医院改革试点的指导意见for j=1:N
cruise软件hui_all=hui_all+I(i,j);
end
end
all_ave=hui_all*255/number_all;  %图像灰度值的总平均值
%t为某个阈值,把原图像分为A部分(每个像素值>=t)与B部分(每个像素值=t)    %分割出灰度值》=t的像素
number_A=number_A+1;  %得到A部分总像素
hui_A=hui_A+I(i,j);  %得到A部分总灰度值
elseif (I(i,j)*255ICV_t)                    %不断判断,得到最⼤⽅差
ecmsICV_t=ICV;
k=t;                          %得到最⼤⽅差的最优阈值
答记者问
end
end
k                                      %显⽰阈值
在MATLAB中⾃带Otsu算法,调⽤即可
k=graythresh(I)              %I为灰度图像。k为最优阈值,其⼤⼩在[0,1]之间 ,为双精度类型代码如下:
close;clear;clc;
I=im2double(imread('coins.png'));
k=graythresh(I);              %得到最优阈值
J=im2bw(I,k);                  %转换成⼆值图,k为分割阈值
subplot(121);imshow(I);
subplot(122);imshow(J);
-
--------------------

本文发布于:2024-09-21 20:27:48,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/367511.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:部分   图像   得到   灰度   阈值
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议