OpenCV在间隙阈值内合并掩模部件

时间:2015-10-15 10:24:08

标签: java algorithm opencv image-processing

我正在编写使用mog2算法从输入中提取背景的实时视频处理代码,然后我使用形态滤波器来平滑它。

问题是,有时在一个对象的掩码中存在间隙。我认为我可以使用某种算法修复它以填补阈值内的空白,但是在OpenCV中是否存在类似的算法,或者我是否必须自己编写?

左图是实际的蒙版,右图是我画的预期结果:

1 个答案:

答案 0 :(得分:0)

关于编辑二进制掩码是一种二进制形态操作:您需要loop()二进制掩码。

enter image description here

关于形态学结束的信息是here(包括图像)

来自OpenCV Java documentation(由我缩短)

  

closing

     

执行高级形态转换。

     

该功能可以使用执行高级形态转换   侵蚀和扩张作为基本操作。    [...]>   注意:

     

使用morphEx函数进行形态学分析的示例   打开和关闭操作可以在   opencv_source_code /样品/ CPP / morphology2.cpp

     
      
  • op
  •   
     

MORPH_CLOSE - 结算操作

     

MORPH_GRADIENT - 形态渐变

     

MORPH_TOPHAT - “大礼帽”

     

MORPH_BLACKHAT - “黑帽子”

我对OpenCV的java绑定知之甚少,但它可能与上面引用中提到的C ++示例非常相似:

public static void morphologyEx(Mat src,Mat dst,int op,Mat kernel)