資源簡介
基于貝葉斯算法的圖像像素分割,并可視化分割結果。matlab程序
代碼片段和文件信息
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%20170925?chenkexin
%基于灰度特征的貝葉斯分割
clear;clc;
%%%%%%%%%%%%%%%%%數據準備%%%%%%%%%%%%%%%%%%%%%%%%%%%
load(‘array_sample.mat‘);
load(‘Mask.mat‘);
img_with_fish?=?imread(‘.\309.bmp‘);
%構造3通道掩膜
mask3d(::1)?=?Mask;
mask3d(::2)?=?Mask;
mask3d(::3)?=?Mask;
%轉換圖像為雙精度
img_with_fish?=?im2double(img_with_fish);
%得到魚圖像
fish?=?img_with_fish.*mask3d;
grey_fish?=?rgb2gray(fish);
%%%%%%%%%%%%%%%%%%%%類條件參數估計%%%%%%%%%%%%%%%%%%%%
%初始化兩類樣本個數
pos?=?0;neg?=?0;
%初始化兩類樣本灰度值之和
possum?=?0;negsum?=?0;
%計算兩類樣本個數與特征值之和
for?i?=?1:7696
????if?array_sample(i5)?==?1
????????pos?=?pos?+?1;
????????possum?=?possum?+?array_sample(i1);
????else
????????neg?=?neg?+?1;
????????negsum?=?negsum?+?array_sample(i1);
????end
end
%假定為正太分布,得到極大似然估計均值
u_pos?=?possum/pos;
u_neg?=?negsum/neg;
%同理得到極大似然估計兩類分布函數標準差
sigma_pos?=?0;sigma_neg?=?0;
for?i?=?1:7696
????if?array_sample(i5)?==?1
????????sigma_pos?=?sigma_pos?+?(array_sample(i1)?-
- 上一篇:圖片分割MATlab代碼 初學者
- 下一篇:BP網絡的MATLAB實現
評論
共有 條評論