首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用DIPlib在C++中获得二值图像的凸包?

如何利用DIPlib在C++中获得二值图像的凸包?
EN

Stack Overflow用户
提问于 2022-09-23 14:42:18
回答 1查看 48关注 0票数 1

我有一堆开放的多孔结构的二进制图像,我想得到一个二元掩模,它覆盖了整个结构(结构本身和结构中包含的空洞)。我认为实现我的目标的一个好方法是计算图像的凸包。这在使用skimage.morphology.convex_hull_image的Python中工作得很好(见图)。

但是我需要C++中的这个功能,我想使用DIPlib库。不幸的是,由于文档给我带来了一点困惑,所以我很难找到正确的实现。

  1. 你能提供一个最小的例子来解释如何导出一个二元物体的凸包作为图像吗?
  2. DIPlib实现也处理3D图像吗?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-23 19:44:49

您可能希望使用函数dip::MakeRegionsConvex2D()。例如:

代码语言:javascript
复制
dip::Image img = dip.ImageRead('yIFuP.jpg');
dip::Image bin = img > 128;  // assuming img is scalar
dip::MakeRegionsConvex2D(bin, bin);

此函数是为2D图像显式编写的,对3D图像不起作用。

对于3D图像,我将获得所有集合像素的坐标列表(使用dip::Find),并将其传递到快速壳算法实现(如CGAL中的 )中,然后将生成的三维多面体绘制到图像中。最后一步可能是最具挑战性的一步(我不知道CGAL是否有将多面体呈现给图像的功能)。快速而肮脏的解决方案是对所有像素进行迭代,对于每个像素进行输入/输出测试,如果像素位于多面体内,则设置像素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73829448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档