这是一张图片:
我想知道如何将黑色圆圈设置为白色,其余部分设置为黑色。
(因此在白色区域内分割黑色圆圈)。
我知道我可以反转图像,圆圈将是白色的......但是这张图像中看到的整个黑色部分也是如此。
如果我必须在 matlab 中执行此操作,我将执行连通分量操作并检查 BLOB 的循环性。虽然我必须在 opencv 中执行此操作(准确地说是 javacv。)
在 opencv (javacv) 中是否有一种简单的方法可以做到这一点。
提前致谢
最佳答案
在 OpenCV 中有一种使用 findContours()
和 drawContours()
的简单方法。如果您使用分层版本的 findContours()
,则您可以查看分层结构并仅绘制(填充)白色四边形的子轮廓。这还有一个额外的好处,那就是您可以在必要时进行一些健全性检查(例如,检查轮廓的大小以查看它是否大约是您期望的大小)。我对 java 或 javacv 一无所知,但也许您可以查看 opencv 中包含的 findcontours 的 c++ 示例以获取灵感?
关于java - 分割区域内的区域分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9958823/