机器视觉应用工程开发思路

机器视觉应用工程主要可划分为两大部分,硬件部分和软件部分。

1.硬件部分,硬件的选型至关重要,决定了后续工作是否可以正常开展,其中关键硬件部分包括:光源,相机以及镜头。

2.软件部分,目前业内商业库主要有Halcon,康耐视,DALSA,evision,NI等,开源库有OpenCV.其中NI的labview+vision模块。

机器视觉应用工程大致开发思路:

      一、获取图像       

      图像采集可以来源多个途径,用算子read_image去读取图像文件;用相机助手,可读取单个或多个相机视频;使用读文件或读取路径(可用tuple实现读取多个图像文件)助手。

其中,使用相机助手获取相机图像最为常用。

Halcon通过ImageAcquisition Interfaces对各种图像采集卡及各种工业相机进行支持。其中包括:模拟视频信号,数字视频信号Camera Link,数字视频信号IEEE 1394,数字视频信号USB2.0,数字视频信号Gigabit Ethernet等。

Halcon通过统一的接口封装上述不同相机的image acquisition interfaces,从而达到算子统一化。不同的相机只需更改几个参数就可变更使用。

Halcon图像获取的思路:1、打开设备,获得该设备的句柄。2、调用采集算子,获取图像。

      二、图像颜色空间变换

      颜色的定义,颜色是光作用于人眼引起除形象以外的视觉特性。计算机常用的颜色空间主要有两种,RGB和HSV。RGB颜色空间,主要是依据人眼的生理结构,人眼有三类视锥体细胞,分别是红,绿,蓝。而HSV颜色空间,是基于颜色本身的属性,H代表色相,主要由波长决定;S代表纯度,取决于峰值能量与其他频段能量白色光的比例;V代表亮度。H与S属性,常常会混为一谈,是为颜色的色度特性。

因此,在一副彩色图像中,倘若在RGB颜色空间中无法寻得合适阈值进行分割时,常常可以将RGB颜色空间转换到HSV颜色空间,去观察图像的色相以及饱和度属性。

     三、图像预处理

     图像预处理,即对采集的图像不是很满意,以致于会影响后续图像处理的结果,因此必须对采集的图像进行预处理。图像预处理,并未对图像做出实质性的提取和改变,主要是以滤波、增强对比度等改善图像质量为目的。

图像预处理,主要包括了四个部分,图像的点运算(即操作直方图),图像的几何变换、图像的增强处理以及图像的正交变换

图像的点运算,主要用于改变一幅图像的灰度分布范围;图像的几何变换,主要包括图像的平移变换、镜像变换、图像的转置、缩放和旋转等内容;图像的增强处理,主要对图像的噪声过滤以及对比度增强,即平滑、锐化处理;图像的正交变换,主要包括傅里叶变换、哈达玛变换、离散余旋变换以及K-L变换等,将信号从空间域变换到空间频域,以便于更好的处理信号。

      四、区域及轮廓提取(提取ROI)

    区域以及轮廓的提取,即提取ROI,这一步是整个图像处理软件中的核心步骤。就我目前的知识水平大致可分为三个方法:Blob分析,模板匹配以及机器学习识别模式

Blob分析的基本思想,通过其灰度值的差别来识别图像中前景的像素。Blob分析三兄弟,图像分割,图像形态学处理,特征提取。

模板匹配,主要包括形状匹配以及灰度值匹配。关键步骤,创建模板;在图像中查找模板。

机器学习识别,基于多层感知的自我训练,通过监督学习,形成分类器。主要分为四步,创建trf训练文件(绑定字符图像与字符),创建神经分类器,训练分类器,将分类器保存为ocm文件(即可用于识别)。

       五、图像识别及诊断(或要进行相机标定)

Halcon学习笔记——机器视觉应用工程开发思路及相机标定的更多相关文章

  1. halcon学习笔记——机器视觉工程应用的开发思路【转】

    转自:http://www.cnblogs.com/hanzhaoxin/archive/2013/02/15/2912879.html 机器视觉工程应用主要可划分为硬件和软件两大部分. 硬件:工程应 ...

  2. AppleWatch___学习笔记(一)开发思路和框架

    一.开发须知 如果你没有开发过 iphone,直接来做watch,我建议你不要这么做,不是不可以,而是目前所有的第三方应用都必须基于iphone的扩展,原生的watch应用,苹果目前还没有开放给开发者 ...

  3. halcon机器视觉工程开发思路

    参考:halcon学习笔记——机器视觉工程应用的开发思路https://www.cnblogs.com/hanzhaoxin/archive/2013/02/15/2912879.html

  4. VSTO 学习笔记(十一)开发Excel 2010 64位自定义公式

    原文:VSTO 学习笔记(十一)开发Excel 2010 64位自定义公式 Excel包含很多公式,如数学.日期.文本.逻辑等公式,非常方便,可以灵活快捷的对数据进行处理,达到我们想要的效果.Exce ...

  5. Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建

    Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...

  6. springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定

    springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 标签: springmvc springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需 ...

  7. Android:日常学习笔记(8)———探究UI开发(5)

    Android:日常学习笔记(8)———探究UI开发(5) ListView控件的使用 ListView概述 A view that shows items in a vertically scrol ...

  8. Android:日常学习笔记(7)———探究UI开发(4)

    Android:日常学习笔记(7)———探究UI开发(4) UI概述  View 和 ViewGrou Android 应用中的所有用户界面元素都是使用 View 和 ViewGroup 对象构建而成 ...

  9. Android:日常学习笔记(8)———探究UI开发(3)

    Android:日常学习笔记(8)———探究UI开发(3) 详解四种基本布局 前言 布局定义用户界面的视觉结构,如Activity或应用小部件的 UI.您可以通过两种方式声明布局: 在 XML 中声明 ...

随机推荐

  1. selenium面试题

    selenium中如何判断元素是否存在? selenium中没有提供原生的方法判断元素是否存在,一般我们可以通过定位元素+异常捕获的方式判断. # 判断元素是否存在 try: dr.find_elem ...

  2. 洛谷P4494 [HAOI2018]反色游戏(tarjan)

    题面 传送门 题解 我们先来考虑一个联通块,这些关系显然可以写成一个异或方程组的形式,形如\(\oplus_{e\in edge_u}x_e=col_u\) 如果这个联通块的黑色点个数为奇数,那么显然 ...

  3. 1. UML统一建模语言

    (1)UML概述: 建模: 对现实系统进行适当的过滤, 用适当的表现规则描述出简洁的模型. 建模是一种深入解决问题的方法. UML: UML(United Modeling Language, 统一建 ...

  4. 开启HTML5之旅。。。

    学习大纲: 一.了解HTML 1.什么是HTML? HTML是用来描述网页的一种语言 HTML是一种超文本标记语言 Hyper Text Markap Language HTML不是一种编程语言,是一 ...

  5. 【Leetcode】Maximum Product Subarray

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  6. spring配置文件中导入约束的详细步骤

    这里先以<beans>元素为例: 首先在eclipse中引入相关约束: 点击OK后,这个约束就被引入到eclipse中了,这一步的意义在于:就算你处于脱机情况下(不能联网),也能给你提示. ...

  7. python大作业-图书管理系统

    #缺少循环执行和错误处理 #add()函数 添加了循环执行 #错误处理:regist()函数 登录和退出选择的时候添加了错误处理 import sys import importlib importl ...

  8. Restrictions.like() 模糊查询,以及使用DetachedCriteria查询的一般用法

    Restrictions.like() 模糊查询,以及使用DetachedCriteria查询的一般用法 2016-10-10 16:52:38                             ...

  9. 【字符串】【hash】【倍增】洛谷 P3502 [POI2010]CHO-Hamsters 题解

        这是一道字符串建模+图论的问题. 题目描述 Byteasar breeds hamsters. Each hamster has a unique name, consisting of lo ...

  10. MITx: 6.00.1x Introduction to Computer Science and Programming Using Python Week 2: Simple Programs 4. Functions

    ESTIMATED TIME TO COMPLETE: 18 minutes We can use the idea of bisection search to determine if a cha ...