HALCON笔记.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- HALCON 笔记
- 资源描述:
-
HALCON函数 dev_close_window ( : : : ) 关闭活跃的图形窗口。 read_image ( : Image : FileName : ) ;加载图片 rgb1_to_gray (Audi, Audi2) 将rgb转化为灰度图 get_image_pointer1 ( Image : : : Pointer, Type, Width, Height ) ;获得图像的数据。如:类型(= ' 字节',' ' ',uint2 int2 等等) 和图像的尺寸( 的宽度和高度) dev_open_window( : :Row,Column,WidthHeight,Background :WindowHandle ) 打开一个图形的窗口。 dev_open_window_fit_image (ImageOrig, 0, 0, -1, -1, WindowHandle) 打开一个合适于图片的窗口。 dev_set_window (WindowHandle2) 激活一个窗口 dev_set_part ( : : Row1, Column1, Row2, Column2 : ) 修改图示像显的位置 dev_set_draw (’fill’) 填满选择的区域(填充 ) dev_set_draw (’margin’) 显示的对象只有边缘线 dev_set_line_width (3) 设置线宽 threshold ( Image : Region : MinGray, MaxGray : ) 选取从输入图像灰度值的g 满足下列条件:MinGray < = g < = MaxGray 的像素。 dev_set_colored (number) 显示region 是用到的颜色数目 dev_set_color ( : : ColorName : ) 指定颜色 dev_clear_window ( : : : ) 清除视图窗体 reduce_domain // 产生一个图形区域的对象 rectangle1_domain ( Image : ImageReduced : Row1, Column1, Row2, Column2 : ) 根据矩形坐标(Row1, Column1)、(Row2,Column2)得到区域视为Image图像的定义域。 connection ( Region : ConnectedRegions : : ) 合并所有选定像素触摸相互连通区 fill_up ( Region : RegionFillUp : : ) 填补选择区域中空洞的部分 fill_up_shape ( Region : RegionFillUp : Feature, Min, Max : ) select_shape ( Regions : SelectedRegions : Features, Operation, Min, Max : ) 选择带有某些特征的区域,Operation 是运算,如“与”“或” smallest_rectangle1 ( Regions : : : Row1, Column1, Row2, Column2 ) 以矩形像素坐标的角落,Column1,Row2(Row1,Column2) 计算矩形区域( 平行输入坐标轴) 。 dev_display ( Object : : : ) 显示图片 disp_rectangle1 ( : : WindowHandle, Row1, Column1, Row2, Column2 : ) 显示的矩形。disp_rectangle1 显示一个或多个矩形窗口的产量。描述一个矩形左上角(Row1,Column1) 和右下角(Row2,Column2) 。 texture_laws ( Image : ImageTexture : FilterTypes, Shift, FilterSize : ) texture_laws 实行纹理变换图像FilterTypes: 预置的过滤器Shift :减少灰度变化FilterSize :过滤的尺寸 gen_empty_obj (XLDContours) 生成一个空对象的元组。 8、grab_image_start ( : : AcqHandle, MaxDelay : ) 開始抓拍 只有當和grab_image_async or grab_data_async一起使用時,grab_image_start 才會起作用。 draw_rectangle1 (WindowID, Row1, Column1, Row2, Column2) /画一个矩形 gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2) 获取矩形区域, gen_rectangle2( : Rectangle : Row, Column, Phi, Length1, Length2 : ) 创建任意方向的一个矩形,控制输入分别为矩形中心的行列坐标,矩形纵向与水平方向的夹角,长和宽的一半。 create_template (ImageReduced, 5, 4, 'sort', 'original', TemplateID) 准备一个模板匹配的模式。 fast_match_mg (Image, Matches, TemplateID, 20, 3) 搜索所有好的灰度值匹配一个金字塔。 zoom_image_factor (Clip, ImageZoomed, 0.5, 0.5, 'constant') 缩放图像 gen_contours_skeleton_xld (ModelRegions, Model, 1, 'filter') 一个框架转换成XLD轮廓 angle_ll //两条线之间的角度 points_sojka() 获取在拐角上的点的坐标、 points_lepetit()/points_harris() 检测的兴趣点 gen_cross_contour_xld() 根据坐标生成十字叉 mean_image ( Image : ImageMean : MaskWidth, MaskHeight : ) 平滑图像, 原始灰度值的平均数MaskWidth: 过滤器的宽度面具 bin_threshold ( Image : Region : : ) 自动确定阈值 Region: 黑暗的区域的图像 dyn_threshold ( OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : ) 比较两个像素的图像像素RegionDynThresh(Out) 分割区域Offset: 减少噪音引起的问题LightDark 提取光明、黑暗或类似的地方 dilation_circle ( Region : RegionDilation : Radius : ) 扩张有一个圆形结构元素的地区 Radius 圆半径 dilation_rectangle1 ( Region : RegionDilation : Width, Height : ) 扩张有矩形元素地区 Width 构建的矩形的宽度 erosion_circle (SelectedRegions, RegionErosion, 3.5) 腐蚀圆 complement ( Region : RegionComplement : : ) 返还补充的区域 opening_circle ( Region : RegionOpening : Radius : ) 先腐蚀后膨胀的过程称为开运算。 用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积。 Closing_circle ( Region : RegionOpening : Radius : ) 先膨胀后腐蚀的过程称为闭运算。 用来填充物体内细小空洞、连接邻近物体、平滑其边界的同时并不明显改变其面积。 get_mbutton ( : : WindowHandle : Row, Column, Button ) 原地等待直到鼠标按下 select_region_point ( Regions : DestRegions : Row, Column : ) 选择所有包含给定像素的区域 difference ( Region, Sub : RegionDifference : : ) 两个区域做差 gen_region_line ( : RegionLines : BeginRow, BeginCol, EndRow, EndCol : ) 计算区域(起始点和终点)中的线段 intersection ( Region1, Region2 : RegionIntersection : : ) 计算两个区域的交叉点 shape_trans ( Region : RegionTrans : Type : ) 变换形状,形状取决于Type sort_region (SelectedRegions, SortedRegions, 'upper_left', 'true', 'row') 设置区域排列的顺序 disp_message (WindowHandle, Class, 'window', 20, 20, 'black', 'true') 在屏幕上显示信息 10.smallest_rectangle2(Regions : : : Row, Column, Phi, Length1, Length2) 返回包含一个区域的最小环绕矩形。 11.gen_measure_rectangle2( : : Row, Column, Phi, Length1, Length2, Width, Height, Interpolation : MeasureHandle) 返回和矩形边垂直的边缘 坐标系转换---旋转图片 12.rotate_image (ImagePolar, ImageRotate, 180, 'constant') 根据旋转图像 13.text_line_orientation () 获取文字的角度 vector_angle_to_rigid (Row, Col, Phi, Row1, Col1, Phi1, HomMat2D) 根据点和角度进行坐标系旋转(HomMat2D-----输出变换矩阵) Row, Col, Phi——需移动点的坐标、方向 Row1, Col1, Phi1——目标点的坐标、方向 14.hom_mat2d_identity (HomMat2DIdentity) 定义均匀的二维数组 15 hom_mat2d_rotate( HomMat2D, Phi, Px, Py : HomMat2DRotate) 根据角度转化坐标系 hom_mat2d_invert (HomMat2DRotate, HomMat2DRotateBack) 转回原来坐标系。 affine_trans_image (ImageOrig, Image2, HomMat2D, 'constant', 'false') 根据坐标系移动旋转图片 affine_trans_contour_xld( ) 根据坐标移动系旋转轮廓 字符识别 read_ocr_class_mlp ('Pharma.omc', OCRHandle) 从文件中读取一个OCR分类器 do_ocr_multi_class_mlp (SortedRegions, ImageResult3, OCRHandle, Class, Confidence) 识别出OCR,保存在class中 do_ocr_single_class_mlp (SingleChar, Image, OCRHandle, 2, Class, Confidence) 一个字符一个OCR进行分类 set_tposition (Operator) 设置文本光标的位置 write_string (WindowID, Class[0]) 打印文字在窗口 create_lexicon ('label', ['BEST','BEFORE','END'], LexiconHandle) 创建一个元组词的词典 paint_region (Rectangle1, Image, ImageResult, 0, 'fill') 用颜色填充区域 edges_sub_pix (ImageReduced, Edges, 'canny', 1, 20, 40) 使用亚像素找出边界 3.fill_up_shape(Region : RegionFillUp : Feature, Min, Max : ) 填充具有某种形状特征的区域,并输出填充区域,形状特征包括 7.smallest_circle(Regions : : : Row, Column, Radius) 包含区域的最小圆。算法:该圆以区域中心为圆心,0.5步长递进 gauss_image (Image, ImageGauss, 5) //对图像进行高斯滤波// fit_circle_contour_xld (Edges, 'algebraic', -1, 0, 0, 3, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder) 拟合近似XLD轮廓的圆圈。 disp_circle (3600, Row, Column, Radius) 显示圆 disp_cross (WindowHandle, RCoord, CCoord, 6, 0) 显示十字架 例如—找圆 edges_sub_pix (ImageReduced, Edges, 'canny', 1, 20, 40) 亚像素找边 * select_shape_xld (Edges, SelectedXLD, 'area', 'and', 150, 99999) 选择轮廓区域 fit_circle_contour_xld (Edges, 'algebraic', -1, 0, 0, 3, 2, Row, Column, Radius, StartPhi, EndPhi, PointOrder) 拟合一个类似圆的轮廓 disp_circle (3600, Row, Column, Radius) 显示圆(圆心坐标,半径) threshold_sub_pix (ImageReduced, Edges, 75) 先阈值后找出边来 例如--找边 edges_sub_pix (ImageReduced, Edges, 'canny', 1, 20, 40) select_shape_xld (Edges, SelectedXLD, 'height', 'and', 150, 99999) fit_line_contour_xld (SelectedXLD, 'tukey', -1, 0, 5, 2, RowBegin, ColBegin, RowEnd, ColEnd, Nr, Nc, Dist) disp_line (3600, RowBegin, ColBegin, RowEnd, ColEnd) OCR找车牌号 read_image (Audi2, 'audi2') * fill_interlace (Audi2, ImageFilled, 'odd') //图像处理 threshold (Audi2, Region, 0, 90) connection (Region, ConnectedRegions) select_shape (ConnectedRegions, SelectedRegions, 'width', 'and', 30, 70) select_shape (SelectedRegions, Letters, 'height', 'and', 60, 110) * sort_region (Letters, SortedRegions, 'upper_left', 'true', 'column') 排序区域 dev_clear_window () dev_set_colored (12) dev_display (Audi2) dev_display (Letters) read_ocr_class_mlp ('Industrial_0-9A-Z.omc', OCRHandle) do_ocr_multi_class_mlp (Letters, Audi2, OCRHandle, Class, Confidence) * area_center (Letters, Area, Row, Column) disp_message (3600, Class, 'window', 12, 12, 'black', 'true') union1 (Darks, Dark) 所有输入区域的联合。 图像采集相机参数 open_framegrabber ( : : Name, HorizontalResolution, VerticalResolution, ImageWidth, ImageHeight, StartRow, StartColumn, Field, BitsPerChannel, ColorSpace, Generic, ExternalTrigger, CameraType, Device, Port, LineIn : AcqHandle ) 打开图像采集设备 参数信息: Name:图像采集设备的名称 HorizontalResolution和VerticalResolution:分别指预期的图像采集接口的水平分辨率和垂直分辨率 ImageWidth和ImageHeight:指预期图像的宽度部分和高度部分。 StartRow和StartColumn:指显示预期图像的开始坐标 Field:预期图像是一半的图像或者是完整图像 BitsPerChannel:每像素比特数和图像通道 ColorSpace:输出的色彩格式的抓住图像{gray、raw、rgb、yuv、default} Generic:通用参数与设备细节部分的具体意义。 ExternalTrigger:是否有外部触发 CameraType:使用相机的类型 Device:图像获取设别连接到的设备 Port:图像获取设别连接到的端口 LineIn :相机输入的多路转接器 AcqHandle:图像获取设备的Handle 图像采集 open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', 'default', 'USB Webcam', 0, -1, AcqHandle) * grab_image_start (AcqHandle, -1) * grab_image_async (Image, AcqHandle, -1) * close_framegrabber (AcqHandle) 模版匹配 reduce_domain (ModelImage, ModelROI, ImageROI) 减少图像区域 1.create_shape_model(Template : : NumLevels, AngleStart, AngleExtent, AngleStep, Optimization, Metric, Contrast, MinContrast : ModelID) 为匹配准备一个形状模型。模型产生于多个图像金字塔级数,并储存在内存中。每个级数再进行多次旋转。最高的金字塔级数最少需要四个特征点进行匹配。 create_shape_model_xld()创建模板 inspect_shape_model (ImageROI, ShapeModelImage, ShapeModelRegion, 1, 30) 创建一个形状的表示模型。===它检查参数的适用性,还能帮助找到合适的参数 get_shape_model_contours( ) 获得这个模板的轮廓 2.find_shape_model (WaferDies, ModelID, 0, 0, MinScore, NumMatches, 0.5, 'least_squares', 0, Greediness, MatchRow, MatchColumn, MatchAngle, MatchScore) 查找图像中的形状模型的最佳匹配 vector_angle_to_rigid (Row, Column, Phi, Row, Column, 0, HomMat2D) HomMat2D-----输出变换矩阵--根据点和角度进行坐标系旋转 affine_trans_image (ImageOrig, Image2, HomMat2D, 'constant', 'false') 根据坐标系旋转图片 affine_trans_contour_xld( )根据坐标系旋转轮廓 1. hom_mat2d_identity (HomMat2DIdentity) 2. hom_mat2d_rotate (HomMat2DIdentity, -Phi, Column1, Row1, HomMat2DRotate) 3. vector_angle_to_rigid (Row1, Column1, Phi, Row1, Column1, 0, HomMat2DRotate) 1+2=3 dev_display_shape_matching_results ()显示形状模版匹配。 create_template_rot (ImageReduced, 4, 0, rad(360), rad(1), 'sort', \ 'original', TemplateID) 准备与旋转模板匹配的模式。 gen_empty_obj (Chambers) 创建一个空对象的元组 concat_obj (Chambers, Rectangle, Chambers) 组合两个物体 decompose3 (ImageReduced, ImageR, ImageG, ImageB) 三通道的图像转换成三张图片 intersection (Chamber, Pills, Pill) 两个区域的交集部分 min_max_gray (Pill, ImageB, 0, Min, Max, Range) 获取区域的最大和最小阈值 boundary (Region, RegionBorder, 'inner_filled') 返回区域边界 get_contour_xld (Edges, Row2, Column2) 获取轮廓上点的坐标 读取多张图片 ImagePath:=[] ImagePath [0]:= '路径+图片名1' ImagePath [1]:= '路径+图片名2' ImagePath [2]:= '路径+图片名3' for i:=0 to 2 by 1 read_image(Image,ImagePath[i]) endfor 添加Halcon库文件目录 在C++头文件中加入#include<halconcpp.h>并且加入命名空间 using name space HALCON; #include "HalconCpp.h" using namespace Halcon; 在C++源文件中也加入#include<halconcpp.h>并且加入命名空间 using name space HALCON; 这里“$”是绝对引用的意思。无论你的halcon装在哪个盘的目录下,均可通过这个绝对引用来导入路径 $(HALCONROOT)\include\cpp $(HALCONROOT)\include 如图 $(HALCONROOT)\include;$(HALCONROOT)\include\cpp 下图 添加$(HALCONROOT)\lib\$(HALCONARCH)路径。 $(HALCONROOT)\lib\$(HALCONARCH) 在项目属性->链接器->输入->附加依赖项->halconcpp.lib 在工具->选项->常规->VC++目录->库文件添加($(HALCONROOT)\lib\x86sse2-win32)如图 工具->选项->常规->VC++目录->包含文件添加$(HALCONROOT)\\include;和$(HALCONROOT)\\include\cpp HALCON源文件导出(文件->导出) 在HDevelop中编写好的程序在导出时,Halcon会帮我们转换成我们需要的语言,比如C++。例:HDevelop中有如下语句需要导出: dev_close_window() Halcon导出成C++语言就成了如下语句: if (HDevWindowStack::IsOpen()) //判断窗口是否打开 close_window(HDevWindowStack::Pop()); //打开了就销毁 static void Push(const HTuple &win_handle);此方法就是将此句柄下发给halcon static HTuple GetActive(); 此方法就是从halcon的句柄队列中获取一个处于激活状态的窗口句柄,用于绘图操作,比如显示图像:read_image(),再调disp_obj(),当然参数是这里获取的窗口句柄 static void SetActive(const HTuple &win_handle); 功如其名,就是将某一个句柄所指的窗口处于激活状态 static bool IsOpen(); 判断某一窗口是否打开,文章开头有使用,如果打开了,则关闭 static void CloseAll(); 关闭所有窗口,遍历底层的句柄队列,一一关闭并销毁展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




HALCON笔记.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/7229889.html