資源簡介
自適應門限法圖像二值化。采用Ostu法(最大類間方差法)自動確定最佳閾值。同時也適用于光照不勻的圖像,先將其分成幾個部分,分別閾值化。效果非常好!!

代碼片段和文件信息
clear?all;
img?=?imread(‘圖片2.png‘);
img?=?rgb2gray(img);
figure;imshow(img?[])
[m?n]?=?size(img);
img_hist?=?zeros(1256);
for?i?=?1:m
????for?j?=?1:n
????????img_hist(img(i?j)+1)?=?img_hist(img(i?j)+1)?+?1;
????end
end
img_hist_pro?=?img_hist/m/n;?????????%灰度級概率密度分布
%?plot(img_hist_pro)
%?figure;imhist(img)
sigma2_max?=?0;threshold?=?0;
for?t?=?0:255
????w0?=?0;w1?=?0;?u0?=?0;?u1?=?0;?u?=?0;
????for?q?=?0:255
????????if?q?<=?t
????????????w0?=?w0?+?img_hist_pro(q+1);
????????????u0?=?u0?+?(q)*img_hist_pro(q+1);
????????else
????????????w1?=?w1?+?img_hist_pro(q+1);
????????????u1?=?u1?+?(q)*img_hist_pro(q+1);
????????end
????end
????u?=?u0?+?u1;
????u0?=?u0?/?(w0+eps);
????u1?=?u1?/?(w1+eps);
????sigma2?=?w0?*?(u0?-?u)^2?+?w1?*?(u1?-?u)^2;?????%求取類間最小
????if?(sigma2?>?sigma2_max)
????????sigma2_max?=?sigma2;
????????threshold?=?t;
????end
end
img_out?=?img;
for?i?=?1:m?????????????????????????????????????????%閾值化
????for?j?=?1:n
????????if?img(i?j)?>=?threshold;
????????????img_out(i?j)?=?255;
????????else?
????????????img_out(i?j)?=?0;
????????end
????end
end
figure;imshow(img_out)
????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1176??2013-01-10?21:17??作業4\adaptivethresh.m
?????文件???????1653??2013-01-10?21:27??作業4\adaptivethresh2.m
?????文件????1230242??2013-01-10?21:31??作業4\result.tif
?????文件?????146415??2013-01-09?20:39??作業4\圖片1.png
?????文件?????397940??2013-01-03?14:52??作業4\圖片2.png
?????文件??????22594??2013-01-10?22:05??作業4\自適應門限法將圖像二值化.docx
?????目錄??????????0??2013-01-11?18:49??作業4
-----------?---------??----------?-----??----
??????????????1800020????????????????????7
- 上一篇:matlab牛頭刨床
- 下一篇:matlab 語音識別系統源代碼
評論
共有 條評論