導航:首頁 > 編程語言 > 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代碼相關的資料

熱點內容
iphone4ios71降級613 瀏覽:650
garageband升級 瀏覽:689
科學linux 瀏覽:447
哪裡的app理財好 瀏覽:799
linux下線程的創建線程數 瀏覽:804
怎麼改變文件大小 瀏覽:574
飛雪流水軟體注冊破解工具 瀏覽:814
csgo比賽數據哪裡看 瀏覽:961
已越獄iphone4升級ios7 瀏覽:607
微信分享但不是微商 瀏覽:877
git子模塊如何獲取最新數據 瀏覽:446
java項目ppt模板下載不了 瀏覽:493
不常用的app怎麼取消 瀏覽:230
js多點滑動選取范圍 瀏覽:756
環境監測app怎麼下載 瀏覽:444
美創科技外數據安全領域怎麼樣 瀏覽:143
蘋果手機上怎麼修改文件表 瀏覽:865
網上如何年審營業執照網站 瀏覽:304
電信版iphone好嗎 瀏覽:469
瀟湘冬兒在哪個網站 瀏覽:838

友情鏈接