概要:

  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基础知识学些到这边告一段落了。
接下去需要解决的问题:怎样把学到的东西运用到图像处理中去解决缺陷检测的问题。

图像处理笔记(二十一):halcon在图像处理中的运用的更多相关文章

  1. python3.4学习笔记(二十一) python实现指定字符串补全空格、前面填充0的方法

    python3.4学习笔记(二十一) python实现指定字符串补全空格.前面填充0的方法 Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0.zfill()方法语法:s ...

  2. (C/C++学习笔记) 二十一. 异常处理

    二十一. 异常处理 ● 异常的概念 程序的错误通常包括:语法错误.逻辑错误.运行异常. 语法错误指书写的程序语句不合乎编译器的语法规则,这种错误在编译.连接时由编译器指出. 逻辑错误是指程序能顺利运行 ...

  3. 过滤器(web基础学习笔记二十一)

    一.过滤器简介 二.在Eclipse中创建过滤器 三.使用过滤器设置全部web字符编码 public void doFilter(ServletRequest request, ServletResp ...

  4. Android笔记(二十一) Android中的Adapter

    Android中有一些View是包含多个元素的,例如ListView,GridView等,为了给View的每一个元素都设置数据,就需要Adapter了. 常用的Adapter包括ArrayAdapte ...

  5. C#线程学习笔记二:线程池中的工作者线程

    本笔记摘抄自:https://www.cnblogs.com/zhili/archive/2012/07/18/ThreadPool.html,记录一下学习过程以备后续查用. 一.线程池基础 首先,创 ...

  6. Java基础学习笔记二十一 多线程

    多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念.进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线 ...

  7. Android Multimedia框架总结(二十一)MediaCodec中创建到start过程(到jni部分)

    转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/53386117 我最近正在参加CS ...

  8. [ExtJS5学习笔记]第二十一节 Extjs5中使用config配置给ext.widget或者create方法传递参数

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/39252805 官方例子:http://docs.sencha.com/extjs/5. ...

  9. 图像处理(二十一)基于数据驱动的人脸卡通动画生成-Siggraph Asia 2014

    http://blog.csdn.net/garfielder007/article/details/50582018 在现实生活中,我们经常会去评价一个人,长得是否漂亮.是不是帅哥美女,然而如何用五 ...

随机推荐

  1. Java 基础篇之类与对象

    类与对象 类.对象和引用的关系 类和对象的关系 类是对象的模版,对象是类的一个实例,一个类可以有很多对象 一个Java程序中类名相同的类只能有一个,也就是类型不会重名 一个对象只能根据一个类来创建 引 ...

  2. hbase、pig、hive配置与应用

    ------------------HBASE---------- [root@iClient~]#sudo yum install hbase #iClient安装Hbase客户端 [root@cM ...

  3. JVM 调优 - jhat

    Java命令学习系列(五)——jhat 2016-01-21 分类:Java 阅读(8708) 评论(3) 阿里大牛珍藏架构资料,点击链接免费获取 jhat(Java Heap Analysis To ...

  4. .net 更新access数据库 影响的行数为0

    在更新Access数据库的时候,明明传入的数据及参数类型都正确,但是一直更新不了,查看影响的行数一直为0 此原因为 C#操作Access数据库的时候更新的参数和条件参数要按照更新语句中的顺序进行设置, ...

  5. 【ASP.NET基础--MVC】MVC视图基础语法学习

    初步接触.net MVC的视图语法,很多东西都不太熟悉,感觉跟之前的aspx以及html都有一些区别,最近看别人的代码,一边看一边研究,现把学到的东西在这里记录一下,以便日后翻阅. 第一部分:基础知识 ...

  6. POJ 2386——Lake Counting(DFS)

    链接:http://poj.org/problem?id=2386 题解 #include<cstdio> #include<stack> using namespace st ...

  7. 一步一步带你在VS 2017中配置OpenGL

    在VS2017环境中配置OpenGL,我们分三步:配置GLFW.配置GLAD.导出项目模板. 配置GLFW 1.首先下载GLFW,点击这里,进入Github下载. 或者 点击这里从百度云下载,提取码为 ...

  8. vue.js 实战 todo list

    vue.js 起源 vue.js 的作者是尤雨溪,是一名中国人,之前在谷歌工作,现在在全职维护 vue 项目. vue.js 是 2014 年推出来的.现在已经更新到 2.x 版本,3.0 版本会在 ...

  9. C#中winform中panel重叠无法显示问题

    C#中winform中panel重叠无法显示问题: 最近开发一个项目有个需求是需要多个模式来回切换的,本来考虑使用多个窗口来实现这个功能,但是这样做浪费资源,而且工作量大,所以想到使用panel控件来 ...

  10. SDI接口基于FPGA GTP实现

    SDI采集和显示,基于xilinx 7系列器件进行实现,注意事项有如下几点: 1,如果多路SDI共用一个GTP Quad,或是SDI和PCIE在一个GTP Quad,时钟资源应该进行共享,既GTP c ...