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

熱點內容
公眾號小程序源代碼 瀏覽:178
眾心彩票是個什麼APP 瀏覽:815
電腦如何連接藍牙網路 瀏覽:793
篩選後如何計算復雜數據 瀏覽:287
如何把不同品牌的手機數據導出 瀏覽:393
日歷資料庫表的設計 瀏覽:761
代碼如何快速做金字塔數據 瀏覽:775
文件異地同步軟體 瀏覽:383
微信網頁版自動登錄 瀏覽:370
excel如何分開男女數據 瀏覽:883
帝豪gl怎麼打開u盤文件夾在哪裡 瀏覽:477
蘋果皮能用流量嗎 瀏覽:548
電腦寬頻連接共享wifi密碼 瀏覽:655
最新微粒貸app官方下載 瀏覽:923
win10電腦怎麼休眠不斷網 瀏覽:530
如何查到網站的伺服器 瀏覽:225
編程怎麼確定一個數的位數 瀏覽:362
如何安裝ae腳本文件夾 瀏覽:914
商品驗偽用什麼APP查 瀏覽:350
請問大數據與會計專業做什麼的 瀏覽:77

友情鏈接