二值化图像中的单独交叉线段

2024-01-04

我有一些图像处理,允许我提取包含厚片段的二进制图像,并且我面临着这些片段可能相互交叉的问题。因此,我需要找到一种有效的方法来分离它们,我必须在 C++ 中实现它,这样任何基于 OpenCV 的东西都会有所帮助。
这是一个示例输入图像,两个“斑点”都需要分为 3 个不同的部分。

到目前为止,我已经尝试了两种想法,但我一直坚持这两种想法,这就是为什么我在这里询问是否有任何“最先进”的解决方案来解决这个看似简单的问题。

  1. 我的第一个想法是计算斑点的骨架,找到交点。这部分很容易。然后我计划从一个终点开始,遍历该路段,直到到达一个十字路口并“穿过十字路口”。如果你看一下底部的斑点,即使预期是“T”形状,骨架也会产生奇怪的“Y”形状,从而无法决定如何穿过交叉点。

  2. 第二个想法是计算距离变换,然后计算梯度方向,然后我仍然需要一种方法来合并具有相似方向的像素以及一种处理端点/交叉点的方法。


使用骨架是个好主意,因为这将使处理独立于笔画宽度。在连接点附近,骨架受到扰动,导致方向局部改变。

您可以考虑一个骨架并在连接点处分割(连接到两条以上的独立曲线)。您将构建一个图形,其中边是连接点之间的弧。确保保持连通性。

然后,您可以通过查找距离交汇点一倍和两倍厚度的点来估计圆弧的方向。您将对边缘进行配对,以使(绿色)点形成最佳对齐。您可以以贪婪的方式执行此操作(首先最适合),直到耗尽所有可能的匹配或直到角度被认为太大。

广角交叉点具有挑战性,因为它们将形成具有两个遥远交叉点的骨架。将一条曲线与另一条曲线匹配时,您可能会考虑与远处的曲线进行匹配,前提是两者之间有一条路径,以便它适合与笔划一样大的条纹内。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二值化图像中的单独交叉线段 的相关文章

  • 无法加载 OpenCL 运行时 - OpenCV3 Python

    我有一个程序 在 Windows 上使用 OpenCV 2 4 9 python 中的前景检测来处理视频 并使用 py2exe 打包为 Windows 可执行文件 我最近将 opencv 更新为 opencv3 并重新打包了我的程序 当我在
  • 使用 ffmpegframerecorder android 保存视频

    我正在尝试保存该视频并收到此错误 我添加了两个jar文件1 javacv 2 javacpp and for 相机预览我用过opencv 我在这里添加代码 公共无效运行 while true Bitmap bmp null synchron
  • 如何在不使用OpenCV Python中的split函数的情况下获取图像的单一颜色通道?

    我想强调一下用于实时手势识别的手 我观察到 使用 cv2 imsplit 函数 手的图像对于不同的颜色通道会以不同的方式突出显示 但这种分割功能在时间上是非常昂贵的 我无法使用 Numpy 索引执行相同的功能 如官方网站 https doc
  • 如何创建关键点来计算 SIFT?

    我正在使用 OpenCV Python 我已经使用确定角点cv2 cornerHarris 输出的类型为dst 我需要计算角点的 SIFT 特征 输入到sift compute 必须是以下类型KeyPoint 我不知道如何使用cv2 Key
  • OpenCv SVM 输出文件格式

    我正在实现我自己的 SVM 而不是使用 OpenCV 的 svm 类 如果我愿意 我希望我的 SVM 用于保存其输出的 XML 文件将来可以由 OpenCV 的 SVM 加载和使用 为此我需要做什么 简而言之 OpenCV 使用什么格式来存
  • 找不到 tbb.dll

    我在 opencv 2 3 中使用 cvCanny 函数 它编译得很好 但在执行时出现错误 提示 tbb dll 未找到 这个dll有什么用处 在哪里可以找到这个 thanks 它是英特尔的一部分线程构建块 http threadingbu
  • 如何使用Google Chrome缩略图预览服务?

    有人知道如何使用 google chrome 服务来生成网站缩略图 新标签上浏览次数最多的网站 有想法做类似的事情吗 These 浏览 chrome 源代码我找不到任何有趣的东西 你呢 来源在这里 http src chromium org
  • Android:如何加密和解密资源文件并在App中使用

    我需要以加密格式在我的应用程序中存储资源文件 文本文档 图像 音乐等 并且在运行时我需要解密文件并使用它 提前致谢 那我怎样才能实现这个目标呢 如果您不希望用户访问数据 请勿将其存储在用户的手机上 足够感兴趣的用户可以访问其设备上的任何内容
  • C# - 将 WPF Image.source 转换为 System.Drawing.Bitmap

    我发现很多人都在转换BitmapSource to a Bitmap 但是关于ImageSource to Bitmap 我正在制作一个成像程序 我需要从显示的图像中提取位图Image元素 有谁知道如何做到这一点 EDIT 1 这是一个用于
  • 使用 jQuery 异步加载图像

    我想使用 jQuery 在我的页面上异步加载外部图像我尝试过以下方法 ajax url http somedomain com image jpg timeout 5000 success function error function r
  • 如何在Java中裁剪图像的某些区域?

    我正在尝试执行以下代码 private void crop HttpServletRequest request HttpServletResponse response int x 100 int y 100 int w 3264 int
  • 图片框图像缩放

    我在 C 中遇到图像缩放问题 我有一个给定尺寸的图片框 例如宽度 800 像素 高度 600 像素 我正在将不同的图像加载到该图片框中 小图像 400x400 和大图像 800 x 600 如果我的图像不适合盒子 它们就会被调整大小 但他们
  • 将黑白图像完全转换为一组线条(也称为仅使用线条进行矢量化)

    我有许多黑白图像 想将它们转换为一组线条 这样我就可以完全或至少接近完全地从线条重建原始图像 换句话说 我试图将图像矢量化为一组线条 我已经看过了霍夫线变换 https docs opencv org2 4 modules imgproc
  • 在java中缩放多页TIFF图像

    我想更改多页 TIFF 图像的高度 因此我使用下面的代码片段来缩放它 但它只返回 tiff 文件的第一页 我猜它会将其转换为 JPEG 图像 如何保留文件的所有页面 public static byte scale byte fileDat
  • 我想知道像tineye.com这样的反向图像搜索服务是如何工作的......?

    像 TinEye 这样的反向图像搜索引擎如何工作 我的意思是进行图像搜索需要哪些参数 不知道 TinEye 是否使用这个 但是SURF http en wikipedia org wiki SURF是用于此目的的常用算法 在这里您可以看到一
  • 如何从图像中去除颗粒状细节[重复]

    这个问题在这里已经有答案了 我用过adapthisteq以提高前景物体的可见度 然而 这似乎产生了颗粒状的噪点细节 如何从图像中去除这些颗粒状细节 我尝试过高斯模糊imgaussfilt虽然它确实消除了一些颗粒状细节 但图像中细胞的形状变得
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 需要使用 php 从远程服务器下载与 $_FILES 相同的内容[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 好的 我有处理图像上传的 php 代
  • 使用 OpenCV 进行三角形检测

    我有以下示例图像 我想用白色填充角落里的这些三角形 我如何使用 OpenCV 检测它们 当然 在这个特定的示例中 我可以只依靠渐变或亮度 然而 未来图像的形状不会如此完美 所以我正在考虑一些形状检测 我听说形状通常可以通过例如霍夫变换来检测
  • 通过 PhoneGap (iOS) 上传后图像横向/上下颠倒

    不知道是什么原因造成的 但是当我通过以下方式将一些图像上传到远程服务器时FileTransfer http docs phonegap com en 1 0 0 phonegap file file md html FileTransfer

随机推荐