halcon的一些概念术语解释:Image,HOI,Region, XLD,Shape, Contours

Image

一 读取的3种方式:

read_image( image,'filename')       //image 是输出对象,后面是输入文件的路径和名称

读取多图: 
1,申明一个数组,分别保存路径

ImagePath:=[]
ImagePath[0]:='D:/1.bmp'
ImagePath[1]:='D:/2.bmp'
ImagePath[2]:='D:/3.bmp'
for i:=0 to 2 by 1
     read_image(Image,ImagePath[i])
endfor

2,for 循环  
  

for i:=1 to 3 by 1
     read_image(Image,'D:/’+'i'+'.bmp')
endfor

3, 读取目录下所有文件 
助手,打开图像,选择路径,插入代码

list_files(输入文件目录地址,选取的要求(files指定选取文件格式,recursive递归,深入所有,derectories选取文件夹,follow_links,max_depth 5...),输出的被选择的文件列表)

选择符合规则的tuple,其中\\.是转义符,等价于'-->' 
tuple_regexp_select(文件名字,['\\.(bmp|tif)$','ignore_case忽略大小写'],输出) 
fabric文件路径 
  

Image的预处理:


消除噪声mean_image/ binomial_filter
抑制小斑点或者细线median_image
平滑smooth_image
保存边缘的平滑anisotropic_diffusion




HTule, HObject 是halcon的数据类型 (注意,这里我们以C#下halcon命名空间的名称在做说明)

另外还有诸如HRegion这样的对象,其派生于HObject

下面分别解释一下这两种数据类型:


HTule 

HTuple是halcon对基础数据类型的封装, 这个类型可以直接赋值C#的各种数据类型

这个类型有点类似C#的object类型,一个参数,可以传入不同的数据类型。

下面是一些例子: 


下面的算子参数是一个HTuple,C#可以输入string

image.png


下面的算子参数是一个HTuple,C#可以传入double或者int或者它们的数组都可以!

image.png


下面的算子参数是一个HTuple,C#可以传入double,int,或者string

image.png

HObject

HObject代表图形对象类型,在调用算子时,它可以代表Image/Region/XLD


Region与XLD


  xld(eXtended Line Descriptions) 扩展的线性描述,它不是基于像素的,人们称它是亚像素,只不过比像素更精确罢了,可以精确到像素内部的一种描述。
        而image和region这些数据结构都是像素级别的。
        亚像素精度数据可以通过亚像素阈值分割或者亚像素边缘提取来获得,这些处理得到的结果就是用亚像素轮廓来表示。
       上面提到的亚像素轮廓其实在halcon中指的就是xld,它可以表示直线或多边形,是一组有序的控制点集合,控制点顺序用来说明彼此相连的关系。
       当然亚像素轮廓可以分为两种:
       1.闭轮廓:首尾相交
       2.开轮廓:首尾不相交
       我们可以通过如下算子得到xld:
       threshold_sub_pix(Image:Boreder:Threshold:):提取xld并不是沿着像素与像素边界交界的地方,而是halcon经过某种计算得出的位置(一种描述)。其中Threshold为提取xld的阈值,灰度值以阈值为界提取xld。

  xld的特征部分和region有很多相同的部分:
  1.基础特征:xld面积,中心,宽高,左上角及右下角坐标。
       2.形状特征:圆度,紧密度,长度,矩形度,凸性,偏心率,蓬松度(bulkiness),外接圆半径,外接矩形的方向及两边长度等。
       3.云点特征:云点面积,中心,等效椭圆半轴及角度,云点方向等。
       4.几何特征:二阶矩等。


Region: 
Region 为某些附和要求性质的像素的子集,或者说一些被选择的图块区域s,region大小不受图像限制,有fill和margin两种表达方式,类似于游程编码,可用于压缩,eg:用a2b3c4代表aabbbcccc

region操作: 
选择相应区域

select_shape(regions,output,'select type',..requirements)

计算相应区域的面积,中心坐标:

area_center(regions,area,row,column)

不规则区域的转换:

shape_trans(region,regiontrans,type)

image.png

convex hull凸包围(由外向内包围)

outer_circle 外圆(能够包括对象的半径最小的圆形)

inner_circle 内圆

rectangle1 正矩形

rectangle2 最小包围矩形

inner_rectangle1 最大内矩形

 图型变量XLD(eXtended Line Descriptions)

XLD代表亚像素级别的轮廓或者多边形

threshold_sub_pix(inputimage, output,requirement)
 
gen_contour_region_xld(inputRegion,output,...)

XLD的选择操作(select_shape_xld/selet_contours_xld):

select_shape_xld(XLD:SelectedXLD:Features,Operation,Min,Max:)
 
select_contours_xld(Contours:SelectedContours:Feature,Min1,Max1,Min2,Max2:)

计算xld的面积以及中心位置:

area_center_xld(XLD:::Area,row,column,pointOrder)

xld的合并操作:

union_colliner_contours_xld: 合并同一直线的xld
 
union_cocircular_contours_xld: 合并同圆的xld
 
union_adjacent_contours_xld: 合并相邻的xld

xld的转换操作与region类似:

shape_trans_xld(XLD:XLDTrans:Type:)

有上面几个类型

Xld的分割操作(segment_contours_xld)

把初始xld分割成直线,直线和圆,直线和椭圆

segment_contours_xld(Contours: ContoursSplit: Mode,SmoothCont, MaxLineDist1, MaxLineDist2:)

image.png

Xld 的拟合操作(fit_***_contour_xld)  把不完整的形状拟合完整

fit_line_contour_xld
 
fit_circle_contour_xld
 
fit_ellipse_contour_xld
 
fit_rectangle2_contour_xld

总结:

图像和视频,文件的读取

Region和XLD的初步介绍

注意:

在使用edges_sub_pix提取出来的结果,往往不是完整的圆形,需要用union来整合出完整的圆形。


ROI

设置好一个矩形区,然后使用 reduce_domain(是一个矩形区域)后,即生成一个ROI(感兴趣区域)

你也可以再使用crop_domain 就裁剪出图像


Shape和Contours

意思即形状和轮廓
在region处理的时候,Shape代表着形态方面的特征,例如算子:

image.png

其形态特征有如下这些:

image.png


contours则是在处理XLD对象时的术语,它意思是轮廓,轮廓即XLD。


--------------------- 

作者:hackpig
来源:www.skcircle.com
版权声明:本文为博主原创文章,转载请附上博文链接!


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864