问题标签 [diplib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Basler 相机和 DIPlib
如何将 Pylon 图像(来自 Basler 相机库)转换为 C++ 语言中的 DIPlib 图像?
下面的代码说明了如何将 Pylon 图像转换为 OpenCV 图像:
c++ - dip::EuclideanSkeleton 不起作用(未处理的异常)
我正在尝试制作一个dip::EuclideanSkeleton
. 但是,在执行时,它会抛出一个Unhandled exception。返回类型和传递给函数的类型是否不匹配?如果是这样,我该如何解决这个问题?我没有更多的猜测了。没有dip::EuclideanSkeleton
程序的工作。
在:
出去:
Skel_endpoints.exe 中 0x00007FF85A0F3B29 处未处理的异常:Microsoft C++ 异常:内存位置 0x000000BAF730EDD8 处的 dip::ParameterError。
python - 如何使用 pydip 找到我的 blob 的位置?
我正在尝试在分辨率相对较低的视频 20211123_152822_capture.ics 文件中查找 blob 的位置和大小。首先我添加一个平滑过滤器,然后添加两个掩蔽过滤器。然而,MeasurementTool.Measure 函数只返回大小而不是我的 blob 的位置。我找不到如何解决这个问题,我想也许这里有人可以提供帮助。编辑:我在这里只查看一个帧,我计划保存每个帧上每个 blob 的坐标,因此是 for 循环。
python - 使用 DipLib (PyDIP) 测量两条线之间的距离
我目前正在研究一种使用定量图像分析来查找塑料细丝直径的测量系统。下面是原始图像和处理后的二进制图像,使用 DipLib(PyDIP 变体)来执行此操作。
问题
好吧,在我个人看来,这看起来很棒。下一个问题是我正在尝试计算二进制图像中灯丝的顶部边缘和底部边缘之间的距离。使用 OpenCV 非常简单,但是由于 DipLib 的 PyDIP 变体功能有限,我遇到了很多麻烦。
潜在解决方案
从逻辑上讲,我认为我可以只扫描像素列并查找像素从 0 变为 255 的第一行,反之亦然。然后我可以取这些值,以某种方式创建一条最佳拟合线,然后计算它们之间的距离。不幸的是,我正在努力解决这个问题的第一部分。我希望有经验的人可以帮助我。
背景故事
我正在使用 DipLib,因为 OpenCV 非常适合检测,但不适用于量化。我在这里看到了其他示例,例如使用测量功能从类似设置中获取直径的示例。
我的代码:
给 Cris Luengo 的问题
首先,在这一行:
你怎么知道输出图像包含在索引 [0] 中,因为关于 PyDIP 的文档很少,我想知道如果我自己做的话,我可能会在哪里发现这一点。我可能只是没有找对地方。我意识到我这样做是在我的原始帖子中,但我肯定只是在一些示例代码中发现了这一点。
在这些行中的第二个:
据我了解,您正在找到两条线的主轴,它们只是特征向量。我在这里的经验非常有限——我是一名本科工程专业的学生,所以我从抽象的意义上理解特征向量,但我仍在学习它们的用途。我不太明白的是,这条线msr[1]['GreyMajorAxes'])[0:2]
只返回两个值,这只会定义一个点。如果它只是一个点,这如何定义与检测到的线垂直的线?第一个点引用为(0,0)还是图像的中心或其他什么?此外,如果您有任何相关资源可以阅读有关在图像处理中使用特征值的信息,我很想再深入一点。谢谢!
第三
正如您设置的那样,如果我理解正确,mask[0]
包含顶线并mask[1]
包含底线。因此,如果我想考虑灯丝的弯曲,我可以采用这两个矩阵并为每个正确的得到最佳拟合线?目前我只是稍微减少了我的捕获区域,主要是不需要担心任何弯曲,但这不是一个完美的解决方案 - 特别是如果灯丝下垂很多并且弯曲是不可避免的。让我知道你的想法,再次感谢你的时间。
c++ - DIPlib:使用 dip_vigra::DipToVigra 将 dip::Image 对象转换为 vigra::MultiArrayView 对象不起作用
当我尝试从dip::Image
对象转换为vigra::MultiArrayView
. 反之亦然,但当我尝试打电话dip_Vigra::DipToVigra
时,我得到:
错误:没有匹配函数调用 'DipToVigra(dip::Image&)
我应该如何进行这种转换?
如前所述,反之亦然dip_vigra::VigraToDip()
我正在使用 code::blocks 作为 IDE 来开发 opensuse。
c++ - 使用 DIPlib 检测圆圈
我正在尝试检测此图像中的圆圈:
然后使用 C++ 中的 DIPlib 在另一个空白图像中绘制这些圆圈。
按照 Cris Luengo 的建议,我更改了代码,现在看起来像这样:
我还更改了FindHoughCircles
函数的参数,因为图像中有两个同心圆,所以中心之间的距离必须为 0.0,但程序无法检测到它。这是结果: