日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab 二值化_撸了一份 ostu二值化,需要的小伙伴请拿走

發布時間:2024/9/19 循环神经网络 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab 二值化_撸了一份 ostu二值化,需要的小伙伴请拿走 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大津法二值化

小發言

本份代碼完全自寫,由于要輸入輸出圖片,故采用的是matlab語言,但是除了使用imread()和imshow()函數之外,所有代碼全部是自己寫的,并且與matlab自帶庫函數做了對比。這樣的話,也方便了大家用C移植,如果搞懂原理的話,移植也就是20分鐘的事。

上來就整原理

:閾值

:小于閾值的像素,也就是前景

:大于閾值的像素,也就是背景

:圖像高 :圖像寬

:前景像素占總數比

:背景像素占總數比

:前景平均灰度

:背景平均灰度

:整幅圖像平均灰度

:類間方差

化簡

當類間方差最大時。此時的灰度值就是我們需要求得最佳閾值。因此只需要對每個灰度值依次遍歷,并計算g值,加以比較從而求出最適閾值。

干貨從這里開始

首先讀取圖片

y_img=imread("pic.jpg"); imshow(y_img);

然后轉換為灰度

h_img:灰度圖像

h_img=rgb2gray(y_img); imshow(h_img);

繪制灰度直方圖

[h,w]=size(h_img); N=h*w;

直方圖統計并繪出直方圖

對于這里的h_img(i,j)+1 做個特別說明,是由于在matlab 里面,數組的索引是從1開始的,沒有0,而對于灰度值(0到255)來說,是有0的,因此用Histogram(1)表示灰度值為0的像素點個數,同樣,用Histogram(256)表示灰度值為255的像素點個數。

Histogram=zeros(1,256); for i=1:hfor j=1:wHistogram(h_img(i,j)+1)=Histogram(h_img(i,j)+1)+1;end end createfigure(Histogram);%自定義繪制直方圖函數

求總的灰度值

graySum=0; for i=1:256graySum = graySum + Histogram(i)*(i-1); end

計算最佳閾值

n0=0; n0sum=0; temp=0; for i=1:256n0 =n0+ Histogram(i); %閾值為i時前景個數n1 = N - n0; %閾值為i時背景個數w0 = n0/N; %前景像素占總數比w1 = n1/N;%背景像素占總數比if n0==0continueendif n1==0breakend%前景平均灰度n0sum = n0sum+Histogram(i)*(i-1);u0 = n0sum/n0;%背景平均灰度n1sum = graySum-n0sum;u1 = n1sum/n1;g = w0*w1*(u0-u1)*(u0-u1);if g > temp temp = g;T = i-1; end end

比較,進行二值化

bw=zeros(h,w); for i=1:hfor j=1:wif h_img(i,j)>Tbw(i,j)=255;elsebw(i,j)=0;endend end imshow(bw)

matlab自帶二值化

t1=graythresh(h_img); F=imbinarize(h_img,t1); imshow(F)

總結

把自己寫的二值化與matlab自帶的比較,可見兩者幾乎完全一樣,可見效果還是很好的。對于二值化,方法還有好幾種,我這里只是選了一種應用最廣的大津法進行了介紹,至于對于特定的場合,不同的二值化有著不同的效果,因此,至于怎樣用,還是靠各位小伙伴深入探究了。后續可能會對各種二值化方法一一介紹哦,還是那句話,要么就不寫,絕不寫水文。想要獲取完整代碼的小伙伴,請在文末留言。

歡迎關注本人公眾號

總結

以上是生活随笔為你收集整理的matlab 二值化_撸了一份 ostu二值化,需要的小伙伴请拿走的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。