zoukankan      html  css  js  c++  java
  • 图像处理笔记(二十一):halcon在图像处理中的运用

    概要:

    1. 分水岭算法做图像分割
    2. 二维码识别

    稍后将其他几篇笔记全都补充上概要方便查询。

    分水岭算法做图像分割

    使用距离变换结合分水岭算法实现图像分割,可以用来分割仅通过阈值分割还是有边缘连接在一起的情况。
    步骤:

    1. 通过threshold 及相关操作找出需要分割的图像区域;

    2. 通过distance_transform 得出距离图片,这里的距离图片算的距离是针对上面已经圈出来的区域计算的;

    3. 将灰度值范围通过scale_image_max 扩充后灰度反转;

    4. 通过watersheds_threshold 做区域分割,这里的分割是针对整张图片做分割的;

    5. 与目标图像区域做交集,得出分割后的目标图像。

    6. distance_transform(Region, DistanceImage, Metric, Foreground, Width, Height)
      计算区域内每一个点到区域边界的距离得出一张距离图片,距离边界越远的灰度值越大,中心灰度值最大,边界为0,如图:

    7. watersheds_threshold(Image, Basins, Threshold)
      分水岭算法做区域分割
      分水岭算法:灰度值代表海拔高度,高灰度代表山脉,低灰度代表盆地,每一个局部极小值及影响区域代表集水盆,集水盆边界形成分水岭。

    图中分成的一个个小块就是在做分水岭分割之后得到的,一个个的小圆就是在与原区域做交集之后得到的。

    根据之前学到的,对于这样的图片区域分割,有时候根据情况也能使用膨胀腐蚀之类的方法分割出来。

    # 二维码识别
    做一个小功能,halcon和C#混和编程,实时做二维码识别。最简单的做法是在halcon中做了之后导出成cs文件,将文件中的有效部分提取出来放在代码中。过程略。
    halcon中实现的要点:
    1. 摄像头实时抓拍
    2. 使用 `create_data_code_2d_model` 生成二维条形码模型,这里需要注意的是必须提前知道我们需要解码的二维码的编码模式;
    3. 使用 `find_data_code_2d` 来找二维码并解析。
    
    ~~~~~~~~~~~~~~~~~~~~~~~  分割线 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    halcon基础知识学些到这边告一段落了。
    接下去需要解决的问题:怎样把学到的东西运用到图像处理中去解决缺陷检测的问题。
  • 相关阅读:
    NYOJ127 星际之门(一)【定理】
    JAVAWEB开发之JSTL标签库的使用、 自己定义EL函数、自己定义标签(带属性的、带标签体的)
    如何写一个不可变类
    保护性拷贝
    猴子搬香蕉问题
    阿里云服务器安装redis启动失败问题排查
    oauth2测试
    远程连接云服务器上的mysql失败问题解决
    SQLServer中将yyyy:MM:dd HH:mm:ss.sss转为yyyyMMddHHmmss
    Centos8 安装 MySQL
  • 原文地址:https://www.cnblogs.com/yutou2016/p/11202791.html
Copyright © 2011-2022 走看看