MATLABまたはOctaveでの実装
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/13 17:53 UTC 版)
「大津の二値化法」の記事における「MATLABまたはOctaveでの実装」の解説
histogramCountsはさまざまなグレーレベルのグレースケール画像(通常は8ビット画像)の256画素のヒストグラムである。levelは画像のしきい値 (double) である。 function level = otsu(histogramCounts)total = sum(histogramCounts); % total number of pixels in the image %% OTSU automatic thresholdingtop = 256;sumB = 0;wB = 0;maximum = 0.0;sum1 = dot(0:top-1, histogramCounts);for ii = 1:top wF = total - wB; if wB > 0 && wF > 0 mF = (sum1 - sumB) / wF; val = wB * wF * ((sumB / wB) - mF) * ((sumB / wB) - mF); if ( val >= maximum ) level = ii; maximum = val; end end wB = wB + histogramCounts(ii); sumB = sumB + (ii-1) * histogramCounts(ii);endend MatlabにはImage Processing Toolboxに組み込み関数graythresh()とmultithresh()があり、それぞれ大津の手法とマルチ大津の手法(Multi Otsu's method)で実装されている。
※この「MATLABまたはOctaveでの実装」の解説は、「大津の二値化法」の解説の一部です。
「MATLABまたはOctaveでの実装」を含む「大津の二値化法」の記事については、「大津の二値化法」の概要を参照ください。
- MATLABまたはOctaveでの実装のページへのリンク