![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
halcon
mlxg99999
这个作者很懒,什么都没留下…
展开
-
halcon模板匹配结果row,column是否是质心坐标/将形状模板在模板创建位置显示/获取创建模板时工件位置坐标/将匹配的模板二维变换到实际位置/
一、读入一张图片二、故意设置偏心的ROI(模板)区域,由左上角轮廓图可知,创建时是将ROI区域的中心移动至原点,此时圆心处为*此时圆心为形状模板的质心位置,而非区域模板的中心位置area_center_xld (ModelContours, Area, Row1, Column1, PointOrder)gen_circle (Circle1, Row1, Column1, 3)dev_display (Circle1)三、将创建的模板移动至模板创建位置处显示(原点处轮廓可以消除,此处没消原创 2022-05-12 17:27:35 · 1789 阅读 · 1 评论 -
使用halcon助手进行单相机标定,发生结果焦距总不准确问题的解决方法
问题:在使用halcon标定助手进行单相机标定,多次标定的标定结果产生焦距误差较大且不稳定的问题,进而影响后续相机进行测量使用的问题解决方法:1、根据镜头视野大小选择合适大小的标定板,要保证进行标定的标定板大小占据视野的1/4-1/3,太小则不准确(halcon可以使用的标定板有 一是阵列标定板(玻璃材质),二是蜂窝标定板)2、进行标定时的图片绝对不能只使用同一水平面的图片,可以在能完成聚焦的前提下,在标定板下垫一些东西使某个角落抬高,然后旋转,获得各水平、角度图片。3、所有特征点应该全部落在图像范原创 2022-03-09 15:03:01 · 2261 阅读 · 2 评论 -
halcon14版本更新为halcon20.11调用引擎发生异常解决方法
因学习问题,版本更换为20.11发生引擎无法使用问题,解决方法问题原因:引用的dll版本不对,并且运行环境不同解决方法三步走:1、切换运行环境为642、删除原引用原因:原来版本为14,需要更换为20版本对应dll3、查找新版本dll(注意路径)最后将对应dll添加引用即可。...原创 2021-12-27 13:50:59 · 892 阅读 · 0 评论 -
halcon区域转图像用于create_shape_model创建模板
在对图像进行处理时,有时需要用到二值化处理,但经过阈值分割后的图像为区域类型。此时不可直接使用create_shape_model创建模板,需要转为Image。第一种,使用自带算子。Halcon中有三个区域转图像算子:region_to_bin、region_to_label、region_to_mean.region_to_bin(Region,BinImage,ForegroundGray,BackgroundGray,Width,Height)它将一个区域转化成一个二进制字节图像。给区域内的所原创 2021-05-31 11:13:51 · 1143 阅读 · 0 评论 -
计量模型学习4,获得选定的圆的像素坐标和半径,用于设置模板或其他处理
程序做到准确获得画得的原形区域的坐标和半径。步骤:1、运行2、在感兴趣的区域画两个圆框,圆框与要测圆应大致(尽量)重合。3、输出。哈哈,直接上代码:(去个前奏,去个尾巴没多少东西,自己看吧)dev_update_off ()read_image (Image,'C:/Users/连山人/Desktop/标定板图片/Im1.bmp')dev_close_window ()get_image_size (Image,Width, Height)dev_open_window_fit_imag原创 2021-04-09 08:38:43 · 227 阅读 · 0 评论 -
halcon计量模型学习3 单计量模型测量两圆间距离(轮廓拟合效果较好)
计量模型的优点就是拟合效果好、稳定,圆的数据获得输入与上篇线段间距离有一点差别,但大体相同,实验时仍为第一篇的图片dev_update_off ()*Im1 Image1 Image2read_image (Image,'C:/Users/连山人/Desktop/标定板图片/Image1.bmp')dev_close_window ()get_image_size (Image,Width, Height)dev_open_window_fit_image (Image, 0, 0, Wid原创 2021-04-08 19:58:03 · 491 阅读 · 0 评论 -
halcon计量模型学习2 单计量模型测量获得线段间距离(轮廓拟合效果较好)
在上一篇基础上改进为一个计量模型上进行线段距离测量。(上篇忘说,使用时在要测得的黑白临界线画两直线即可测得)同一张测试图片,如上篇。代码如下:dev_update_off ()*Im1 Image1 Image2read_image (Image,'C:/Users/连山人/Desktop/标定板图片/Image_01.bmp')dev_close_window ()get_image_size (Image,Width, Height)dev_open_window_fit_imag原创 2021-04-08 19:53:36 · 571 阅读 · 0 评论 -
halcon计量模型学习1 多计量模型测量线段间距离(轮廓拟合效果较好)
直接上图,和程序,目的为了测量两直线间距离,这里走了点弯路(一个计量模型就可以解决两线段间距离问题,看下一篇)dev_update_off ()read_image (Image,'C:/Users/连山人/Desktop/标定板图片/Im1.bmp')dev_close_window ()get_image_size (Image,Width, Height)dev_open_window_fit_image (Image, 0, 0, Width, Height, WindowHandle)原创 2021-04-08 19:46:19 · 1022 阅读 · 5 评论 -
halcon,什么是标定?怎么标定?标定获得了什么?标定能干什么?
以下为个人见解,如有错误,欢迎指出!什么是标定?总说标定标定,那么标定是什么呢?在我看来,标定是在halcon通过一系列的操作,最终获得相机内参与外参的过程!过程!内参(固定数值):相机焦距、像元之类的参数;外参(位姿):相机在空间位置的角度、位置。怎么标定?需要MVS软件,相机,标定板,使用halcon助手进行标定,具体完整步骤可以从bilibili网站学习。具体网址:B站单相机标定网址标定获得了什么?就像上面所说,标定就是为了获得相机内外参数。不同的相机、不同的位置,相机标定的结果不原创 2021-04-06 17:35:28 · 1580 阅读 · 0 评论 -
halcon,由标定后相机参数和位姿将像素坐标转为世界坐标方法
已由助手求得相机参数和位姿,并导入*相机参数CameraParameters := [0.00799988,0.875355,8.29871e-006,8.3e-006,639.981,512.001,1280,1024]*相机位姿CameraPose := [-0.00109876,-0.00271076,0.0524751,0.0267799,0.0293399,271.962,0]*算子,用于将此参数、位姿下的相机拍得的照片中的像素坐标转为世界坐标*(参数、位姿、图片像素坐标、转为毫米单位原创 2021-03-30 20:11:27 · 4200 阅读 · 3 评论 -
halcon-计量模型-得指定区域内线段长度
dev_update_off ()read_image (Image, 'C:/Users/连山人/Desktop/kongju1/三孔距离测量简单/pragram/Image_01.bmp')dev_close_window ()dev_open_window_fit_image (Image, 0, 0, 640, 640, WindowHandle)set_display_font (WindowHandle, 16, 'mono', 'true', 'false')dev_set_col.原创 2021-03-22 19:44:01 · 2020 阅读 · 0 评论 -
Halcon外部函数的创建、加载、与使用
点击链接https://blog.csdn.net/LonelyBHBH/article/details/112793510?spm=1001.2014.3001.5501转载 2021-02-01 20:08:49 · 2342 阅读 · 0 评论 -
halcon缺陷检测学习9划痕与合并划痕surface_scratch
*本程序展示了通过局部阈值和形态学后处理提取表面划痕*dev_update_off ()dev_close_window ()*第一步:获取形象read_image (Image, ‘surface_scratch’)get_image_size (Image, Width, Height)dev_open_window_fit_image (Image, 0, 0, Width, Width, WindowID)*新图形窗口。输入图形(Image)与窗口句柄(WindowID)se原创 2020-12-22 20:14:49 · 712 阅读 · 0 评论 -
halcon缺陷检测学习8褶皱inspect_shampoo_label_photometric_stereo
*本程序演示使用光度立体技术检查洗发水瓶的标签褶皱缺陷。*输入4张洗发水瓶标签的图片,光线来自不同方向。***初始化dev_close_window ()dev_update_off ()dev_open_window (0, 0, 640, 512, ‘black’, WindowHandle)*打开窗口set_display_font (WindowHandle, 14, ‘mono’, ‘true’, ‘false’)*设置字体Message := ‘用光度立体检查洗发水瓶的标签原创 2020-12-22 20:13:36 · 1058 阅读 · 0 评论 -
halcon缺陷检测学习7皮革·凹痕、磨损、刮伤缺陷inspect_leather_photometric_stereo
本程序演示了使用光度立体技术对皮革样品的检查。*输入4张皮革样本的图片,光线来自不同的方向。初始化dev_update_off ()dev_close_window ()dev_open_window (0, 0, 640, 480, ‘black’, WindowHandle)*打开窗口set_display_font (WindowHandle, 14, ‘mono’, ‘true’, ‘false’)*设置字体Message := ‘用光度立体法检查皮革样本’disp_..原创 2020-12-22 20:12:26 · 1393 阅读 · 0 评论 -
halcon缺陷检测学习6地板缺陷inspect_flooring_photometric_stereo
*本项目演示了用光度立体技术检查地板孔洞缺陷。*输入的4张图片来自地板面板,光线来自不同的方向**初始化dev_close_window ()dev_update_off ()dev_open_window (0, 0, 640, 512, ‘black’, WindowHandle)*打开图形窗口,定义参考点与大小set_display_font (WindowHandle, 14, ‘mono’, ‘true’, ‘false’)*定义窗口显示文字格式Message := ‘In原创 2020-12-22 20:11:26 · 349 阅读 · 0 评论 -
halcon缺陷检测学习5孔洞缺陷inspect_blister_photometric_stereo
*光度立体技术检查药物背面的水泡是否破损。**思路为:1.读入多张从不同角度拍摄的药片包装的背面图像2.应用光度立体法得到反照率图像和表面梯度图像3.使用之前得到的表面梯度,计算表面的高斯曲率,得到高斯曲率图像4. 对高斯曲率图像进行预处理和Blob分析,从而得到缺陷区域5. 在图像中标记缺陷区域初始化dev_close_window ()dev_update_off ()dev_open_window (0, 0, 512, 512, ‘black原创 2020-12-22 20:10:18 · 1002 阅读 · 0 评论 -
halcon缺陷检测学习4划痕缺陷find_scratches_bandpass_fft
**这个程序说明如何在一个不均匀的照明表面通过滤波在频域检测缺陷(划痕)。*首先,创建一个合适的带通滤波器。*然后对输入图像进行傅里叶变换,在频域进行滤波,增强高频信息。*最后将其转换回空间域,对增强后的缺陷进行形态学后处理。**dev_update_off ()dev_close_window ()*‘surface_scratch’read_image (Image, ‘C:/Users/连山人/Desktop/que/que01’)invert_image (Image, Imag原创 2020-12-22 20:09:08 · 922 阅读 · 2 评论 -
halcon缺陷检测学习3暗斑检测detect_mura_defects_texture
这个例子展示了如何检测高纹理图像中的色差不均匀缺陷实现高纹理图像中缺陷的检测(黑色)。缺陷的特征是暗斑。因此,通过从原始图像中减去估计的背景光照,缺陷变得更加明显dev_close_window ()初始化dev_update_off ()Path := ‘lcd/mura_defects_texture_’*图片文件路径read_image (Image, Path + ‘01’)get_image_size (Image, Width, Height)dev_open_windo.原创 2020-12-22 20:07:27 · 2708 阅读 · 0 评论 -
halcon缺陷检测学习2图像色差缺陷检测detect_mura_defects_blur
简介:检测暗色图像中的色差故障,展示了如何检测模糊图像中的不均匀色差缺陷,选择缺陷·为·黑色部分初始化dev_close_window ()dev_update_off ()*这一句包含如下三个算子:*dev_updata_pc(‘off’)关闭更新程序计数器*dev_updata_var(‘off’)关闭更新变量窗口*dev_updata_window(‘off’) 关闭更新图像窗口Path := ‘lcd/mura_defects_blur_’*path道路,定义图片所在路径..原创 2020-12-22 20:05:54 · 2267 阅读 · 0 评论 -
输出文本算子disp_message
原型:disp_message( : : WindowHandle, String, CoordSystem, Row, Column, Color, Box : )**功能:**此过程将在某图形窗口的制定位置编写并显示一条文本消息。意义1.文本所要显示窗口的句柄(WindowHandle);2.所要显示的文本字符串内容,“ \ n”将被解释为换行符,可以直接引用程序中字符串变量(String);3.定义文本位置的坐标系(CoordSystem):默认’window’,有’window’和’ima原创 2020-11-29 10:14:06 · 4331 阅读 · 0 评论 -
阈值分割 Threshold(阈值)算子
Threshold(阈值)函数功能:用于全局阈值分割图像,获取像素值介于MinGray和MaxGray的区域也可以说剔除图像内像素值高于一定值或低于一定值的像素点。函数原型: threshold(Image : Region : MinGray, MaxGray : )参数输入图像,需要处理的图像Image (input_object)输出图像,表示被分割后的图像Region (output_object)输入变量:分割时最低灰度值的阈值MinGray (input_control)默认原创 2020-11-16 10:27:44 · 4204 阅读 · 0 评论