【图像分割】基于matlab贝叶斯图像分割【含Matlab源码 1677期】

一、贝叶斯图像分割简介(具体理论见参考文献)

针对海底鱼图像中鱼难以从背景中分割出来的问题,本文对贝叶斯决策中常用的两种方法进行了分析和研究,提出了一种基于最小错误率决策的海底鱼图像分割方法。具体的解决方法如下:首先,选择合适颜色的背景纸板,拍摄图片后,选择图像的蓝色通道来获得灰度图像;然后计算三个数据:根据前景和背景像素的灰度级频率直方图分布得到正态分布函数的参数;根据图像中的前景和背景所占的比例来计算先验概率;根据贝叶斯公式计算每个像素灰度级的后验概率。最后,根据后验概率判别函数将像素归入前景或者背景,从而达到图像分割的效果。经过试验,能够对图集中的其他桃蛀螟幼虫图像进行分割,并取得了较好的效果。
本文的方法和传统与经典OSTU算法对比, 能够避免OSTU法中某些像素的过度分割现象, 达到较好的分割效果。可以得出如下结论:图集中背景和前景
的蓝色通道的像素灰度级呈现正态随机分布;基于贝叶斯决策的决策方法,在图像像素灰度级呈现正态随机分布的情况下,通过取得最大后验概率,可进行图像分割,并可应用于同一图集的其他图像分割中。

二、部分源代码

clc
clear all

%读入三种数据
image=imread('309.bmp');
image_gray = rgb2gray(image);
s=load('array_sample');
Mask=load('Mask.mat');

[M,N]=size(image_gray);%灰度图像大小

%获得灰度小鱼
for i=1:M
   for j=1:N
     nemo_gray(i,j)=image_gray(i,j)*Mask.Mask(i,j);
   end
end
%获得彩色小鱼
for k=1:3
for i=1:M
   for j=1:N
     nemo(i,j,k)=image(i,j,k)*Mask.Mask(i,j);
    end
end
end

figure('NumberTitle', 'on', 'Name', '小鱼肤色分割'),
 subplot(2,2,1);imshow(image),title('image');
 subplot(2,2,2);imshow(image_gray),title('image_gray');
 subplot(2,2,3);imshow(nemo),title('nemo');
 subplot(2,2,4);imshow(nemo_gray),title('nemo_gray');

[m,n]=size(s.array_sample);%样本矩阵大小

%提取两类灰度样本
j=1;
for i=1:m
    if(s.array_sample(i,5)==1)
        sample_gray1(i)=s.array_sample(i,1);
    else
        sample_gray2(j)=s.array_sample(i,1);
        j=j+1;
    end
end
lab_num1=length(sample_gray1);
lab_num2=length(sample_gray2);

%先验概率
w1=lab_num1/m;
w2=lab_num2/m;

[mu1,sigma1]=normfit(sample_gray1);
[mu2,sigma2]=normfit(sample_gray2);

 figure('NumberTitle', 'on', 'Name', '小鱼肤色分割');
 fplot(@(x)normpdf(x,mu1,sigma1),[0,1]),hold on
 fplot(@(x)normpdf(x,mu2,sigma2),[0,1])
 title '正态分布密度函数';


三、运行结果

在这里插入图片描述
在这里插入图片描述

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
[5]廉世彬,朱晓冬,翟海茹,闫俊君.基于贝叶斯决策的果树害虫图像分割研究[J].农业网络信息. 2016,(02)

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>