zoukankan      html  css  js  c++  java
  • 图像分割中目标编号的问题(已经解决,谢谢园友提供思路)

    本文主题

          由于研究方向是计算机图像处理方面的内容,现在正在做一个关于图像分割方面的研究。从原始图片中将目标图像分割出来的工作基本上已经完成,现在做的是对目标图像进行编号,我使用的是四临域的标号算法,该算法是自己实现的,但是现在存在一个问题是:目标图像计数不能覆盖全部目标图像,有一部分被漏掉了。现在把实验结果和算法实现的思路发布出来,如果那位做这个方面或者有好的想法,请留言探讨。

    原始图像与分割后的图像

    这是用分割算法从原始图像得到的目标图像,如下:

    image

    分割后的图像(黑色为目标图像,白色为背景):

    image

    目标计数算法实现思路(目前思路,计数不准确)

    1.算法采用四邻域判定法。

    对于图像中每一个像素值为目标像素值的点,采用如下的判别方法:

          分别遍历该点的左边点和上边点,如果左边和上边点均为背景点,则标识为新的编号,如果左边点和上边点其中有一个点的像素值不是背景点,则使用此点的编号作为当前点的编号,如果左边点和上边点均不为背景点,则按照两个点中最小的编号对左边点、上边点和当前点进行编号。

    2.编号修订

         对于图像中的每一个目标点采用如下算法修订:

        遍历目标点的上、下、左、右四个邻接点,如果四个邻接点都为背景点,则该点的编号不需要修订。如果四点中至少有一个点为目标点,则对这些目标点和当前点进行排序,找到其中最小的编号,并将所有的目标点的编号修正为该最小的编号。

    3.计数过程

      遍历图像中的每一个目标点,在这里要维护一个编号的数组A,如果遇到一个编号在A中不存在,则认为是还没有进行文字编号的,对图像上该点进行写编号操作,并将该点加入数组。

    完成后的效果

    image

    说明:上图中大多数的目标已经被编号,但是还有一部分没有被编号,现在的问题是搞不清楚在那个环节出了问题,是算法的问题?还是编号判定方面的问题?现在正在苦闷中。。。。

    问题所在

     上面的问题关键出在第三部分,在计数过程中出现等价类,导致计数结果不准确。

     关于等价类百度百科里面给出的解释是:

    等价类(Equivalence class)

      在数学中,给定一个集合 X 和在 X 上的一个等价关系 ~,则 X 中的一个元素 a 的等价类是在 X 中等价于 a 的所有元素的子集: a = { X ; X ~ a }

     详细的解释请看百度百科中关于等价类的解释。

    加入处理等价类后的处理效果

     加入等价类处理后的编号

     感谢

          在这里感谢园友@xiaotie,他给我提供了解思路,还有感谢在我的博客留言的各位园友,他们提供了不一样的思路,使我可以学习了不一样的算法思想。 


    如果觉得本文好的话就分享给你的朋友把!
  • 相关阅读:
    explain详解与索引最佳实践
    MySQL的配置文件
    MySQL索引数据结构红黑树,Hash,B+树详解
    elasticsearch 进阶
    淘宝服务端高并发分布式架构演进之路
    http请求的header的一个小细节
    一次解决idea maven settings.xml文件不生效
    SpringBoot dev-tools vjtools dozer热启动类加载器不相同问题
    spring boot eclipse 远程调试
    vscode 同步配置
  • 原文地址:https://www.cnblogs.com/rushoooooo/p/2160371.html
Copyright © 2011-2022 走看看