- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用图像处理工具箱在 MATLAB 中编写一段代码,我在其中使用 Skel=bwmorph(BM,'skel') 来获取河流的骨架。我想使用 BP=bwmorph(Skel,'branchpoints') 来获取汇流点和支流点。每当骨架看起来像我在 BP 中得到很多误报
oQo
Q
o
它还将 Q 像素标记为分支点,以及实际的、预期的分支点。有很多这样的误报。
我注意到真正的分支点在 BP 中作为一个孤立的像素出现,而错误的分支点总是成对形成。
谁能告诉我分支点算法是如何找到点的?如果我知道这一点,我就可以确信存在误报成对而真阳性单独存在的实际原因,而不是幸运的巧合。
我感觉它着眼于像素周围的 8 连通性,但我认为这还不是全部。
为了澄清,我标记了输出的裁剪图像。它给出的积极因素以红色显示。可以看出,这些像素中只有一个实际上是分支点。我想知道该算法是如何工作的,以便我可以给出一个合乎逻辑的理由来解释为什么误报成对出现(如果它们确实成对出现的话)。
最佳答案
你的像素不是最小(8-)连接,尝试使用
Thin = bwmorph(Skel,'thin');
BP = bwmorph(Thin,'branchpoints');
去除不需要的像素。 (您也可以使用 thin 而不是 skel)。
我认为如果至少 3 个像素(不包括中心)为“1”,则分支点的基本算法会查看 3,3 个邻域像素。
关于matlab - bwmorph 分支点如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10701777/
我正在使用图像处理工具箱在 MATLAB 中编写一段代码,我在其中使用 Skel=bwmorph(BM,'skel') 来获取河流的骨架。我想使用 BP=bwmorph(Skel,'branchpoi
我仍在用 Python 编写指纹图像预处理器。我在 MATLAB 中看到有一个特殊的函数可以去除 H 断点和毛刺: bwmorph(a , 'hbreak') bwmorph(a , 'spur')
我正在尝试在 Python 中实现 Matlab 函数 bwmorph(bw,'remove')。如果某个像素的所有 4 个相连的相邻像素均为 1,则此函数通过将像素设置为 0 来删除内部像素。生成的
我正在将一个 matlab 图像处理脚本移植到 python/skimage,但没能找到 Matlab 的 bwmorph函数,特别是 skimage 中的 'spur' 操作。 matlab 文档对
我找到了一个用于 C++ 的 MATLAB bwmorph 函数版本,带有选项 'endpoints' here How to implement an function equivalent to
我想根据物体的形态骨架创建物体的图像。 MATLAB 或 C、C++ 代码中是否有任何函数?提前致谢。 原始图像及其骨架(使用 bwmorph(image,'skel',Inf) 获得): 最佳答案
我是一名优秀的程序员,十分优秀!