导航:首页 > 编程语言 > otsu算法matlab代码

otsu算法matlab代码

发布时间:2023-01-15 21:25:08

⑴ MATLAB有OTSU分割图像的函数吗

有的,函数是graythresh,代码如下,coins.png是自带的图像,代码可直接调用:

I=imread('coins.png');
level=graythresh(I);
BW=im2bw(I,level);
imshow(BW)

⑵ 求一个matlab代码:使用otsu进行阈值分割,提取图中目标,背景全变为黑色或白色。

I=imread('coins.png');
figure,imshow(I);
level=graythresh(I);
BW=im2bw(I,level);
BW=imfill(BW,'holes');
figure,imshow(BW);

coins.png

⑶ MATLAB--数字图像处理 Otsu算法(双阈值)

该算法就是利用otsu算法计算出两个阈值
公式
g=w0 (u0-u)^2+w1 (u1-u) ^2+ w2*(u2-u) ^2
g最大值时,就可以选出两个阈值

求两个阈值

利用这两个阈值分割图像

主函数调用

⑷ 求一个用otsu算法的图像分割matlab程序

image_1=imread('E:\ebook\lena.bmp'); %读入图片
image_1=rgb2gray(image_1);%灰度化

[m,n]=size(image_1);%计算图片的像素点个数,行列,n是列数,Gray

num=zeros(1,256);%存放各灰度级出现的次数

p=zeros(1,256);%存放各灰度级的比率

image_1=double(image_1);%双精度化

for i=1:m
for j=1:n
num(image_1(i,j)+1)=num(image_1(i,j)+1)+1;%统计各灰度级的像素点个数
end
end

for i=1:256
p(i)=num(i)/(m*n);%计算各灰度级出现的比率
end

for i=2:256
if p(i)~=0
st=i+1;%实现寻找出现比率不为0的最小灰度值
break
end
end

for i=256:-1:1
if p(i)~=0;
nd=i-1;%实现找出出现比率不为0的最大灰度值
break
end
end

%以下程序实现利用最小方差和法找出门阈值
w=inf; th=0;

for t=st:nd%最小非零比率灰度值到最大非零比率灰度值
qt1=0; qt2=0;%前景后景像素点比率
u1=0; u2=0;%前景后景均值
v1=0; v2=0;%
for i=1:t
qt1=qt1+p(i);
end
for i=1:t
u1=u1+i*p(i)/qt1;
end
for i=1:t
v1=v1+((i-u1)^2)*p(i)/qt1;
end

for i=t+1:256
qt2=qt2+p(i);
end
for i=t+1:256
u2=u2+i*p(i)/qt2;
end
for i=t+1:256
v2=v2+((i-u2)^2)*p(i)/qt2;
end
if qt1*v1+qt2*v2<w
th=t; w=qt1*v1+qt2*v2 ;
end
end

for i=1:m
for j=1:n
if (image_1(i,j)+1>th)
image_2(i,j)=255;
else
image_2(i,j)=0;
end
end
end
image_2=uint8(image_2);%读入读出变换
figure,imshow(image_2);%显示二值化后的图片

⑸ 求MATLAB代码

我只能说,这种限定行数的东西很疼。
再说句不好听的,多一些空行,代码一行拆成两行写,多一些注释,再牛一点把一些MATLAB自带的函数用循环再实现一次,这样的话,几百行的代码肯定可以干到1200行。

⑹ 【高分】用Matlab实现中值滤波与Otsu算法

告诉你一个简单的方法
你可以edit
medfilt2
edit
graythresh
就可以得到原函数的详细编码,然后再稍微修改一下就行了呗

⑺ 用matlab求图像阈值分析程序,急啊~

我给你提供2种方法,一种是直方图阈值法一种是最大类间方差
直方图阈值法
用 MATLAB实现直方图阈值法:
I=imread(' c4.jpg ');
I1=rgb2gray(I);
figure;
subplot(2,2,1);
imshow(I1);
title(' 灰度图像')
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
[m,n]=size(I1); %测量图像尺寸参数
GP=zeros(1,256); %预创建存放灰度出现概率的向量
for k=0:255
GP(k+1)=length(find(I1==k))/(m*n); %计算每级灰度出现的概率,将其存入GP中相应位置
end
subplot(2,2,2),bar(0:255,GP,'g') %绘制直方图
title('灰度直方图')
xlabel('灰度值')
ylabel(' 出现概率')
I2=im2bw(I,150/255);
subplot(2,2,3),imshow(I2);
title('阈值150的分割图像')
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
I3=im2bw(I,200/255); %
subplot(2,2,4),imshow(I3);
title('阈值200的分割图像')
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
自动阈值法:Otsu法
用MATLAB实现Otsu算法:
clc
clear all
I=imread(' c4.jpg ');
subplot(1,2,1),imshow(I);
title('原始图像')
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系
level=graythresh(I); %确定灰度阈值
BW=im2bw(I,level);
subplot(1,2,2),imshow(BW);
title('Otsu 法阈值分割图像')
axis([50,250,50,200]);
grid on; %显示网格线
axis on; %显示坐标系

阅读全文

与otsu算法matlab代码相关的资料

热点内容
templatewebjs下载 浏览:774
note3应用程序未安装 浏览:714
dos看图工具 浏览:15
微信直接加为好友 浏览:467
可以用微信传送的文件app 浏览:294
pdf文件解析乱码 浏览:479
光照无关图代码 浏览:688
Linux读写文件前八位 浏览:597
word如何绘制饼状图 浏览:172
w7系统搜索文件夹 浏览:618
java线程变量 浏览:854
苹果电脑word是只读文件 浏览:691
ps5国行备份文件大小 浏览:754
linux恢复删除文件命令 浏览:805
win10家庭版打不开qq文件 浏览:794
女生来例假有哪个app比较好 浏览:66
调用后台接口为什么不显示数据 浏览:363
js判断重复 浏览:422
联通如何切换到网络电视 浏览:191
学编程的优势哪里靠谱 浏览:939

友情链接