机器学习十大经典算法:朴素贝叶斯图像分割实战——Nemo鱼图像分割(python代码+详细注释)
前言 本文所涉是笔者模式识别课的第一次大作业——用 朴素贝叶斯 来做nemo鱼图像区域分割。它是用贝叶斯来做 二元分类 的简单实践,适合用来做贝叶斯算法入门,现将简要理论和笔者所写代码放在这里,供大家参考。不知道有没有朋友有疑问,明明是图像区域分割,怎么又和二元分类扯上了关系,其实逐像素的图像分割,就是在做分类。当然,这里的分割不是指复杂的语义分割,只是简单的根据灰度或者颜色分布来做区域分割。 贝叶斯理论: 机器学习十大经典算法:深入浅出聊贝叶斯决策 任务与数据 数据 图像 fish.bmp 与掩膜 mask.mat ,掩膜点乘图像,即可获得待分割区域ROI。小鱼区域主要有两种类型的区域,以下就是要用朴素贝叶斯把这两个部分分出来——用不同的颜色表示不同区域。 训练数据 sample.mat ,它是一个二维的matlab数组,第一列为灰度值,第2-4列为RGB值,第五列为当前灰度值或者RGB值对应的类别标签(1,-1)。它蕴含着两种类型区域的灰度值或者RGB值的分布,根据它来估计两种类型区域的类概率密度函数的参数。 任务 任务1:对训练数据用极大似然,估计出两类区域灰度值的概率密度函数,并用最小错误贝叶斯对 fish.bmp ROI灰度图像进行分割。 任务2:对训练数据用极大似然,估计出两类区域RGB值的概率密度函数,并用最小错误贝叶斯对 fish.bmp