2、Halcon基本介绍

目录

1、图像通道转换。

2、算子结构介绍

3、数组的创建和基本运算

4、矩阵的创建和基本运算

5、基本判断语句

6、halcon机器视觉实现步骤


1、图像通道转换

①、彩色图片一般有三通道:R、G、B。在图片的每个像素点上,通过R、G、B不同的三色值来组合成不同的色彩。在每一个像素点上R、G、B计算方法,如下面网格示意图所示:

例子:将程序演示:

*读取一副图片dev_open_file_dialog ('read_image', 'default', 'default', Selection)read_image (Image,Selection)

RGB通道分离:

*通道分离decompose3 (Image, r, g, b)

②灰度图

又称灰阶图,把白色与黑色之间按对数关系分为若干等级,称为灰度。范围0-255。图像只有一个通道的图。灰度计算方式:v=a*R+b*G+c*B。

图像分析中,使用灰度图最多。

彩色图转灰度图程序:

*彩色图转换为灰度图rgb1_to_gray (Image, GrayImage)

按住键盘Ctrl键,鼠标在图像上的时候,可以看到灰度值。(上面的两个数值是鼠标的x、y坐标,下方的一个数值是灰度值)

③、H、S、V:颜色通道转换。用的比较少,在需要进行颜色分析的时候使用。

H:色调 S:饱和度 V:色彩的明亮程度

*RGB通道转换为HSV通道trans_from_rgb (r, g, b, h, s, v, 'hsv')

2、算子结构介绍

halcon算子是按照英文进行命名的,一般英文名就是代表的真实含义。算子结构为:功能类别_具体功能名称。比如read_image是读取图片的意思,read就是功能类别,image就是具体功能名称。

在编程的时候,输入了read,编译器自动就会筛选出read有关的算子。

算子分类:

dev_:系统、窗口有关的算子。比如dev_close_window ()关闭窗口、dev_open_window (0, 0, 512, 512, 'black', WindowHandle)打开窗口。

read_:读操作有关的算子。如:read_image(Image, '素材.bmp')读图片、read_ocr_class_mlp ('Industrial_0-9A-Z_NoRej.omc', OCRHandle)读halcon提供的字符串库文件。

write_:写操作有关的算子。write_image (Image, 'bmp', 0, 'sample')将图片写到程序目录下。

draw_:在界面上画图、画区域。画圆draw_circle (WindowHandle, Row, Column, Radius)、画矩形draw_rectangle1(WindowHandle, Row1, Column1, Row2, Column2)。由于是在窗口上画图,所以需要窗口句柄。因此在画图前先要关闭窗口、再打开窗口。算子如下:

dev_close_window ()dev_open_window (0, 0, 512, 512, 'black', WindowHandle)draw_circle (WindowHandle, Row, Column, Radius)

画图的时候,鼠标左键按住拖动,画好了松开鼠标右键鼠标完成,绘制完成。

gen_:表示生成类的算子。比如生成圆算子gen_circle (Circle, Row, Column, Radius)。

region_:表示跟区域有关的操作。比如获得区域的的一个特征(面积)region_features (Circle, 'area', Value)。

get_:表示获取某些属性的算子。比如获取图像尺寸get_image_size (Image, Width, Height)、获取图像灰度值get_grayval (GrayImage, Rows, Columns, Grayval)。

set_:表示设置参数类的算子。设置图像灰度值set_grayval (Image1, Rows, Columns, Grayval)

tuple_:代表与数组有关的算子。如获取数组长度tuple_length (A, Length)

select_:代表筛选操作有关的算子。比如根据形状面积来筛选区域select_shape (Rectangle, SelectedRegions, 'area', 'and', 150, 99999)、将最大面积区域超过70%的筛选出来select_shape_std (ConnectedRegions, SelectedRegions, 'max_area', 70)。

contour开头的代表的轮廓XLD有关的算子

gray开头的代表的灰度有关的算子。

3、数组的创建和基本运算

halcon中的数组英文是tuple。需要先声明,再使用。

声明数组如:

*定义一个空数组:    A:=[]

*数组赋值-方法:       A:=[A,1]

*再添加3个元素:      A:=[A,[1,2,3]]

运算:

*每个元素相加
C:=A+B

*每个元素相乘
D:=A*B

*给数组赋值:

for index:=1 to 100 by 1Grayval[index]:=255endfor

*获得数组A的长度-方法1

length_A:=|A|

*获得数组A的长度-方法2

tuple_length (A, Length)

*获取数组A第0个元素值(第0对应实际第一个)

val_A_0:=A[0]

*获取数组A第2个元素值

val_A_2:=A[2]

4、矩阵的创建和基本运算

矩阵也是一组组的数据,与数组不同的是,矩阵不仅仅是一个集合,还可以求逆、求范数。矩阵的运算只能通过算子来实现,不能像数组一样直接进行运算。矩阵要想直接运算,只能转换为数组再操作。

①矩阵创建

*矩阵的创建--------2行2列create_matrix (2,2,[1,2,3,4], MatrixID)

或者

*矩阵创建的-----方法2A:=[1,2,3,4,5,6,7,8,9]create_matrix (3, 3, A, MatrixID1)

②矩阵的相关获取

*获取矩阵单个元素的值------获取矩阵第0行、第1列的值get_value_matrix (MatrixID, 0, 1, Value)
*获取矩阵列表元素get_full_matrix (MatrixID, Values)
*获取矩阵单个元素的值------获取矩阵第0行、第1列的值get_value_matrix (MatrixID, 0, 1, Value)

③矩阵求逆。

*矩阵的逆invert_matrix (MatrixID, 'general', 0, MatrixInvID)get_full_matrix (MatrixInvID, Values1)

④矩阵的范数

*矩阵的范数-------'2-norm'  2范数,还可以设置为1范数norm_matrix (MatrixInvID, '2-norm', Value1)

5、基本判断语句

halcon判断语句常用的是if语句、for循环.

主要结构有:

if  (***)

*******

endif

if  (***) 
         *******
    elseif   (***) 
        *******
    else
          *******
endif

③for循环语句

for i := 1 to 5 by 1
       *******
endfor

程序举例:

array1:=[1,2,3,4,5]array2:=[]array3:=[]for Index := 0 to 4 by 1array2[Index]:=Index*2if(array2[Index]>array1[Index])array3[Index]:=array2[Index]+array1[Index]elseif (array2[Index]>array1[Index])array3[Index]:=array2[Index]-array1[Index]elsearray3[Index]:=array2[Index]endifendfor

6、halcon机器视觉实现步骤

①基本步骤:

图像预处理 ------》区域分割 ------》 区域筛选  ------》 特征分析、有用信息提取等

图像预处理:图像去噪、图像基本变化、图像增强、图像位置变化等。

③区域分割:将感兴趣的区域从原图像中分割出来。包括基于阈值的分割、聚类的分割等等。

④区域筛选:从分割出来的所有区域中,根据区域的某些特征,筛选出我们需要的区域。这些特征包括长度、长宽比例、凸性、圆度等等。

⑤特征分析:根据筛选的区域,对区域进行定量分析,包括区域的大小、外接圆、以及其他特征分析等,来判断区域是否满足条件要求。如果是测量类,需要对区域之间的关系进行分析等。

(0)

相关推荐

  • 真不错图像数字化及处理方法

    https://m.toutiao.com/is/JctWX2k/ 本文出自:最后一个bug 前言 本文大部分内容来源于网络,部分为自己理解的标注,应该对大家学习机器视觉和图像处理非常有帮助. 专栏 ...

  • 图像特征提取(颜色,纹理,形状)

    来源:新机器视觉 来自:小白学视觉公众号 编辑:王萌(深度学习冲鸭公众号) 著作权归作者所有,本文仅作学术分享,若侵权,请联系后台删文处理 后台回复西瓜手推获得西瓜书手推笔记 后台回复CV入坑必备获得 ...

  • 2021年三亚养猪补贴对象、标准及申请流程介绍!

    近几年随着猪价的上涨,养猪户也越来越多,但是目前生猪养殖成本大幅上升,市场猪肉价格居高不下,为了鼓励生猪养殖,很多地区发布了一系列的养猪补贴政策,今天就给大家介绍一下2021年三亚生猪养殖补贴政策及养 ...

  • 哈伯-博施工艺全介绍

    哈伯-博施法是一种将氮和氢固定在一起生产氨的方法,氨是植物肥料生产的关键部分.该工艺在20世纪初由弗里茨·哈伯(Fritz Haber)开发,后来被卡尔·博世(Carl Bosch)修改为生产化肥的工 ...

  • 蜂窝活性炭的应用介绍

    产品简介 山东新空活性炭以高品质煤质活性炭为原理,可广泛应用于各类气体净化设备和废气治理工程. 蜂窝活性炭是一种具有大比表面积,微孔结构,高吸附容量的活性炭产品.选用蜂窝活性炭吸附法,即废气与具有大比 ...

  • (35条消息) 中国城域网路由情况介绍

    中国的城域网,大概有三张比较典型的,一个是中国移动的CMnet,一个是中国电信IP城域网,还有一个是中国网通IP城域网.作为接入最后的阵地,城域网的业务是最复杂的.含盖了IPTV,语音,Interne ...

  • 山东41家主要地炼企业介绍汇总!

    一.山东地炼加工能力 鑫岳燃化240万吨,亚通石化276万吨,天弘化学440万吨,精细化工197万吨,利津石化350万吨,垦利石化252万吨,神驰252万吨,齐润石化220万,京博石化331万吨,鲁清 ...

  • 《内蒙古中医药》2013年第3期中介绍了...

    <内蒙古中医药>2013年第3期中介绍了一个治疗乙肝的验方--乙肝扶正解毒汤,此方由9味药组成: 党参.白术.生黄芪.丹参.刺五加.虎杖.叶下珠.半枝莲.绞股蓝. 方中: 党参.白术.生黄 ...

  • 2020年全球封装代工厂(OSAT)营收31强排名(附芯片 IC 封装工艺介绍(PPT)))

    数据来源:半导体综研 ---- / END / ---- 注:如有遗漏错误之处请指正,联系方式如下:

  • 麦芽介绍 麦芽的功效与作用有哪些

    行气消食.健脾开胃.消肿祛瘀.麦芽,它是一个非常好的消食的药,用于食积的患者,效果非常好.消食药有很多种,麦芽主要用于吃米饭比较多以后的消食,它的味甘,性非常的平和,归脾.胃经.主要功效是行气消食,同 ...

  • 最贵的黑酸枝是什么品种的?八种最贵黑酸枝特性介绍!

    最贵的黑酸枝是什么品种的?八种最贵黑酸枝特性介绍!趣历史小编给大家提供详细的相关内容. 说到黑酸枝其实大家也知道的很多,世界上黑酸枝很多很多,但是大致的可以分为七大类,所以下面我们一起来盘点看看,下面 ...