工程需要,但是不能用matlab,所以用Opencv实现了一下bridge,也不难。
一. bridge操作的定义
在官方文档https://cn.mathworks.com/help/images/ref/bwmorph.html中,bridge操作的定义如下:
Bridges unconnected pixels, that is, sets 0-valued pixels to 1 if they have two nonzero neighbors that are not connected. For example:
1 0 0
1 0 1
0 0 1
becomes
1 1 0
1 1 1
0 1 1
也就是说,在一个二值化后的图像中,对于任意一个值为0的像素点,如果它周围(4连通或8连通)存在至少2个值为1且属于不同连通区域的像素点,则把这个像素点值修改为1。
二. 实现思路
按照定义把所有值为0的像素点都走一遍就ok了,注意每次修改后,需要更新连通区域的信息。
三. 代码实现
#include <iostream>
#include <opencv2/core/core.hpp>
#i