Halcon图像处理实例
文章平均质量分 57
以在工作中或者生活中遇到的halcon图像处理实例,与大家进行分享,主要为了分享图像处理的方法与思路。
小邢同学
自动化设备上位机软件工程师、视觉处理算法工程师、上位机运动控制工程师。目前使用C#与MFC编写上位机,使用运动控制卡进行运动控制,工业相机做视觉处理;共同构成自动化机械设备的软件部分。
我的邮箱:2296776525@qq.com
我的QQ:2296776525
展开
-
学习halcon的论坛与书籍
论坛、培训 halcon学习网:http://www.ihalcon.com/鸟叔机器视觉:http://bbs.szvbt.com/forum.php 博客 韩兆新的博客园majunfuLife and Codingzhaojun的博客風韻無聲骑蚂蚁上高速的博客小马_xiaoLV2小新识图程序园-程序员的世界章柯渊的博客 注:介绍了halcon与MFC混合编程!新浪博客搜索halconFred、的窃窃私语机器视觉之家致力于数字图像、音视频、海量数据智能分析提取工程化应用zw版Halcon与dep转载 2021-02-01 11:09:06 · 8454 阅读 · 3 评论 -
halcon通过点拟合圆形,鼠标选点
原图源码read_image (Image, '0.bmp')dev_clear_window ()dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)dev_display (Image)binary_threshold (Image, Region, 'max_separability', 'dark', UsedThreshold)connection (Region, ConnectedRegions)sel原创 2020-12-30 16:53:29 · 1666 阅读 · 0 评论 -
使用halcon选择点拟合成直线求直线角度
原图源码read_image (Image, '0.bmp')dev_clear_window ()dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)dev_display (Image)binary_threshold (Image, Region, 'max_separability', 'dark', UsedThreshold)connection (Region, ConnectedRegions)sel原创 2020-12-30 14:35:26 · 7333 阅读 · 0 评论 -
halcon测试一张图片是否过曝或过暗
read_image (Image, '1.bmp')count_obj (Image, Number)if(Number<=0) return()endifmin_max_gray (Image, Image, 0, Min, Max, Range)if(Min<1) *图像过暗endifif(Max>254) *图像过曝endif原创 2020-12-30 10:24:50 · 1647 阅读 · 1 评论 -
halcon直线标定板对相机标定的效果评估(对比矫正前后、对比标定板矫正效果)
原图程序源码* gen_caltab (7, 7, 0.0025, 1/2.5, 'GB025标定板.descr', 'GB025标定板.ps')* Calibration 01: Code generated by Calibration 01* CameraParameters := [0.048105,-44.0585,8.31518e-006,8.3e-006,641.37,588.269,1280,1024]* CameraPose := [-0.000849522,-0.001原创 2020-12-30 10:21:17 · 633 阅读 · 0 评论 -
使用直线标定板进行相机畸变校正,并且进行9点标定(halcon)
直线标定板图片:机械吸头位置图片:处理代码read_image (Image, '直线标定板图片/Left201118140641772.bmp')get_image_size (Image, Width, Height)dev_close_window ()dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)dev_display (Image)* Image Acq原创 2020-12-30 10:02:42 · 2136 阅读 · 0 评论 -
金属圆柱求取倾斜角度
方法1: count_seconds (Seconds1) read_image (Image, '9_7750_f3d301de6764d94.jpg') get_image_size (Image, Width, Height) dev_open_window (0, 0, Width, Height, 'black', WindowHandle) dev_display (Image) rgb1_to_gray (Image,...原创 2020-12-30 09:42:08 · 727 阅读 · 0 评论 -
halcon对光源打光不均匀进行平场矫正
* Image Acquisition 01: Code generated by Image Acquisition 01*******预处理,生成RGB三通道的平场矫正的图像*1.绘制检测ROI*2.对检测的ROI进行平场矫正*3.平场矫正方法采用均值对减方法read_image (ImageWhite, 'C:/Users/Administrator/Desktop/平场矫正/Pic_2018_10_18_140633_blockId#639.bmp')draw_rectangle1原创 2020-12-30 09:33:15 · 5822 阅读 · 4 评论 -
halcon喷码字符识别
dev_close_window ()read_image (Image1, '9_30108_3c3894702192451.png')rgb1_to_gray (Image1, Image)get_image_size (Image, Width, Height)dev_open_window (0, 0, Width, Height, 'black', WindowHandle)dev_display (Image)mean_image (Image, ImageMean, 6, 6)d原创 2020-12-30 09:27:26 · 1427 阅读 · 0 评论 -
halcon找矩形顶点的一种方法
主程序:read_image (Image11, '11')*画仿射矩形dev_set_color ('green')draw_rectangle2 (3600, Row, Column, Phi, Length1, Length2)*生成仿射矩形xldgen_rectangle2_contour_xld (Rectangle, Row, Column, Phi, Length1, Length2)*找顶点工具(基于卡尺工具)peak (Image11, Row, Column, Phi原创 2020-12-30 09:22:11 · 3650 阅读 · 0 评论 -
halcon车刀崩边检测
list_files ('新建文件夹', 'files', Files)read_image (Image, Files[0])dev_close_window ()get_image_size (Image, Width, Height)dev_open_window (0, 0, Width/1.5, Height/1.5, 'black', WindowHandle)dev_set_draw ('margin')dev_set_colored (12)for Index:=0 to...原创 2020-12-30 09:13:25 · 2595 阅读 · 0 评论 -
多个圆点,鼠标选取两个,求两个点的距离,用于计算像素尺寸(halcon实现)
read_image (Image, 'C:/Users/22967/Desktop/晶圆找位置/0.bmp')dev_close_window ()dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)dev_display (Image)binary_threshold (Image, Region1, 'max_separability', 'dark', UsedThreshold)connection (Region1原创 2020-12-29 16:21:01 · 815 阅读 · 0 评论 -
机械手取料简单的标定与产品位置求取halcon模拟
PosCalInCamX:=100PosCalInCamY:=100CamCenterX:=200CamCenterY:=200CamPixSize:=1PosCalInMacX:=0PosCalInMacY:=0CamCenterXInMac:=(CamCenterX-PosCalInCamX)*CamPixSize+PosCalInMacXCamcenterYInMac:=-(CamCenterY-PosCalInCamY)*CamPixSize+PosCalInMacY原创 2020-12-29 15:42:50 · 755 阅读 · 0 评论 -
halcon使用点拟合圆形时候,点集顺序紊乱,不影响圆形拟合效果
read_image (Image, '截图20201226094342972.bmp')* Matching 01: BEGIN of generated code for model initializationset_system ('border_shape_models', 'false')* Matching 01: Obtain the model image* Matching 01: The image is assumed to be made available in the原创 2020-12-26 09:52:16 · 582 阅读 · 0 评论 -
halcon创建矩形模板时,让模板中心位于矩形中心
read_image (Image, 'Image_20201218105714642.jpg')dev_close_window ()dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)set_system ('border_shape_models', 'false')* Image Acquisition 01: Code generated by Image Acquisition 01list_files ('C:/U原创 2020-12-25 13:47:37 · 976 阅读 · 0 评论 -
halcon使用直线标定板,标定相机内参代码
read_image (Image, '直线标定板图片/Left201118140641772.bmp')get_image_size (Image, Width, Height)dev_close_window ()dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)dev_display (Image)* Image Acquisition 01: Code generated by Image Acquisition 01原创 2020-12-25 13:47:26 · 496 阅读 · 1 评论 -
圆形卡尺测量后创建模板
read_image (Image, 'QQ图片20201113111404.jpg')dev_close_window ()dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)dev_display (Image)rgb1_to_gray (Image,Image)****创建模板阶段*大致找内圆fast_threshold (Image, Region, 128, 255, 20)connection (Region,原创 2020-12-25 13:47:14 · 268 阅读 · 1 评论 -
一个halcon拟合直线的例子
read_image (hImage, 'E:/vs2012/halcon卡尺例程/白光碗光效果4.bmp')get_image_pointer1(hImage, Pointer, Type, Width, Height)*功能:获取一个通道的指针,得到HTuple Pointer, Type, CurWidth, CurHeightdev_set_draw('margin')dev_set_color ('green')************************************原创 2020-12-24 14:46:39 · 1210 阅读 · 0 评论 -
通过两个mark点确定某一个点的位置
read_image (Image0, '0.bmp')binary_threshold (Image0, Region, 'max_separability', 'dark', UsedThreshold)connection (Region, ConnectedRegions)fill_up (ConnectedRegions, RegionFillUp)select_shape_std (RegionFillUp, SelectedRegions, 'max_area', 70)red...原创 2020-12-24 14:45:01 · 2988 阅读 · 5 评论 -
使用标定板对相机位姿进行估计
使用标定板几个特定的点,来对相机相对标定板平面进行位姿估计。首先进行相机的畸变校正,之后同个各个标定板间的圆点距离进行位姿估计。gen_caltab (7, 7, 0.002, 0.5, 'C:/Users/22967/Desktop/新建文件夹/111.descr', 'C:/Users/22967/Desktop/新建文件夹/111.ps')* Calibration 01: Code generated by Calibration 01CameraParameters := [0.026原创 2020-12-24 14:39:56 · 2102 阅读 · 0 评论 -
模拟查找晶元的位置
通过模板匹配找到所有模板位置,并且当单击某个模板时,选中某个模板read_image (Image, 'C:/Users/22967/Desktop/晶圆找位置/0.bmp')dev_close_window ()dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)dev_display (Image)* draw_circle (3600, Row, Column, Radius)* gen_circle (Circle原创 2020-12-24 14:36:48 · 335 阅读 · 0 评论 -
一种查找图像中多个模板的方法
read_image(ModelImage,'300.bmp')draw_rectangle1(3600,row1,column1,row2,column2)gen_rectangle1(hoRect,row1,column1,row2,column2)reduce_domain(ModelImage,hoRect, hoReduce)create_ncc_model(hoReduce,'auto', -0.39, 0.79, 'auto','use_polarity',MtModelID)re原创 2020-12-24 14:33:03 · 396 阅读 · 0 评论 -
九点标定进行仿射变换halcon仿真代码
筛选出来的点得坐标已经显示在PxRow、PxColunm里边* Image Acquisition 01: Code generated by Image Acquisition 01read_image (Image, 'C:/Users/Administrator/Desktop/标定板图片.png')dev_close_window ()dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)dev_display (Imag原创 2020-12-24 14:31:46 · 1028 阅读 · 0 评论 -
瓶子个数计数halcon
文章目录处理要求处理方法一源码效果方法二源码效果 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 处理要求查找纸箱内瓶子个数处理方法一源码dev_clear_window ()dev_open_window (0, 0, 640*1.5, 512*1.5, 'black', WindowHandle)* Image Acquisition 01: Code generated by Image Acquisition 01list_file原创 2020-11-12 10:52:55 · 1440 阅读 · 6 评论 -
圆环划痕检测halcon
文章目录处理要求处理源码处理效果 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 处理要求查找圆环缺陷处理源码read_image (Image, 'F:/HALCON/圆环划痕处理/10_33221_ba4582f0e88ec79.bmp')rgb3_to_gray (Image, Image, Image, ImageGray)dev_close_window ()dev_open_window_fit_image (ImageGray, 0原创 2020-11-12 10:33:57 · 1038 阅读 · 1 评论 -
halcon圆环完整度检测
文章目录处理要求程序源码处理结果 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 处理要求查找好的圆环,检测圆环不良程序源码read_image (Image, 'F:/HALCON/圆环完整性检测/6.bmp')rgb1_to_gray (Image, GrayImage)var_threshold (GrayImage, RinRegion, 3, 3, 0.3, 5, 'light')connection (RinRegion, C原创 2020-11-12 10:26:03 · 1881 阅读 · 1 评论 -
圆环同心度测量halcon
文章目录处理要求处理源码处理结果 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 处理要求测量圆环同心度处理源码read_image (Image, 'C:/Users/22967/Desktop/图像Barrel 20201024/201024 手机行业 摄像头检测/Barrel 背光/Pic_2020_10_24_095951_blockId#20579.bmp')dev_close_window ()dev_open_window_fit_i原创 2020-11-12 10:14:38 · 2187 阅读 · 1 评论 -
圆环内外圆毛刺(凸起)缺口(凹陷)检测halcon
文章目录处理要求处理方法1方法一思路方法一halcon源码处理效果处理方法2方法二思路方法二halcon源码处理效果 博主写作不容易,孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 处理要求椭圆/圆环(产品易变形,为椭圆)内外圆毛刺(凸起)缺口(凹陷)检测。处理方法1方法一思路1、这是一个圆环产品检测,我们可以通过产品区域与标准圆环进行比较得出不良区域。2、为了避免误检、误判,我们可以通过区域筛选阈值偏移的方法滤除干扰区域,可以将标准圆环放大消除一些圆度导致干扰原创 2020-11-12 10:05:42 · 10641 阅读 · 6 评论 -
halcon模板匹配干扰边缘消除办法(最硬核方式)
目录halcon手绘形状匹配模板手绘形状匹配模板主要算子解析draw_nurbs 绘制平滑曲线参数解释create_shape_model_xld 使用XLD轮廓创建模板参数解释实例演示与解析实例代码展示与解析运行过程与处理展示读入图像绘制模板使用绘制的XLD创建模板查找模板 博主写作不容易,还是需要您鼓励 万水千山总是情 , 先点个赞行不行 最近做了个项目,遇到一个问题,就是在创建形状匹配模板时候,干扰太多,像麻绳一样。使用自定义区域去消除吧,因为轮廓长,边缘干扰距离近,操作原创 2020-09-03 11:48:24 · 6634 阅读 · 5 评论 -
扇形特征点提取
处理要求分别找出扇形左上角,左下角,右上角,右下角,最高点,下面弓形最高点原图halcon 处理程序read_image (Image14208259e49d7b1cf7c544, '544.bmp')rgb1_to_gray (Image14208259e49d7b1cf7c544, GrayImage)threshold (GrayImage, Region, 128, ...原创 2019-11-21 15:13:06 · 1196 阅读 · 0 评论 -
药片粘连物体的分割
药片粘连物体的分割要求:图片:处理程序:处理结果:要求:将药片分割,统计药片数量。不能使用模板匹配。图片:先看一下要处理的原图:处理程序:read_image (Image913810Afb2e0c19469408, 'C:/Users/Administrator/Desktop/10_34706_aeb91e22c49d25f.bmp')dev_set_draw ('margin...原创 2019-11-04 16:18:56 · 2554 阅读 · 4 评论 -
Halcon|读取3D相机点云数据
Halcon|读取3D相机点云数据最近发现很多小伙伴在使用Halcon处理3D工业相机扫描结果的时候遇到了“如何读取”的问题。一般的3D工业相机储存数据的格式有txt格式、tif格式、csv格式、ply格式、ptx格式、bin格式、obj格式等。txt...转载 2019-10-30 21:35:32 · 6085 阅读 · 11 评论 -
电路宽度测量halcon例子
read_image rgb1_to_gray threshold connection select_shape opening_circle get_image_size distance_transform threshold fill_up erosion_circle skeleton junctions_skeleton dilation_circle difference gen_contours_skeleton_xld union_adjacent_contours_xld smooth_原创 2019-10-24 18:15:24 · 1402 阅读 · 0 评论 -
halcon边缘检测的方法及各种方法的适用范围
一、边缘提取1、设置ROI兴趣区域2、快速二值化,并连接相邻区域。这样做的目的是进一步减少目标区域,通过二值化将目标区域大概轮廓提取出来3、提取最接近目标区域的轮廓常用函数有boundary,gen_contour_region_xld4、根据自己的需求提取需要的初步轮廓5、将初步提取的初步轮廓进行膨胀操作6、将膨胀后的区域和原图进行减操作(在这步之前有可能需要对原图进行高斯滤波)...转载 2019-10-22 15:05:47 · 2865 阅读 · 0 评论 -
halcon标定后改变世界坐标系参考点方法
halcon相机标定完成后,世界坐标系原点在标定板的中间,如果要自定义坐标系原点该如何操作如图:方法1使用仿射变换*pose_to_hom_mat3d (FinalPose, HomMat3D)*hom_mat3d_translate_local (HomMat3D, dx, dy, 0, HomMat3DTranslate)*hom_mat3d_rotate_local (HomM...原创 2019-10-12 16:13:40 · 4501 阅读 · 8 评论 -
使用halcon将一个圆上的点拟合成圆形并且求出圆心
我们在自动化贴装机标定过程中,需要计算吸头的旋转中心位置。我们一般使用的方法是使用模板匹配,做一个模板,吸头旋转一个角度寻找模板一次,通过多次旋转求取吸头的旋转中心。使用halcon实现public bool FitCircle(double[] X, double[] Y, out double RcX, out double RcY, out double R) { ...原创 2019-08-13 11:32:14 · 6959 阅读 · 1 评论 -
C#圆形卡尺测量程序基于halcon
halcon圆形卡尺测量C#代码源码废话不多说上源码觉得帖子有用给点个赞哈先来个效果图下边的是源码,自己新建一个文件粘贴进去,包含到您现在的项目 中。这串源码后边是使用方法。using System;using System.Collections.Generic;using System.Linq;using System.Text;using HalconDotNet; public class...原创 2019-09-02 15:59:00 · 4394 阅读 · 4 评论 -
如何判断一条曲线是否自己相交?
如何判断一条曲线是否自己相交?area_holes原创 2019-09-27 21:31:57 · 4241 阅读 · 0 评论 -
halcon相机标定及图像矫正(代码)
1 halcon相机标定和图像矫正对于相机采集的图片,会由于相机本身和透镜的影响产生形变,通常需要对相机进行标...转载 2019-10-02 18:41:54 · 3760 阅读 · 1 评论 -
不连续区域的拟合
如下图,需要把图中4个半圆分别连接起来我试过closing 和 dilation,下图中后三个还可以连接起来,但是第一个因为不连续地方较长,如果增大closing的值,会导致其它点 出现过度畸形。有没有能连接相邻选区的方法,可以指定距离的,图片:BaiduShurufa_2016-9-8_17-36-0.png 因为是新手,用到的方法有限,但是现在这个方法实测出错...原创 2019-11-14 08:34:06 · 916 阅读 · 0 评论