消除OpenCV EM检测到的误报

时间:2018-06-04 14:42:35

标签: python opencv image-segmentation false-positive expectation-maximization

我正在开发一种Python算法,它应该识别叶子上包含报告疾病严重程度的斑点的区域。在我的研究过程中,我发现了LeafSnap,并从中受到启发。因此,我尝试按照文章使用OpenCV Expectation Maximization对图像上的叶片进行分割,使用S和V形式的HSV色彩空间进行训练;然而,由于反射或阴影,它仍会返回一些误报。

First Sample

Second Sample

有人可以尝试给我任何暗示以获得更好的结果吗? 我没有应用任何预处理技术!

1 个答案:

答案 0 :(得分:1)

我认为Leafsnap不适合在阳光直射下使用。它会产生非常强大的阴影,完全搞乱了他们的S + V方法。

在论文中,作者解释说它们会降低色调,因为当白纸片反射一些绿色时,它会“稀释”物体。但是,在您的情况下,因为照片似乎是在晴朗的天空下拍摄的,所以纸张要么偏黄(在阳光直射下)或蓝色(在阴影中),要么与叶子的绿色色调明显区分开来。实际上,在这两种情况下,色调层是反映叶子形状最好的层。因此,你不应该忽略色调来找到树叶的形状。

作为一个想法,你可以单独使用Saturation + Value,以及Hue来确定形状。之后选择那两个中较小的形状。