我正在编写使用mog2算法从输入中提取背景的实时视频处理代码,然后我使用形态滤波器来平滑它。
问题是,有时在一个对象的掩码中存在间隙。我认为我可以使用某种算法修复它以填补阈值内的空白,但是在OpenCV中是否存在类似的算法,或者我是否必须自己编写?
左图是实际的蒙版,右图是我画的预期结果:
答案 0 :(得分:0)
关于编辑二进制掩码是一种二进制形态操作:您需要loop()
二进制掩码。
关于形态学结束的信息是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)