在 OpenCV 中放大对象轮廓

Enlarging objects contours in OpenCV

根据我的图像,我创建了一个二进制掩码来标记一些对象(一张图像上最多三到四个对象)。
比方说,我面具上那些标记的物体的总表面场为 X

现在我想放大它们的轮廓,这样剩下的space(黑色区域)的表面积为X
如果他们拍摄的图像超过 50%,那么我想保持不变。

我会做以下事情。计算掩码的距离变换 M。然后取一些合理的距离 d > 0 作为起始值。然后进行二进制搜索,即如果 M < d 小于总图像的 X%,则设置 d = 2d,如果它大于 X%,则设置 d = d/2。重复此操作几次,直到精度足以满足您的需求。