91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 997KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-28
  • 語言: Matlab
  • 標簽: matlab??胸片分隔??

資源簡介

基于matlab的最小誤差法的胸片分割系統。最小誤差分隔法是一種快速有效的分隔算法,通過假設目標和北京的灰度分布服從混合告訴正態分布,能夠更好地適應于醫學圖像的灰度分布特點,取得有效的目標分隔方法,代碼親測可用,有很高的參考價值

資源截圖

代碼片段和文件信息

clc;?clear?all;?close?all;
warning?off?all;
%?讀取圖像
filename?=?fullfile(pwd?‘images/test.jpg‘);
Img?=?imread(filename);
%?灰度化
if?ndims(Img)?==?3
????I?=?rgb2gray(Img);
else
????I?=?Img;
end
%?直接二值化
bw_direct?=?im2bw(I);
figure;?imshow(bw_direct);?title(‘直接二值化分割‘);
%?圈選胃區域空氣
c?=?[1524?1390?1454?1548?1652?1738?1725?1673?1524];
r?=?[1756?1909?2037?2055?1997?1863?1824?1787?1756];
bw_poly?=?roipoly(bw_direct?c?r);
figure;
imshow(I?[]);
hold?on;
plot(c?r?‘r-‘?‘LineWidth‘?2);
hold?off;
title(‘胃區域空氣選擇‘);
%?設置胃內空氣為255
J?=?I;
J(bw_poly)?=?255;
%?圖像增強
J?=?mat2gray(J);
J?=?imadjust(J?[0.532?0.72]?[0?1]);
J?=?im2uint8(mat2gray(J));
figure;?imshow(J?[]);?title(‘圖像增強處理‘);
%?直方圖統計
[counts?gray_style]?=?imhist(J);
%?亮度級別
gray_level?=?length(gray_style);
%?計算各灰度概率
gray_probability??=?counts?./?sum(counts);
%?統計像素均值
gray_mean?=?gray_style‘?*?gray_probability;
%?初始化
gray_vector?=?zeros(gray_level?1);
w?=?gray_probability(1);
mean_k?=?0;
gray_vector(1)?=?realmax;
ks?=?gray_level-1;
for?k?=?1?:?ks
????%?迭代計算
????w?=?w?+?gray_probability(k+1);
????mean_k?=?mean_k?+?k?*?gray_probability(k+1);
????%?判斷是否收斂
????if?(w??1-eps)
????????gray_vector(k+1)?=?realmax;
????else
????????%?計算均值
????????mean_k1?=?mean_k?/?w;
????????mean_k2?=?(gray_mean-mean_k)?/?(1-w);
????????%?計算方差
????????var_k1?=?(((0?:?k)‘-mean_k1).^2)‘?*?gray_probability(1?:?k+1);
????????var_k1?=?var_k1?/?w;
????????var_k2?=?(((k+1?:?ks)‘-mean_k2).^2)‘?*?gray_probability(k+2?:?ks+1);
????????var_k2?=?var_k2?/?(1-w);
????????%?計算目標函數
????????if?var_k1?>?eps?&&?var_k2?>?eps
????????????gray_vector(k+1)?=?1+w?*?log(var_k1)+(1-w)?*?log(var_k2)-2*w*log(w)-2*(1-w)*log(1-w);
????????else
????????????gray_vector(k+1)?=?realmax;
????????end
????end
end
%?極值統計
min_gray_index?=?find(gray_vector?==?min(gray_vector));
min_gray_index?=?mean(min_gray_index);
%?計算閾值
threshold_kittler?=?(min_gray_index-1)/ks;
%?閾值分割
bw__kittler?=?im2bw(J?threshold_kittler);
%?顯示
figure;?imshow(bw__kittler?[]);?title(‘最小誤差法分割‘);
%?形態學后處理
bw_temp?=?bw__kittler;
%?反色
bw_temp?=?~bw_temp;
%?填充孔洞
bw_temp?=?imfill(bw_temp?‘holes‘);
%?去噪
bw_temp?=?imclose(bw_temp?strel(‘disk‘?5));
bw_temp?=?imclearborder(bw_temp);
%?區域標記
[L?num]?=?bwlabel(bw_temp);
%?區域屬性
stats?=?regionprops(L);
Ar?=?cat(1?stats.Area);
%?提取目標并清理
[Ar?ind]?=?sort(Ar?‘descend‘);
bw_temp(L?~=?ind(1)?&?L?~=?ind(2))?=?0;
%?去噪
bw_temp?=?imclose(bw_temp?strel(‘disk‘20));
bw_temp?=?imfill(bw_temp?‘holes‘);
figure;
subplot(1?2?1);?imshow(bw__kittler?[]);?title(‘待處理二值圖像‘);
subplot(1?2?2);?imshow(bw_temp?[]);?title(‘形態學后處理圖像‘);
%?提取肺邊緣
ed?=?bwboundaries(bw_temp);
%?顯示
figure;
subplot(2?2?1);?imshow(I?[]);?title(‘原圖像‘);
subplot(2?2?2);?imshow(J?[]);?title(‘增強圖像‘);
subplot(2?2?3);?imshow(bw_temp?[]);?title(‘二值化圖像‘);
subplot(2?2?4);?imshow(I?[]);?hold?on;
for?k?=?1?:?length(ed)
????%?邊緣
????boundary?=?ed{k};
????plot(boundary(:2)?

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????38614??2017-05-02?08:41??第?26?章?基于最小誤差法的胸片分割系統\MainForm.fig
?????文件???????10076??2017-05-02?12:37??第?26?章?基于最小誤差法的胸片分割系統\MainForm.m
?????目錄???????????0??2017-06-30?22:08??第?26?章?基于最小誤差法的胸片分割系統\images\
?????文件?????1017598??2017-05-01?21:51??第?26?章?基于最小誤差法的胸片分割系統\images\test.jpg
?????文件????????3519??2017-05-02?09:21??第?26?章?基于最小誤差法的胸片分割系統\main.m
?????目錄???????????0??2017-07-18?13:30??第?26?章?基于最小誤差法的胸片分割系統\

評論

共有 條評論