
halcon学习
文章平均质量分 83
2024年专栏更新计划如下:
1、依次将脚本的源码放到附件,使用的时候无需自己封装hdvp函数,直接Run就会有结果,导出源码可以直接使用,平均每周更新1篇
2、优化每篇博客中脚本内容(和附件保持一致),平均每周更新1篇
优惠券已抵扣
余额抵扣
还需支付
¥99.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
谷棵
1、当下的思绪,让我的生活充实而又灵动
2、如果你想做,就去做吧(知就是行,行就是知)
展开
-
halcon学习拓展系列—交集intersection的拓展算子intersection_expand【2024更新】
在专题《halcon学习拓展系列—判定二维点集在Region的位置信息算子test_region_points_fast》中详细讲解过test_region_points_fast算子,在重构intersection函数中会用到该算子,本专题就来实现intersection_expand算子一、算子说明** 函数名称:intersection_expand** 功能:判断二维点集是否在Region上** 具体描述:只要Region中存在point在RegionBase中,则满足条件,添加到Re原创 2020-12-14 13:43:32 · 2407 阅读 · 4 评论 -
halcon学习拓展系列—判定二维点集在Region的位置信息算子test_region_points_fast【2024更新】
在专题《halcon学习拓展系列—判定二维点集在Region/Contour的位置信息算子test_region_points和test_contour_points》中详细讲解过test_region_points算子,该算子效率太低,在后面项目应用中看到了弊端,然后:不得不重构一个新函数test_region_points_fast,经项目中测试,在一张200万图片中运行时间为0.27ms(test_region_points运行时间是99.16ms),已满足项目CT需求该专题目的是为了重构inte原创 2020-12-14 13:31:40 · 1535 阅读 · 1 评论 -
halcon学习拓展系列—创建阵列算子create_array和create_odd_array【2024更新】
在求毛丝的中轴线/骨架时用到了创建阵列的功能,创建基于某个基准点的奇数阵列,偶数阵列,或者任意奇偶组合阵列,综合目前所需要的要求,封装了两个功能函数,分别是:1、create_array:创建阵列,基于左上角点排布2、create_odd_array:创建奇数阵列,基于中心点排布一、算子说明create_array( : : rowLeftUp, columnLeftUp, elementWidth, elementHeight : rowRound, columnRound)*.原创 2020-09-10 22:11:25 · 1660 阅读 · 3 评论 -
halcon学习拓展系列—判定二维点集在Region/Contour的位置信息算子test_region_points和test_contour_points【2024更新】
在专题《halcon学习实战系列—如何提取牛奶包装盒上的吸管之Contour截取算子crop_contours_xld_region(二)》中详细讲解过test_region_points算子,该算子应该是在拓展系列里面讲的,因为实战系列需要所以提前分享给了大家,为了拓展系列的完整性和结构性,这里再次整理到拓展系列另外,开始前吐槽一下,halcon的Blob分析全是基于像素的,如果想做亚像素的处理,只有Contour,而Contour的操作算子又很少,怎么办?只能用仅有的Contour算子拓展其他的Co原创 2020-09-09 00:16:29 · 1434 阅读 · 1 评论 -
halcon学习实战系列—如何更便捷,更高效的计算同心度【2024更新】
如何更便捷,更高效的计算同心度1、获取Contour2、拟合圆3、同心度计算首先,如何获取Contour,用前面专题讲的fit_circle_base_circle当然可以,直接将获取Contour和拟合圆一起完成,还可以加上漂亮的滤波那么,有没有更加便捷、高效的方式获取Contour呢,今天实战系列就是为此而来!另外,Contour操作比起Blob操作算子少得可怜,该专题有相关的Contour操作,这也是分享给大家看的原因之一,虽然专题简单,相信还是有可取之处,简单之处也有精要之笔原创 2020-09-06 20:13:39 · 1847 阅读 · 1 评论 -
halcon学习拓展系列—圆拟合卡尺算子fit_circle_base_circle
首先感谢wangpeng,joy和xy6300,三位提供了卡尺工具的思路,并提供了卡尺工具—rake函数,综合三位同事提供的思路,整合并优化,提出了矩形矢量直线拟合算子fit_circle_base_circle,增加了滤波功能,再次感谢三位同事!涉及到卡尺工具—rake函数,请参考博客园博主xy6300《边缘分析及直线和圆拟合——第5讲》一、算子说明fit_circle_base_circle(Image: :threshEdge,numEdge,transition,orie...原创 2020-08-28 21:27:30 · 1869 阅读 · 1 评论 -
给订阅读者的一封信
随着毕业季的到来,看到有一部分毕业生订阅了《halcon学习》专栏,在这里我特别想说几句,怕他们重蹈我的覆辙,算是过来人的建议吧 首先,从大的层面看,咱们国家在提倡基础科学,基础学科,基础软件,工业软件等,我们用的VS受美国和国际版权法保护,我们用的AutoCad,Matlab,工程仿真软件等都出自欧美国家,今天不让华为使用光刻机生成麒麟芯片,不让哈工大使用Matlab,明天就有可能不让我们使用VS和Halcon等商业软件,所以,建议刚毕业的同学去学习开源视觉库,如Opencv等,而该专题...原创 2020-08-13 22:59:05 · 1068 阅读 · 7 评论 -
halcon学习拓展系列—矩形矢量直线拟合卡尺算子fit_line_rectangle_vector
首先感谢wangpeng,joy和xy6300,三位提供了卡尺工具的思路,并提供了卡尺工具—rake函数,综合三位同事提供的思路,整合并优化,提出了矩形矢量直线拟合算子fit_line_rectangle_vector,再次感谢三位同事!涉及到卡尺工具—rake函数,请参考博客园博主xy6300《边缘分析及直线和圆拟合——第5讲》一、算子说明fit_line_rectangle_vector(Image,Rectangle: :dMRSigma,dMRThresh,lMRTran...原创 2020-08-12 14:22:49 · 1619 阅读 · 0 评论 -
halcon学习拓展系列—统一矩形描述unified_rectangle2_description
在《halcon学习拓展系列—以Phi方向作为轴线,求rectangle2的四个角点算子find_rectangle2_points_base_phi》提到了如何改变规定角度的矩形描述,实现该功能可以针对rectangle2做出四种描述,实际应用中可以根据情况选取其中的一种描述实现该功能后就可以直接获取rectangle2带角度的中分线,即《halcon学习拓展系列—计算Phi方向的矩形中分线算子get_rectangle_median_line_base_phi》中的get_rectangle_med原创 2020-08-11 17:46:54 · 529 阅读 · 0 评论 -
halcon学习拓展系列—以Phi方向作为轴线,求rectangle2的四个角点算子find_rectangle2_points_base_phi
本专题讲解的是以Phi方向作为轴线,求rectangle2的四个角点算子find_rectangle2_points_base_phi,有两个目的:1)为直线拟合算子做铺垫2)拓展一下find_rectangle2_points算子有需要的话可以参考之前的专题《halcon拓展系列—计算任意矩形的四个角点坐标算子find_rectangle2_points》一、算子说明find_rectangle2_points_base_phi( : :rowCenter,columnCen...原创 2020-08-07 22:13:32 · 1527 阅读 · 7 评论 -
halcon学习拓展系列—计算Phi方向的矩形中分线算子get_rectangle_median_line_base_phi
本专栏有两个目的,一是为了直线拟合算子做铺垫,二是为了拓展一下中分线算子;有需要的话可以参考之前的专题《halcon拓展系列—计算矩形中分线算子get_rectangle_median_line》一、算子说明get_rectangle_median_line_base_phi(Rectangle: :Angle:Row1,Column1,Row2,Column2)** 函数名:get_rectangle_median_line_base_phi** 功能:求rectang...原创 2020-08-06 00:17:42 · 981 阅读 · 0 评论 -
halcon学习拓展系列—笔画宽度分割算子swt_threshold【未经工程验证,仅供参考】
SWT(Stroke Width Transform)算法由Epshtein等在2010年提出,指示牌文字,斑马线,指引线等都有固定的宽度,分割时只用颜色和灰度会受到背景和前景颜色和灰度干扰,再加上笔画宽度特征,就能更好的对这些固定宽度对象进行分割经过碑文,道路指示牌,道路指引线的测试,发现swt对简易连通域的分割效果较好,对复杂连通域的分割效果较差,我觉得根本原因是swt时基于Contour上每个点在法向量方向上进行边缘点抓取,如果图像文字分辨率不高,Contour就不够准确,再加上汉字笔画之间有连通原创 2020-07-24 11:54:43 · 863 阅读 · 4 评论 -
halcon学习实战系列—如何提取牛奶包装盒上的吸管之Contour截取算子crop_contours_xld_region(三)
本着精益求精的态度,觉得牛奶吸管提取算法做的不够完善,对于Contour提取和Contour截取算子crop_contours_xld_region还凑合,但是对于前面的Blob预选取区域不很满意,这节完善它一、Blob预选取区域之动态阈值方法dyn_threshold(OrigImage,ThresholdImage:RegionDynThresh:Offset,LightDark: )下面简单描述一下局部动态阈值的Description1、OrigImage最好是...原创 2020-07-23 11:10:41 · 757 阅读 · 0 评论 -
halcon学习拓展系列—获取二维点集在直线的位置算子get_point_lr_position_base_line和get_point_ud_position_base_line
判断二维点集在基准直线的上下左右位置信息一、算子说明get_point_lr_position_base_line( : :row,column,rowStart,columnStart,rowEnd,columnEnd:pointPosition)get_point_ud_position_base_line( : :row,column,rowStart,columnStart,rowEnd,columnEnd:pointPosition)*******...原创 2020-07-22 19:27:28 · 1097 阅读 · 1 评论 -
halcon学习实战系列—如何提取牛奶包装盒上的吸管之Contour截取算子crop_contours_xld_region(二)
对于Contour截取算子crop_contours_xld_region,上个专题《halcon学习实战系列—如何提取牛奶包装盒上的吸管之Contour截取算子crop_contours_xld_region》里面详细讲解了,但是有不当之处,主要是概念上的,功能没有问题;这里提出来,改正,并改进算子一、算子名称修改crop_contours_xld_region(Contour,CropRegion:ContourOut: : )功能实际为选取CropRegion上的Contou...原创 2020-07-21 19:56:35 · 702 阅读 · 0 评论 -
halcon学习实战系列—如何提取牛奶包装盒上的吸管之Contour截取算子crop_contours_xld_region
在halcon学习网看到一个帖子,特别有趣,分享给大家,顺便将Contour截取算子crop_contours_xld_region列出来,个人认为,特别好用,相比halcon自带算子crop_contours_xld,crop_contours_xld_region更灵活,具体往下看原帖子网址:http://www.ihalcon.com/read-14233.html我的回复网址:http://www.ihalcon.com/read-14233-11.html开始...原帖子.原创 2020-07-21 17:24:17 · 1018 阅读 · 1 评论 -
halcon拓展系列—计算矩形中分线算子get_rectangle_median_line
MVTec公司没有计划进一步封装算子,这些工作就需要halcon开发人员去完成,封装算子的过程同时也是知识积累,应用积累的过程,值得每一个halcon学习者尝试在Blob分析中,经常用到Rectangle的中分线,这节讲计算Rectangle中分线一、算子说明get_rectangle_median_line(Rectangle: :Line_Ori:Row1,Column1,Row2,Column2)** get_rectangle_median_line** 功能...原创 2020-07-21 16:08:34 · 1615 阅读 · 0 评论 -
halcon拓展系列—计算正矩形的四个角点坐标算子find_rectangle1_points
上面专栏讲过《halcon拓展系列—计算任意矩形的四个角点坐标算子find_rectangle2_points》,这里补充一下正矩形,即Rectangle1,因为很简单,这里不做基础知识板块一、算子说明find_rectangle1_points( : :row1,column1,row2,column2:row,column)查找正矩形Rectangle2的四个顶点** 函数名:find_rectangle1_points** 功能:求rectangle1的四个直角点*...原创 2020-07-17 13:33:40 · 2657 阅读 · 0 评论 -
halcon拓展系列—一维数组滤波,保持原数据顺序并输出对应Index算子data_filter_keep_order_output_index
在《halcon拓展系列—一维数组滤波并输出对应Index算子data_filter_output_index》讲解过对一维数组进行滤波,并输出序号算子data_filter_keep_order_output,但是滤波后输出为排序过后的数据,Index也是排序过的数据在原数据中的index,鉴于在很多应用中数据滤波后需要保留原来顺序,所以该专题拓展了一下Keep Order!一、算子说明data_filter_keep_order_output_index( : :grayval,rateLo..原创 2020-07-16 19:09:36 · 865 阅读 · 0 评论 -
halcon学习拓展系列—黄色区域分割算子get_yellow_region
在《halcon拓展系列—《halcon精髓之Blob分析篇》》中提到了颜色分割,但是没有很详细的描述;该专题主要讲解Blob分析中的黄色区域分割一、算子说明get_yellow_region(Image,Rectangle:ResultRegions:Threshold,MinArea,MaxArea: )** 功能:黄色区域分割** 输入** Image 输入彩色图像** Rectangle 输入处理区域...原创 2020-07-16 11:35:18 · 1744 阅读 · 0 评论 -
halcon学习拓展系列—弱边缘缺陷检测方法汇总之空域方法(四)
这个专栏补充一下空域边缘提取算子lines_gauss,这个算子在机器视觉中运用较多,应该更多的了解才能够更好的应用专题目录:***************************弱边缘缺陷检测方法汇总之空域方法*******************************一、基础知识1、边缘/区域分割部分1)二阶导数边缘提取算子(lines_gauss)二、总结 written by guke*********************************************原创 2020-07-15 15:35:42 · 771 阅读 · 0 评论 -
halcon学习拓展系列—二维点集滤波算子points_filter
一、算子说明points_filter( : :rowCross,columnCross,rowLine1,columnLine1,rowLine2,columnLine2,rateLowRemove,rateHighRemove:rowCrossFilter,columnCrossFilter)**--------------------------------------------------------------------------------------*...原创 2020-07-11 17:47:56 · 846 阅读 · 0 评论 -
halcon学习拓展系列—弱边缘缺陷检测方法汇总之空域方法(三)
这个专栏补充一下双边滤波方法,这个算子在机器视觉中运用较少,个人认为算子很好用,只是被大家忽视了专题目录:***************************弱边缘缺陷检测方法汇总之空域方法*******************************一、基础知识1、图像增强部分1)双边滤波(bilateral_filter)二、总结written by guke***********************************************************原创 2020-07-11 14:20:49 · 830 阅读 · 3 评论 -
halcon学习拓展系列—弱边缘缺陷检测方法汇总之空域方法(二)
上一专题《halcon学习拓展系列—弱边缘缺陷检测方法汇总之频域方法(一)》,该专题主要讲解频域检测边缘,本专栏主要讲空域边缘检测,总目录如下:一、基础知识二、算法实现1、自动阈值—由直方图确定的阈值分割图像2、频域高斯组合滤波器设计—原图*(大基元高斯低通卷积核-小基元高斯低通卷积核)3、导数滤波器4、高通滤波器5、正弦形状的带通滤波器下面开始一、基础知识...原创 2020-07-06 19:27:32 · 5085 阅读 · 2 评论 -
halcon学习拓展系列—弱边缘缺陷检测方法汇总之频域方法(一)
上一专题《halcon学习拓展系列—图像处理之低通滤波算子lowpass_filter_fft》中边缘检测方法如下:1)通过低通频域滤波降低图像的高频部分(图像预处理)2)然后再用原图-低通图像=边缘对比度增强图像(图像预处理)3)最后再用空域lines_guass高斯掩膜来求边缘信息(空域方法求边缘)该专题主要将频域求边缘,下面开始一、基础知识1、rft_generic(Image:ImageFFT:Direction,Norm,ResultType,Width: ...原创 2020-07-03 18:04:14 · 2114 阅读 · 1 评论 -
halcon学习拓展系列—图像处理之低通滤波算子lowpass_filter_fft
在量测中很少用到图像预处理,进入检测行业后才知道图像预处理的重要性和复杂性,这个专题专门讲空域和频域的低通滤波,先了解一下高低频的概念高频:图像中灰度变化剧烈的点,一般是图像轮廓或者是噪声。低频:图像中平坦的,灰度变化不大的点,图像中的大部分区域。低通滤波可以让图像变得光滑,滤除图像中的噪声。低通滤波有:线性的均值滤波器、高斯滤波器,非线性的双边滤波器、中值滤波器;高通滤波有基于Canny,Sobel等各种边缘滤波。这里大家可以看到低通滤波和高通滤波其实是相互矛盾的,但很多时候在做边缘检测前我们原创 2020-07-02 11:08:34 · 3057 阅读 · 0 评论 -
halcon学习拓展系列—修改图片分辨率算子modify_image_size(尺度不缩放)
前面做过两个涉及图像分表率调整的专题1)《halcon学习拓展系列—根据分辨率调整点云图像分辨率算子adjust_image_size_base_resolution》(尺度缩放)2)《halcon拓展系列—图像拼接-硬拼接》(尺度不缩放)其中第二个,可以通过两种方式将两张图片进行拼接,分别是:旋转拼接和循环拼接,在3D点云拼接和2D小视野图像拼接中可以用得到,源码已上传到csdn,但是由于下载次数较多导致1个积分涨到了18个积分,重复下载还需要重复消费积分,这点希望csdn资源下载能够改进下以原创 2020-07-01 11:24:56 · 2639 阅读 · 1 评论 -
halcon学习易错系列—创建空的object对象算子gen_empty_obj
概述halcon引擎方式存在一个bug,今天用了半天的时间发现了这个无厘头的bug,记录下来,以防这种情况再坑人,同时警示大家在学习商业库时,也不能丢掉开源库建议1、针对引擎调用hdvp方法时,对于HObject对象在使用之前一定都加上gen_empty_obj,一定!2、不管是传统视觉和AI,尽量使用开源的技术,开源,开源,开源...一、算子说明gen_empty_obj( :EmptyObject: : )Create an empty object tupl...原创 2020-06-30 17:52:57 · 5811 阅读 · 0 评论 -
halcon学习拓展系列—《halcon精髓之坐标系仿射篇》
仿射在机器视觉中起到了很重要的作用,且应用范围十分广泛,下面我们一一道来总目录1、图像定位中的矩形框仿射(坐标系仿射)2、图像定位中的工件坐标仿射(坐标系仿射)3、图像刚性变换(更加灵活,功能更丰富的坐标系仿射)4、九点标定中的图像机械坐标系仿射(涉及较多二维点集的坐标系仿射)5、总结1、图像定位中的矩形框仿射(坐标系仿射)vector_angle_to_rigid( : :Row1,Column1,Angle1,Row2,Column2,Angle2:...原创 2020-06-29 14:55:58 · 1412 阅读 · 0 评论 -
halcon学习拓展系列—根据分辨率调整点云图像分辨率算子adjust_image_size_base_resolution(尺度缩放)
一、算子说明adjust_image_size_base_resolution(Image:ImageZoomed:XResolution,YResolution,MinMaxType: )* * 功能:调节图像横纵向分辨率,即以横纵小分辨率为基准拉伸/以横纵大分辨率为基准拉伸* * 应用场景:线激光点云合成后分辨率不一致,调整为分辨率一致,以方便测量* * 输入* * Image 输入图像* * ImageZoomed 输出图像* * XResolution 横向分辨率...原创 2020-06-28 18:45:13 · 1836 阅读 · 2 评论 -
halcon学习拓展系列—patmax如何用halcon实现之形状匹配篇(一)
如果说Blob分析是halcon的精髓,那么patmax就是Cognex的精髓,一点也不夸张,同事展示了patmax的匹配效果,不管是明的,暗的,模糊的,旋转的,背景变化的,极性不同的,一致性不好的,均能匹配到,感叹:halcon单纯某个匹配算子实在做不到!不得不承认Cognex研发团队的优秀 halcon的匹配算子也是比较多的了,比如1)find_shape_model(标准几何形态匹配)2)find_ncc_model(灰度匹配/互相关度匹配)3)find_scale_sha...原创 2020-06-16 21:16:00 · 2348 阅读 · 3 评论 -
halcon拓展系列—《halcon精髓之Blob分析篇》
Matlab的精髓是矩阵运算(线性代数),halcon的精髓是Blob分析,本节主要将三个Blob分析中常用的阈值处理及其拓展,首先我们列举一下Blob的用途1)定位首先halcon原创 2020-05-27 12:10:54 · 1290 阅读 · 0 评论 -
halcon拓展系列—判定二维点集顺逆时针算子judge_points_order
一、算子说明judge_points_order( : :Rows,Cols:bClockwise)** 功能:判断二维点集的顺逆时针排列顺序** 输入** Rows,Cols 输入Contour的采样点**** 输出** bClockwise 顺逆时针:0:逆时针 1:顺时针 -1无法判定** written by guke**-----------------------...原创 2020-05-15 12:11:56 · 1361 阅读 · 0 评论 -
halcon拓展系列—自动拟合非规则区域弧边算子fit_contour_base_region【2024更新】
一、算子说明fit_contour_base_region(Image,RegionFit: :lNumCalNormalVector,lSampleIntervalNumber,dMRSigma,lMRThresh,lMRTransition,lMRWidth,lMRHeight:RowEdge,ColumnEdge)** 功能:自动拟合非规则区域弧边** 输入** image 输入图像** RegionFit ...原创 2020-05-14 13:22:24 · 1180 阅读 · 0 评论 -
halcon拓展系列—二维码读取算子find_barcode_2d
一、算子说明find_barcode_2d(Image:SymbolXLDs: :DecodedDataStrings)** 功能:读二维码** 输入** Image 输入图像** CodeType 二维码类型(values: 'Aztec Code', 'Data Matrix ECC 200', 'GS1 Aztec Code', 'GS1 DataMatrix', 'GS1 QR Code', 'Micro ...原创 2020-05-13 11:17:03 · 1341 阅读 · 0 评论 -
halcon拓展系列—抓点工具算子find_point
一、算子说明find_point(Image: :Row,Col,Phi,Length1,Length2,Sigma,Threshold,Transition,Select,CreateOverlays:RowEdge,ColEdge)** 功能:抓点工具** 输入** Image 输入图像** Row Col Phi Length1 Length2 输入卡尺rectangle2** Sigma ...原创 2020-05-12 15:54:31 · 1464 阅读 · 0 评论 -
halcon拓展系列—计算图像灰度投影算子gray_projections_expand
一、算子说明gray_projections_expand(image,rectangle: : :horizontalProjection,verticalProjection)效果等同于halcon自带算子gray_projections(Region,Image: :Mode:HorProjection,VertProjection)** 功能:计算图片在rectangle1区域内的灰度投影** 输入** image ...原创 2020-05-11 10:53:49 · 1813 阅读 · 0 评论 -
halcon易错系列—计算两条直线段中分线算子get_lines_median_line
一、算子说明get_lines_median_line( : :rowBegin1,colBegin1,rowEnd1,colEnd1,rowBegin2,colBegin2,rowEnd2,colEnd2:rowCenterBegin,colCenterBegin,rowCenterEnd,colCenterEnd)** 功能:获取两条直线段的中分线** 输入** rowBegin1, colBegin1,rowEnd1, colEnd1 ...原创 2020-05-09 11:47:39 · 3448 阅读 · 3 评论 -
halcon拓展系列—延伸直线段算子gen_segment_extend
一、算子说明gen_segment_extend( :contour:row,column,angle,length: )**--------------------------------------------------------------------------------------** 功能:由一个点/一个线段和一个角度获取一个规定延伸长度的直线段** ...原创 2020-05-08 11:12:58 · 4234 阅读 · 0 评论 -
halcon拓展系列—直线度算子straightness_independent_polarity
一、算子说明straightness_independent_polarity( : :rowCross,columnCross,rowLine1,columnLine1,rowLine2,columnLine2:rowMax,colMax,rowMin,colMin,straightMax,straightMin,straight)**-----------...原创 2020-05-07 12:23:18 · 2646 阅读 · 2 评论