如何使用 MATLAB 找到两个斑点(轮廓/闭合曲线)之间的最短路径?

2024-02-16

bwlabel可用于获取图像中断开连接的对象:

[L Ne] = bwlabel(image);   

如何计算两条不连通的闭合曲线之间的最短路径?

有实际的(非理论的)解决方案吗?


建议1

尝试提取要连接的对象的周边像素的坐标,并将它们用作图形中的节点。然后使用A*算法 http://en.wikipedia.org/wiki/A*找到集合之间每对之间的最短路径。这使用 A* 有效地解决了全对问题,但将其限制为感兴趣的节点(从一个对象中的节点到另一对象的路径)。

建议2(更简单)

另一个想法(未经测试)是计算每个斑点的质心之间的最短路径(regionprops 可用于计算质心)并查看哪个周边像素与该路径相交。当然,如果您的质心位于斑点内,这可能会起作用,但对于非凸斑点,事情会变得混乱。这将算法的复杂性降低到斑点的数量,而不是周边像素的数量(可能很大)。

另外,如果建议2适合你,你可以使用弗洛伊德·沃歇尔 http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm计算图像中所有斑点之间的最短路径。

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

如何使用 MATLAB 找到两个斑点(轮廓/闭合曲线)之间的最短路径? 的相关文章

  • Prim 的迷宫生成算法:获取相邻单元格

    我基于 Prim 算法编写了一个迷宫生成器程序 该算法是 Prim 算法的随机版本 从充满墙壁的网格开始 选择一个单元格 将其标记为迷宫的一部分 将单元格的墙壁添加到墙壁列表中 While there are walls in the li
  • 如何使用网格分割图像并保留透明度边界框

    我有一些 png 图像 我想将其分成几个部分 例如按网格或大小 但每个部分应具有与原始图像相同的边界框 透明度 Example 将图像分成两部分 原来的 200 89 Output 部分 1 png 200 89 第2部分 png 200
  • 归并排序中的递归:两次递归调用

    private void mergesort int low int high line 1 if low lt high line 2 int middle low high 2 line 3 mergesort low middle l
  • 在 Matlab 中保存 Kinect 深度图像?

    通过使用 Kinect 我可以获得深度图像 其中每个深度图像像素存储相机和物体之间的距离 以毫米为单位 现在我想保存它们以便以后使用 最好的推荐是什么 我正在考虑将深度图像保存为图像 jpg png等 然而 该值通常是从50毫米到10000
  • 如何计算排列? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个关于 Java 排列的问题 Suppose I have five different elements in an arra
  • MATLAB:将当前文件夹设置为脚本位置

    我在不同的文件夹中有一些脚本和数据 我使用addpath和相对路径经常 我的问题是 只有当我的当前文件夹是我执行的脚本所在的位置时 这才有效 例如 如果我执行添加路径 X 的脚本 A 然后执行位于路径 X 中的脚本 B 则 Matlab 不
  • 我正在尝试寻找“调酒师算法”

    我正在解决旧编程竞赛中的一些示例问题 在这个问题中 我们输入了我们有多少调酒师以及他们知道哪种配方 每杯鸡尾酒的制作时间为 1 分钟 我们需要计算是否可以在 5 分钟内使用所有调酒师完成订单 解决这个问题的关键是尽可能高效地分配鸡尾酒 这就
  • 生产代码中的 LRU 实现

    我有一些 C 代码 需要使用 LRU 技术实现缓存替换 目前我知道两种实现LRU缓存替换的方法 每次访问缓存数据时使用时间戳 最后比较替换时的时间戳 使用缓存项的堆栈 如果最近访问过它们 则将它们移动到顶部 因此最后底部将包含 LRU 候选
  • 应用对数来导航树

    我曾经知道一种使用对数从树的一片叶子移动到树的下一个 有序 叶子的方法 我认为它涉及获取 当前 叶子的位置值 排名 并将其用作从根向下到新目标叶子的新遍历的种子 一直使用对数函数测试来确定是否沿着右或左节点向下到达叶子 我已经不记得如何运用
  • MATLAB 变量传递和惰性赋值

    我知道在 Matlab 中 当将新变量分配给现有变量时 会进行 惰性 评估 例如 array1 ones 1 1e8 array2 array1 的价值array1不会被复制到array2除非元素array2被修改 由此我推测Matlab中
  • 2D 网格的纹理贴图

    我有一组点 x y meshgrid 1 N 1 M 在常规二维上定义 N x M网格 我还有另一组要点 u v 这是原始网格的一些变形 即 u v f x y 但是我没有实际的f导致变形 如何将纹理映射到由定义的 变形 网格u v 即 给
  • 用于计算有向图上非循环路径数量的快速算法

    简而言之 我需要一个fast计算简单有向图中有多少条非循环路径的算法 By simple我的意思是没有自环或多重边的图 Apath可以从任何节点开始 并且必须在没有传出边的节点上结束 一条路径是acyclic如果没有边出现两次 我的图 经验
  • 氡变换线检测

    我正在尝试检测灰度图像中的线条 为此 我在 MATLAB 中使用 Radon 变换 我的 m 文件的示例如下所示 我可以使用此代码检测多行 我还使用线条的移位和旋转属性来绘制线条 但是 我不明白在获取rho和theta值后如何获取检测线的起
  • 2D形状识别与解析算法

    我正在寻找一种算法 用于从给定的一组 x y 点检测简单形状 如矩形 三角形 正方形和圆形 我还在寻找一种方法 一旦检测到 将路径转换为更干净的形状 我已经查遍了互联网 但没有找到任何 简单 的方法 几乎所有这些对于我的简单实现来说都是高级
  • 如何检测图像是否像素化

    之前有人在 SO 上提出过这样的问题 在Python中检测像素化图像 https stackoverflow com questions 12942365 detecting a pixelated image in python还有关于q
  • MATLAB问题:在图块中引用变量的值[重复]

    这个问题在这里已经有答案了 可能的重复 matlab 绘图标题中的变量 https stackoverflow com questions 5629458 matlab variable in plot title 我想在图中引用 m 文件
  • 关于逻辑/算法的想法以及如何防止线程写入 Sql Server 中的竞争

    我有以下逻辑 public void InQueueTable DataTable Table int incomingRows Table Rows Count if incomingRows gt RowsThreshold async
  • Matlab strcat 不返回字符串?

    imgstr 无法识别 strcat 的输出字符串 homedir C Users images for img 01 bmp 02 bmp 03 bmp imgstr strcat homedir img I imread imgstr
  • 寻找局部最小值

    下面的代码正确地找到了数组的局部最大值 但未能找到局部最小值 我已经进行了网络搜索 以找到找到最小值的最佳方法 并且根据这些搜索 我认为我正在使用下面的正确方法 但是 在几天的时间里多次检查每一行之后 下面的代码中有一些我仍然没有看到的错误
  • 寻找簇的中心

    我有以下问题 进行抽象以找出关键问题 我有 10 个点 每个点与其他点有一定距离 我想要 能够找到簇的中心 即与其他点的成对距离最小的点 令 p j p k 表示点 j 和 k 之间的成对距离p i 是簇的中心点 iff p i s t m

随机推荐

  • 段落“

    ”填充未应用

    以下三段代码的行为完全相同 p A paragraph of text here p p A paragraph of text here p p style padding 0 15 0 15 A paragraph of text he
  • MeteorJS模板不显示数据,不出现

    我最初以为我的集合没有接收数据 但事实证明我只是在查询中出现了拼写错误 但我的数据仍然没有出现在屏幕上 HTML 模板非常基本 如下所示
  • 新 Rails 3 项目中未定义的方法 `use_transactional_fixtures='

    当我尝试使用 MongoDB 和 Mongoid 在 Rails3 项目中运行测试时遇到错误 undefined method use transactional fixtures for ActiveSupport TestCase Cl
  • 创建实现特定接口的 ATL COM 对象

    我需要实现一个简单的 ATL COM 对象 该对象实现一个特定的接口 我已为其提供了 tlb 文件和 idl 文件 该接口非常简单 仅包含一个方法 我过去创建过许多 ATL 对象 但从未创建过必须实现特定接口的对象 我需要什么才能实现这一目
  • 跟踪App Store下载源

    有没有办法追踪App Store的下载源 例如 如果我在应用程序的 Facebook 页面上发布链接 我可以知道有多少人通过该链接下载了我的应用程序吗 感谢您的回答 是的 您可以使用 Apple App Analytics 的活动链接来跟踪
  • 如何将 UILongPressGestureRecognizer 添加到 UITextField?

    我正在尝试添加UILongPressGestureRecognizer到页面上的 UITextField 之一 但长按 UiTextField 时不会调用选择器方法 我将它添加到 UItextField 但当我长按 TextField 但在
  • 如何在多个游戏对象上统一使用相同的脚本?

    我有一个脚本CoinFill这会形成一个径向进度条 当 FillAmount 1 时 我想将该特定图像重置为零 我希望能够将其用于多个GameObjects 问题是当第一次FillAmount 1 速度较快的便士 可以点击镍币 可能是50
  • std::atomic 的正确用法

    这是使用 std atomic 的正确方法吗 我有一个Logger在命名空间级别声明称为LOGGER class Logger public Logger Logger bool Init std wstring logFileLocati
  • Chrome 开发者工具:I CSS 覆盖未使用的字节

    我正在尝试从网页中删除未使用的 CSS 在 Chrome 开发者工具中 gt 单击垂直三个点 gt 更多工具 gt 覆盖范围 单击任意 CSS 我们看到一份报告 其中红色表示未使用的 CSS 绿色表示已使用的 CSS 有没有一种方法可以根据
  • 向 UIAppFonts 添加多种字体会相互覆盖

    我正在尝试通过以下方式向 iPhone 应用程序添加一些自定义字体UIAppFonts in Info plist 我可以通过代码访问这两个字体名称 即MyFont Bold and MyFont Medium 我的问题是最后一个字体UIA
  • 如何验证nestjs中的查询参数

    哟 我有 Nestjs 的商店应用程序 我需要验证 mongo id 这是通过查询传递的 问题是我也传递和搜索查询 我编写了验证所有值的管道 并排除了此搜索查询 Injectable export class ValidationObjec
  • Ada 通用平均函数

    我有一个函数可以对记录数组中的某个数值进行平均 该值可以是自然类型增量 也可以是枚举类型增量 我让它正确地总结了这些值 但我的问题是 如何将数组的长度转换为通用类型 以便它可以除以整数和增量类型数字 在记录数组上使用 长度 属性 这样做的优
  • Android 上的 Google 地图无法加载

    我的应用程序中有一个可用的 Google 地图 但我必须开始使用另一台计算机 所以我用 Android Studio 等在这台新电脑上下载了我的源代码 现在 我无法再让 Android 地图显示了 我在 Google Console 中从我
  • Hibernate 从多个表中计数

    我想编写一个 HQL 查询 从不同列的 4 个表中返回特定计数 我有4张桌子 Tab1 Tab2 Tab3 and Tab4 我想得到这样的东西 Tab1 Tab2 Tab3 Tab4 1 13 7 0 所有记录在Tab 有自己的id an
  • 如何在用 C 编写的类似 FORTH 的语言解释器中实现 LOOP

    我正在用 C 编写一种简单的基于堆栈的语言 并且想知道应该如何实现某种类型的循环结构和 或前瞻符号 由于此页面的代码有点长 超过 200 行 所以我将其放入GitHub 存储库 https github com tekknolagi Sta
  • 如何在 C# 中混合两个视频流?

    过去 我使用 Managed Direct X 和 DirectShow Net 将视频播放到简单网格上的纹理 然后 我使用相同的技术将多个视频源组合成单个纹理 并使用通过纹理公开的各种功能将这些流混合在一起 这是 2 年前的一个非常有趣的
  • Java 中 int 与 float 算术效率

    我正在编写一个应用程序 它使用 Dijkstra 算法来查找图中的最小路径 图中节点和边的权重为float数字 因此该算法对浮点数进行许多算术运算 如果我将所有重量转换为int是 Java中int算术运算比float算术运算更快吗 我尝试编
  • 用于添加应用程序的 Windows Azure Graph API

    我正在尝试使用 Windows Azure Active Directory WAAD 图形 API 将应用程序添加到我的 WAAD 租户 我已成功使用 API 创建用户 使用 API 添加应用程序时 我收到授权异常 Authorizati
  • 基于视图的 NSOutlineView 标题单元格字体问题

    我目前正在尝试在我的 Cocoa 应用程序中使用新的基于视图的 NSOutlineView 由于我没有使用绑定 因此我在控制器中实现了所有必需的委托和数据源方法 在界面生成器中 我添加了一个 NSOutlineView 其突出显示设置为来源
  • 如何使用 MATLAB 找到两个斑点(轮廓/闭合曲线)之间的最短路径?

    bwlabel可用于获取图像中断开连接的对象 L Ne bwlabel image 如何计算两条不连通的闭合曲线之间的最短路径 有实际的 非理论的 解决方案吗 建议1 尝试提取要连接的对象的周边像素的坐标 并将它们用作图形中的节点 然后使用