Halcon表面划伤检测实例
halcon边缘检测例子
halcon边缘检测例子Halcon是一款功能强大的机器视觉库,其边缘检测功能可以帮助我们在图像中找出物体的边缘,从而实现目标检测和分割。
下面将以Halcon边缘检测例子为题,列举一些常用的边缘检测方法和技巧。
一、Sobel算子边缘检测Sobel算子是一种常用的边缘检测算法,它通过计算图像的一阶导数来寻找边缘。
Halcon中可以使用函数SobelA来实现Sobel算子的边缘检测,可以设置不同的参数来调整检测结果的灵敏度。
二、Canny算子边缘检测Canny算子是一种经典的边缘检测算法,它结合了高斯滤波、梯度计算和非最大值抑制等步骤,可以得到更准确的边缘检测结果。
Halcon中可以使用函数EdgesSubPix来实现Canny算子的边缘检测,可以设置不同的参数来调整检测结果的质量和灵敏度。
三、Laplacian算子边缘检测Laplacian算子是一种基于二阶导数的边缘检测算法,它可以检测出图像中的高频变化,从而找到边缘。
Halcon中可以使用函数Laplace来实现Laplacian算子的边缘检测,可以设置不同的参数来调整检测结果的灵敏度。
四、Roberts算子边缘检测Roberts算子是一种简单但有效的边缘检测算法,它通过计算图像中像素点的灰度差来判断是否存在边缘。
Halcon中可以使用函数RobertsA来实现Roberts算子的边缘检测,可以设置不同的参数来调整检测结果的灵敏度。
五、Prewitt算子边缘检测Prewitt算子是一种基于一阶导数的边缘检测算法,它通过计算图像中像素点的灰度变化来寻找边缘。
Halcon中可以使用函数PrewittA来实现Prewitt算子的边缘检测,可以设置不同的参数来调整检测结果的灵敏度。
六、Scharr算子边缘检测Scharr算子是一种改进的Sobel算子,它可以更好地抵抗噪声干扰,提供更准确的边缘检测结果。
Halcon中可以使用函数ScharrA来实现Scharr算子的边缘检测,可以设置不同的参数来调整检测结果的灵敏度。
halcon目标检测案例
halcon目标检测案例Halcon是一款强大的机器视觉软件,拥有丰富的图像处理和分析功能。
其中,目标检测是Halcon的重要功能之一,能够帮助用户实现对图像中目标的自动检测和定位。
下面列举了十个关于Halcon目标检测的案例,以展示其在实际应用中的优势和灵活性。
1. 工业品质检测:在工业生产线上,Halcon可以通过目标检测技术实现对产品外观缺陷的检测,如表面瑕疵、颜色偏差等。
通过训练算法,Halcon能够快速准确地检测出产品中的异常情况,提高生产效率和产品质量。
2. 药品包装检测:在药品生产过程中,Halcon可以应用于药品包装的检测和识别。
通过目标检测算法,Halcon可以检测药品包装盒上的标签和二维码等信息,确保药品的包装符合规定标准,从而保证药品的质量和安全性。
3. 路标识别:在智能交通系统中,Halcon可以应用于路标的识别和检测。
通过训练模型,Halcon能够准确地识别出道路上的各种标识,如交通信号灯、限速标志等,为智能驾驶系统提供准确的环境感知能力。
4. 农作物病害检测:在农业领域,Halcon可以应用于农作物病害的检测和识别。
通过图像处理和机器学习算法,Halcon能够自动识别出农作物叶片上的病害,提前预警农民并采取相应的措施,保证农作物的健康生长。
5. 人脸识别:在安防领域,Halcon可以应用于人脸识别系统的开发。
通过目标检测和特征提取算法,Halcon能够对图像中的人脸进行准确的识别,实现对人员身份的自动判断,提高安全性和便利性。
6. 垃圾分类:在环境保护领域,Halcon可以应用于垃圾分类系统的开发。
通过目标检测和图像识别算法,Halcon能够自动识别垃圾中的有害物质,并将其分离出来,实现自动化的垃圾分类,提高垃圾处理的效率和准确性。
7. 医学影像分析:在医疗领域,Halcon可以应用于医学影像的分析和识别。
通过目标检测和图像分割算法,Halcon能够自动识别医学影像中的病变区域,并提供准确的测量和分析结果,帮助医生进行疾病的诊断和治疗。
halcon表面纹理检测
Halcon 表面纹理检测案例* This program demonstrates how to detect small texture* defects on the surface of plastic items by using the fast* fourier transform (FFT).* 检测塑料物品表面的小纹理缺陷* First, we construct a suitable filter using Gaussian* filters.创立一个滤波器* Then, the images and the filter are convolved* by using fast fourier transforms.* 图像经过傅里叶变换后,滤波,再经过反变换* Finally, the defects* are detected in the filtered images by using* morphology operators.* 通过形态学检测出缺陷* Initializationsdev_update_off ()dev_close_window ()read_image (Image, 'plastics/plastics_01')get_image_size (Image, Width, Height)dev_open_window (0, 0, Width, Height, 'black', WindowHandle) set_display_font (WindowHandle, 14, 'mono', 'true', 'false')dev_set_draw ('margin')dev_set_line_width (3)dev_set_color ('red')** Optimize the fft speed for the specific image size* 根据具体的图像尺寸优化傅里叶变换的速度(有此函数)optimize_rft_speed (Width, Height, 'standard')** Construct a suitable filter by combining two gaussian* filtersSigma1 := 10.0Sigma2 := 3.0gen_gauss_filter (GaussFilter1, Sigma1, Sigma1, 0.0, 'none', 'rft', Width, Height)gen_gauss_filter (GaussFilter2, Sigma2, Sigma2, 0.0, 'none', 'rft', Width, Height)sub_image (GaussFilter1, GaussFilter2, Filter, 1, 0)** Process the images iterativelyNumImages := 11for Index := 1 to NumImages by 1** Read an image and convert it to gray valuesread_image (Image, 'plastics/plastics_'+Index$'02')rgb1_to_gray (Image, Image)* RGB图-> gray图* Perform the convolution in the frequency domain* 频域图像处理三步,第二步将频域图像和高斯滤波器做卷积rft_generic (Image, ImageFFT, 'to_freq', 'none', 'complex', Width)convol_fft (ImageFFT, Filter, ImageConvol)rft_generic (ImageConvol, ImageFiltered, 'from_freq', 'n', 'real', Width)** Process the filtered imagegray_range_rect (ImageFiltered, ImageResult, 10, 10)*做一个矩形模板,模板处理图像10*10模板min_max_gray (ImageResult, ImageResult, 0, Min, Max, Range)threshold (ImageResult, RegionDynThresh, max([5.55,Max*0.8]), 255)connection (RegionDynThresh, ConnectedRegions)select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 4, 99999)union1 (SelectedRegions, RegionUnion)closing_circle (RegionUnion, RegionClosing, 10)connection (RegionClosing, ConnectedRegions1)select_shape (ConnectedRegions1, SelectedRegions1, 'area', 'and', 10, 99999)area_center (SelectedRegions1, Area, Row, Column)* Display the resultsdev_display (Image)Number := |Area|if (Number)gen_circle_contour_xld (ContCircle, Row, Column, gen_tuple_const(Number, 30), gen_tuple_const(Number, 0), gen_tuple_const(Number, rad(360)), 'positive', 1)ResultMessage := ['Not OK', Number + ' defect(s) found']Color := ['red','black']dev_display (ContCircle)elseResultMessage := 'OK'Color := 'forest green'endifdisp_message (WindowHandle, ResultMessage, 'window', 12, 12, Color, 'true') if (Index#NumImages)disp_continue_message (WindowHandle, 'black', 'true')stop ()endifendfor* this example shows how to detect mura defects* in blurred images 模糊图像中检测污斑* LCD中的污斑缺陷检测dev_close_window ()dev_update_off ()Path := 'lcd/mura_defects_blur_'**定义一个字符串常量,此常量接上字符串索引构成文件名称read_image (Image, Path+'01')get_image_size (Image, Width, Height)dev_open_window_fit_size (0, 0, Width, Height, 640, 480, WindowHandle)set_display_font (WindowHandle, 14, 'courier', 'true', 'false')dev_set_draw ('margin')dev_set_line_width (3)dev_set_color ('red')ScaleFactor := 0.4for f := 1 to 3 by 1read_image (Image, Path+f$'.2i')decompose3 (Image, R, G, B)* correct side illuminationrft_generic (B, ImageFFT, 'to_freq', 'none', 'complex', Width)gen_gauss_filter (ImageGauss, 100, 100, 0, 'n', 'rft', Width, Height)convol_fft (ImageFFT, ImageGauss, ImageConvol)rft_generic (ImageConvol, ImageFFT1, 'from_freq', 'none', 'byte', Width)**傅里叶变换,滤波,反变换sub_image (B, ImageFFT1, ImageSub, 2, 100)**图像相减* perform the actual inspectionzoom_image_factor (ImageSub, ImageZoomed, ScaleFactor, ScaleFactor, 'constant')*avoid border effects when using lines_gauss()*避免边界干扰get_domain (ImageZoomed, Domain)erosion_rectangle1 (Domain, RegionErosion, 7, 7)**腐蚀掉边缘,消除边界干扰,缩小ROIreduce_domain (ImageZoomed, RegionErosion, ImageReduced)**缩小ROIlines_gauss (ImageReduced, Lines, 5, 0.02, 0.3, 'dark', 'true', 'gaussian', 'true')**找线hom_mat2d_identity (HomMat2DIdentity)hom_mat2d_scale_local (HomMat2DIdentity, 1/ScaleFactor, 1/ScaleFactor, HomMat2DScale)affine_trans_contour_xld (Lines, Defects, HomMat2DScale)*dev_display (Image)dev_display (Defects)if (f < 3)disp_continue_message (WindowHandle, 'black', 'true')stop ()endifendfor。
Halcon表面划伤检测实例
Halcon表面划伤检测实例*关闭活动图形窗口dev_close_window ()* 在程序执行中指定输出行为为off。
dev_update_window ('off')* ***** step: acquire image 步骤:获取图像* ****读入文件名为'surface_scratch' 的图像到Imageread_image (Image, 'surface_scratch')get_image_size (Image, Width, Height)*打开一个和Image宽高比一致的图像窗口dev_open_window_fit_image (Image, 0, 0, Width, Width, WindowID) *设置窗口字体大小为12,字体类型为Courier,粗体不倾斜字体。
set_display_font (WindowID, 12, 'Courier', 'true', 'false')*设置填充模式为'margin'dev_set_draw ('margin')*定义输出轮廓线宽为4dev_set_line_width (4)*显示Image到窗口dev_display (Image)*WindowID窗口使用黑色字体在一个方框内显示按"F5"继续运行字体,并注册F5消息处理disp_continue_message (WindowID, 'black', 'true')stop ()* ***** step: segment image 步骤:图像分割* ***** -> using a local threshold 使用局部阈值* 对Image进行7*7均值滤波mean_image (Image, ImageMean, 7, 7)********************************************************************* *得到的图像为:****用均值滤波图像作为二值化阈值图像,返回小于灰度值小于该点阈值-5的图像。
halcon 玻璃外观检测的常用算法
一、概述随着科技的不断发展,工业生产中对产品质量的要求也越来越高。
而玻璃制品作为一种常见而重要的工业产品,在制造过程中需要进行外观检测以确保产品质量。
而halcon作为一种常用的工业视觉处理软件,其在玻璃外观检测中的常用算法备受关注。
本文将对halcon玻璃外观检测中的常用算法进行介绍与分析。
二、灰度变换灰度变换是halcon玻璃外观检测中常用的一种算法。
该算法通过改变图像的亮度、对比度等参数来提取目标物体的特征,从而实现对玻璃外观的检测和分析。
通过对图像进行灰度变换,可以增强图像的对比度和清晰度,使得玻璃表面的瑕疵等问题更容易被检测出来。
三、边缘检测在halcon玻璃外观检测中,边缘检测也是一种常用的算法。
通过对图像进行边缘检测,可以提取出玻璃表面的边缘信息,从而实现对各种缺陷和瑕疵的检测。
边缘检测可以有效地识别出玻璃表面的不平整、划痕等问题,为后续的检测和分析提供了重要的依据。
四、形态学处理形态学处理是halcon玻璃外观检测中的另一种常用算法。
通过对玻璃图像进行膨胀、腐蚀、开运算、闭运算等形态学处理,可以对玻璃表面的各种缺陷进行更加精确和全面的检测。
形态学处理能够有效地分离出玻璃的各个部分,识别出各种不规则的形状和缺陷,为后续的分析和判断提供了重要的依据。
五、模板匹配在halcon玻璃外观检测中,模板匹配也是一种常用的算法。
通过建立所需检测的模板,并将其与待检测图像进行匹配,可以实现对玻璃表面的各种缺陷和瑕疵的快速检测和识别。
模板匹配能够有效地识别出玻璃表面的各种特定形状和图案,对生产中的问题进行及时排查和处理提供了重要的帮助。
六、光学字符识别光学字符识别是halcon玻璃外观检测中的另一种常用算法。
通过对玻璃图像中的字符和标识进行提取和识别,可以实现对产品标识的检测和溯源。
光学字符识别能够有效地识别出玻璃表面的各种标识和文字信息,帮助企业实现对产品的快速分类和管理,提高生产效率和产品质量。
halcon标定例子
halcon标定例子Halcon标定是一种用于机器视觉系统中相机和图像采集设备的校准方法。
通过标定,可以获得相机的内部参数和外部参数,从而提高图像处理和计算机视觉系统的精度和稳定性。
下面是十个关于Halcon标定的例子:1. Halcon标定的基本原理Halcon标定是通过采集一系列已知位置和姿态的标定板图像,从而计算出相机的内部参数和外部参数。
这些参数可以用于图像校正、三维重建等应用。
2. Halcon标定的步骤Halcon标定的主要步骤包括:选择标定板、采集标定图像、提取标定板角点、计算相机参数、优化标定结果等。
3. Halcon标定的精度评估Halcon标定的精度可以通过重投影误差来评估,即将标定板上的角点投影到图像上,然后计算投影点与实际角点之间的距离。
4. Halcon标定的误差来源Halcon标定的误差来源主要包括相机畸变、标定板姿态误差、标定板角点检测误差等。
这些误差会影响标定结果的精度。
5. Halcon标定的应用场景Halcon标定广泛应用于机器视觉系统中的目标检测、定位、测量等任务。
通过标定,可以提高系统的测量精度和稳定性。
6. Halcon标定的优化方法Halcon标定可以通过优化算法来提高标定结果的精度。
常用的优化方法包括非线性最小二乘法、Bundle Adjustment等。
7. Halcon标定的注意事项在进行Halcon标定时,需要注意选择合适的标定板、保证标定板的平整度、正确设置相机参数等。
8. Halcon标定的挑战和解决方案Halcon标定在实际应用中可能面临光照变化、相机运动等挑战。
针对这些问题,可以采用多视角标定、动态标定等方法来解决。
9. Halcon标定的未来发展趋势随着机器视觉技术的不断发展,Halcon标定也在不断演进。
未来的发展趋势包括更精确的标定方法、更高效的标定算法等。
10. Halcon标定的局限性虽然Halcon标定可以提高机器视觉系统的精度和稳定性,但仍然存在一些局限性,如对标定板的要求较高、对标定图像的要求较严格等。
基于Halcon的圆形陶瓷片表面缺陷检测方法
第39卷第2期2021年3月佛山科学技术学院学报(自然科学版)Journal of Foshan University(Natural Sciences Edition)Vol.39No.2Mar.2021文章编号:1008-0171(2021)02-0028-05基于Halcon的圆形陶瓷片表面缺陷检测方法贺潇苏彩红仔,詹宁宙2,林军帆-梁智宇1(1.佛山科学技术学院机电工程与自动化学院,广东佛山528000;2.佛山精视自动化科技有限公司,广东佛山528000)摘要:针对圆形陶瓷片的产品特性以及厂家检测的需要,设计了一种基于Halcon平台的表面缺陷分区检测算法。
通过前期预处理中的灰度化、图像增强处理以及ROI的选取后,再针对不同缺陷分别采用阈值分割、极坐标转换及边缘提取等方法获取产品缺陷区域并进行检测。
实验结果证明本检测算法具有较高的准确性,并能较好地满足实际检测要求。
关键词:缺陷检测;Halcon;阈值分割;边缘提取中图分类号:TP391.41;TQ174文献标志码:A圆形陶瓷片在生产过程中,由于生产工艺和生产环境的影响,会出现一定比例的缺陷产品。
如果不能及时筛选出来,对于产品后续的使用会存在一定的安全隐患。
目前针对圆形陶瓷片的缺陷筛选主要是人工目检,而人工目检存在检测效率低、人工成本高等缺点。
近年来,随着图像处理技术和机器视觉技术的不断发展,出现了越来越多的机器视觉检测来代替人工目检的情况。
Halcon是由德国MVTec公司研发的机器视觉图像处理软件,提供了全面的图像处理函数库。
本文基于Halcon算法平台,主要研究了圆形陶瓷片表面的气泡、斑点、粉尘和炸裂等缺陷的图像处理算法。
1缺陷分类及检测流程圆形陶瓷片在生产线上通过面阵CCD进行图像采集,在Halcon软件上进行处理、分析和检测[1]o 圆形陶瓷片的表面缺陷主要包括气泡、斑点、粉尘和炸裂4种,缺陷特点及分类如表1所示。
表1缺陷分类及特点缺陷类型缺陷出现位置缺陷特点气泡外环白色缺损,区域图像灰度比周围背景图像大10以上斑点大内环黑色缺损,区域图像灰度比周围背景图像小15以上粉尘大内环边缘黑色缺陷,区域内连续多个面积大于10的黑色缺陷炸裂内孔边缘白色缺损,内孔边缘出现的裂缝,区域裂缝长度大于5圆形陶瓷片缺陷检测流程如图1所示,检测步骤主要包括:1)利用图像灰度化和增强技术,将原始图片进行预处理;2)利用阈值分割的方法提取图片中各类缺陷对应的感兴趣区域ROI(Region of收稿日期:2020-06-10基金项目:广东省普通高校科研资助项目(2019KZDZX1034)作者简介:贺潇(1996-),男,湖南南县人,佛山科学技术学院硕士研究生。
基于HALCON的刹车片尺寸和表面缺陷检测系统
t e r i s t i c s o f t h e mo r p h o l o y g a n d g r a y v a l u e o f t h e b r a k e,a n d u s e s e d g e d e t e c t i o n a n d l o c a l t h r e s h o l d s e g me n t a t i o n a l g o —
测 系统 该 系统充分利 用了刹车片的形 态学和灰度值特征 , 运 用边缘提 取和局 部 阈值 分割算 法 , 定位 出刹车 片外边缘 , 最终计算 出刹车片尺寸 , 并标记 出缺 陷位 置。通过 对 2 0 0张图像 样本进 行测试 , 检测 系统将尺 寸误差控 制在 0 . 4 7 %, 刹
S h a n g h a i 2 0 0 0 9 3,C h i n a )
Ab s t r a c t A d e t e c t i o n s y s t e m b a s e d o n ma c h i n e v i s i o n s o f t wa r e n a me d HAL CON i s p r o p o s e d i n t h e p a p e r i n f a c e o f t h e l o w e ic f i e n c y o f t h e s i z e a n d i mp e fe r c t i o n d e t e c t i o n o f t h e b r a k e .T h e s y s t e m ma k e s f u l l u s e o f t h e e h a r a c —
r i t h m .Th e s y s t e m l o c a t e s p o s i t i o n o f ma r g i n.c a l c u l a t e s t h e s i z e o f b r a k e a n d ma r k s t h e l o c a t i o n o f s u r f a c e d e f e c t f i . n a l l y 。 Ac c o r d i n g t o t h e r u n n i n g r e s u l t o f t h e s y s t e m wi t h t h e i n p u t o f 2 0 0 ig f u r e s a mp l e s ,i t h a s a v e r yh i g h a c c u r a c y
基于Halcon_的手机背板表面缺陷快速检测方法
第37卷第1期湖南理工学院学报(自然科学版)V ol. 37 No. 1 2024年3月 Journal of Hunan Institute of Science and Technology (Natural Sciences) Mar. 2024基于Halcon的手机背板表面缺陷快速检测方法朱志鹏, 陈腾飞, 廖杜杰, 张国云, 赵林(三维重建与智能应用技术湖南省工程研究中心, 湖南岳阳 414006;湖南理工学院信息科学与工程学院, 湖南岳阳 414006)摘要:针对人工检测手机背板表面缺陷效率低、成本高等问题, 提出一种基于Halcon的手机背板表面缺陷检测方法. 该方法可快速定位并校正光照不均、位置偏差等成像不一的背板图像, 同时运用二进制大型对象分析、形态学处理和模板匹配等算法实现对手机背板表面缺陷图像的检测与分类. 针对logo区域和非logo区域, 该检测系统采用不同的策略来检测缺陷. 缺陷分类环节利用Halcon中的分类工具, 结合事先定义的特征集合, 根据其形状、大小和颜色等特征进行分类, 以便后续的品质监控和反馈. 一方面对120张缺陷图片进行检测, 检出113张缺陷图片, 单张图片平均耗时约500 ms, 检出率达94%以上; 另一方面对800张同样条件下的无缺陷图片进行测试, 检出25张误判的图片, 即误判率约3%. 实验表明, 该方法具有较高的准确性和实用性, 相较于传统的人工检测, 可大幅度提升生产效率和检测精度, 有效控制企业人力成本. 该方法已在工业生产线实际应用.关键词:Halcon; 缺陷检测; 手机背板; 图像处理中图分类号: TP391 文章编号: 1672-5298(2024)01-0020-07Surface Defect Detection Rapid Method ofMobile Phone Backplane Based on Halcon ZHU Zhipeng, CHEN Tengfei, LIAO Dujie, ZHANG Guoyun, ZHAO Lin (Hunan Engineering Research Center of 3D Reconstruction and Intelligent Application Technology, Yueyang 414006, China;School of Information Science and Engineering, Hunan Institute of Science and Technology, Yueyang 414006, China) Abstract:Aiming at the problems of low efficiency and high cost of manually detecting defects on the surface of mobile phone backplane, a method based on Halcon was proposed for surface defects detection of mobile phone backplane. The method can quickly locate and correct the backplane images with different images such as uneven illumination and position deviation. At the same time, the algorithm of binary large object analysis, morphological processing and template matching was used to detect and classify the surface defect images of mobile phone backplane. For logo area and non-logo area, the detection system adopts different strategies to detect defects. The defect classification process utilizes the classification tool in Halcon, combined with the predefined feature set, according to its shape, size, color and other characteristics, so as to facilitate subsequent quality monitoring and feedback. On one hand, through the detection experiment of 120 defect diagrams, 113 defect diagrams were detected, and the average time of a single image was about 500 ms, and the detection rate was more than 94%. On the other hand, 800 non-defect pictures were tested under the same conditions, and 25 misjudgments were detected, that is, the misjudgment rate was 3%. The experiment shows that the method has high accuracy and practicability, compared with the traditional manual detection, can greatly improve the production efficiency and detection accuracy, and effectively control the labor cost of enterprises. At the same time, the method has been applied in industrial production lines.Key words: Halcon; defect detection; mobile phone backplane; image processing0 引言随着移动通信技术的快速发展, 智能手机已成为现代社会不可或缺的一部分. 而手机背板作为智能手机的外壳, 不仅承担着保护内部电路和组件的功能, 同时也具备提升美观和质感的重要作用. 然而, 在手机背板的制造过程中, 由于材料、工艺等方面的不确定因素, 不可避免地会产生各种各样的缺陷[1]. 准确、高效地检测手机背板的缺陷, 对于保证产品质量、提高生产效率以及增强品牌竞争力具有重要意义. 而Halcon作为一种先进的机器视觉软件系统, 它提供了大量的视觉处理函数, 支持各种图像采集、处理、收稿日期: 2023-02-15基金项目: 湖南省研究生科研创新项目(CX20221237, CX20221212)作者简介: 朱志鹏, 男, 硕士研究生. 主要研究方向: 机器视觉、人工智能通信作者: 赵林, 男, 博士, 副教授. 主要研究方向: 图像信息处理、智能控制第1期 朱志鹏, 等: 基于Halcon 的手机背板表面缺陷快速检测方法 21 分析、识别和检测任务[2].传统的手机背板表面缺陷检测方法主要是人工检测, 该方法耗时耗力且效率低下, 无法满足大规模生产的质量控制需求[3]. 此外, 人工检测容易受到操作人员主观判断的影响, 导致检测结果的不一致性和可重复性差[4]. 随着计算机视觉技术、图像处理技术以及人工智能的发展, 自动化视觉检测系统能够提供一个高效、准确并且客观的解决方案, 以确保产品质量和提升生产效率[5].本文提出一种基于Halcon 的手机背板表面缺陷检测方法. 通过结合高分辨率成像技术和先进的图像处理算法, 尝试解决实际工业生产线上的手机背板缺陷快速检测问题. 先提出包含图像预处理、特征提取、模板匹配以及缺陷分类等多个步骤的综合解决方案[6], 然后在此基础上开展一系列实验, 验证所提方法的有效性和实用性, 并探讨在实际应用时的潜在挑战及可能的解决策略.1 手机背板表面缺陷检测系统总体方案根据手机背板表面缺陷快速检测的需求构建一个综合性系统, 一方面包括硬件部分对图像的获取和采集, 另一方面包括软件部分对图像的处理以及对缺陷的识别和分类. 旨在通过优化硬件配置和软件算法, 实现自动化的高性能缺陷检测, 从而为手机背板检测提供一个可靠的方案.1.1 机械硬件结构手机背板缺陷检测机械结构包括提取背板的吸盘及气缸、工业相机、光源、工控机、图像采集模块、图像处理模块等. 当机台启动时, 载有手机背板的托盘被送入机台指定位置, 吸盘提取背板并放置在相机下方进行图像采集, 通过相机、光源、传感器等图像采集单元将图像信号传输到工控机上[7]. 工控机上的图像处理模块利用Halcon 中的图像处理算法对背板进行图像定位、图像增强等预处理操作, 然后根据预定的手机背板表面缺陷检测算法判断待检品是否存在缺陷, 最后由运控模块将检测出的OK 、NG 产品分类放置. 手机背板缺陷检测系统如图1所示.1.2 图像处理软件结合VS 2022集成开发环境, 使用图像处理开源库研发, 实现基于Halcon 的手机背板表面缺陷快速检测. Halcon 的开发接口支持几乎所有的工业相机和框架抓取卡, 功能覆盖数学运算、图像滤波、形态学分析、图像校正、颜色处理和几何及模式识别等计算任务. 手机背板的表面缺陷主要包括脏污、划伤、腐蚀点、水渍等. 手机背板的常见表面缺陷如图2所示.图像采集模块载有手机背板的托盘图1 手机背板缺陷检测系统 图2 手机背板常见表面缺陷手机背板缺陷检测流程如图3所示. 检测的主要步骤包括: (1)图像采集模块采集图像传输至图像处理模块; (2)运用图像定位、通道转换、图像增强和感兴趣区域(Region Of Interest, ROI)提取进行图像预处理;(3)将手机背板图像非logo 区域和logo 区域分开; (4)对不同区域进行检测, 并根据各缺陷特征将识别的缺22 湖南理工学院学报(自然科学版) 第37卷进而提取到特定特征点(角点、边缘、logo等)的位置信息, 后续在对齐的图像上应用相应的缺陷检测算法. 图4为部分特征点提取结果展示.2.2 通道转化现场缺陷检测机台CCD相机采集的图像为4096像素×4096像素RGB三通道的彩色图像. 为简化后续图像处理与分析, 并降低计算复杂度, 可将三通道图像转换成单通道图像, 对于特定问题只提取某个通道作为灰度图像. 该环节应尽可能防止手机背板部分颜色信息的丢失, 故按照Halcon中decompose3算子将输入的RGB图像分解为红、绿、蓝三个通道的图像. 图5为通道转换后的相应效果图. 在RGB图像中, 每个像素的颜色由红、绿、蓝三个通道的亮度值确定, 其亮度值范围为0~255, 0最暗, 255最亮. decompose3算子将每个像素的RGB值分别存储在三个通道图像中, 将RGB图像转换为三个独立的8位灰度图像, 每个灰度图像对应一个通道. 分解后的图像, 可根据后期实际项目情况达到特定的图像效果和任务需求.输入:Image输出:Image1输出:Image2输出:Image3图4 图像特征点区域及其坐标信息图5 通道转换效果2.3 图像增强实际检测流水线中采集的手机背板图像数量众多, 且图像易受外界传感器、环境或者传输影响, 带来图3 手机背板缺陷检测流程第1期 朱志鹏, 等: 基于Halcon 的手机背板表面缺陷快速检测方法 23 的变化具有不确定性, 因此成像的统一性是缺陷检测中不可忽视的重要问题之一. 图像增强的作用是改善图像的质量、对比度、清晰度或者细节等以突出图像中的一些重要的缺陷特征, 同时弱化非必要的图像信息. 以腐蚀点缺陷特征为例, 使用scale_image 算子调整图像的对比度, 调整前后对比如图6所示.scale_image 算子根据设定的目标值对输入的手机背板图像像素值进行线性映射, 即scale max min255factor ,value value =- (1) scale min offset factor value ,=-⨯ (2)new scale pixel factor pixel offset.=⨯+ (3)其中max value 、min value 分别是输入图像像素值的最大值和最小值, scale factor 、offset 分别是像素映射的斜率和偏移, new pixel 是线性映射后的新像素值. 通过增强图像, 可以使采集到的图像更易于观察、分析和处理, 以适应不同的要求和环境, 进而提高缺陷检测算法的准确性和效果.2.4 感兴趣区域提取受工业环境复杂性等影响, 实际采集到的手机背板图像有较多非必要背景, 还需将背板图像中的相机孔、logo 区域分离开, 即对感兴趣区域(ROI)进行提取, 以便进行后续的缺陷检测工作. 图7为手机背板部分点位的感兴趣区域提取过程效果图.通过ROI 提取可以减少图像处理的时间和计算量, 进而提高检测算法的效率和性能. 本文数据集单张图片规格为4096像素×4096像素, 占据内存48 MB, 每一组图像(包含可采集到手机背板全部信息的8个点位图像)占内存384 MB, 且每次至少检测100组数据, 因此缺陷检测的数据集属于大型数据集.调整前调整后原图分离背景分离相机孔、logo 图6 scale_image 算子调整图像对比度效果图7 ROI 提取效果 3 手机背板表面缺陷检测智能手机在设计的时候会划分不同的功能和装饰区域, 其中之一是logo 区域. 这个区域通常包括特定图案及文字, 往往会采用不同于手机背板其余区域的材料和颜色等. 由于这种划分, 手机背板的缺陷检测需要能区分这两个区域, 即logo 区域和非logo 区域. 因此, 需根据每个区域的特定性质实施不同的检测策略.3.1 logo 区域检测手机背板上的logo 和小字体通常设计为尺寸、形状固定, 具有高度标准化[8], 模板匹配算法能够轻松识别出其在不同图片中的相似区域. 这种一致性降低了算法出错的可能性, 提高了检测的准确性. 由于logo 等字体区域包含大量可区分的特征信息, 即使存在噪声或图像质量的轻微变化, 模板匹配技术通常也能可靠执行. 本文采用最小二乘法模板匹配遍历待检测图像的每个像素点, 将待检测图像与模板图像进行匹配, 通过对比计算两者对应位置的匹配得分来确定它们之间的差异, 匹配效果如图8所示. 设置一24 湖南理工学院学报(自然科学版) 第37卷个分数阈值, 当匹配得分超过设定的阈值时, 可以认为该位置与模板匹配良好, 从而达到对logo文字区域的检测效果.模板图待检测图8 手机背板logo区域检测3.2 非logo区域检测(1) 缺陷初筛对于非logo区域缺陷的检测, 先读取图像并将其转换为灰度图像, 水平和垂直方向遍历ROI图像的每一个像素点, 根据需求筛选出特定的灰度值. 记录所选灰度值像素点的位置信息, 并绘制出对应的散点图, 通过观察散点图来初步识别缺陷. 如果特定灰度值与缺陷特性相关, 那么这些灰度值的像素点的聚集可能就暗示着潜在缺陷的存在. 同理, 特定灰度值可换成其他缺陷相关的特征信息. 图9为背板ROI图像缺陷初筛灰度散点分布.图9 背板ROI图像缺陷初筛灰度散点分布(2) 缺陷检测初筛之后, 基于Halcon机器视觉软件平台, 对经过预处理的手机背板表面缺陷图像进行二进制大型对象(Blob)分析处理来细化缺陷检测, 提取出脏污、划伤、亮斑、腐蚀点等缺陷特征, 然后使用select_shape( )算子基于面积、周长、圆度、长短轴比、平均灰度等特征将识别出的非缺陷特征部分排除掉. 再采用area_center( )和intensity( )算子计算剩余区域的中心位置、面积和灰度值平均强度、标准偏差, 其中intensity( )算子可分析区域的纹理和一致性. 这种综合利用面积、位置和灰度信息的方法极大提高了对真第1期 朱志鹏, 等: 基于Halcon 的手机背板表面缺陷快速检测方法 25 实缺陷的识别能力. 最后, 通过对剩余候选区域的细致分析, 能够进一步筛选出真正的缺陷, 降低漏检率和误判率, 提高手机背板表面缺陷检测的精确度和可靠性.(3) 缺陷分类 接下来对手机背板表面几种常见工艺缺陷进行特征分析, 目的是选出有效特征进行提取. 这些特征包括几何特征、形状特征、颜色特征等. 为将缺陷及其相关特征进行可视化和量化, 对各类缺陷图像及其特征进行统计, 结果见表1. 每种缺陷类型都会与相应的示例检出图像配对展示, 紧接其后是各自的特征统计数据. 这些数据的统计不仅有助于揭示缺陷的本质和特征, 更重要的是, 为后续的分类算法设计提供了依据. 表1中单位pixel 表示像素.表1 各类缺陷图像及其特征统计特征类别缺陷名称脏污碰伤水渍斑点划伤异色 擦伤面积/pixel 1869 11006 151868 960 9550 365705 11671周长/pixel 213.581 407.061 3248.130126.627 1691.8505014.200 1500.480宽/pixel 40 112 950 36 88 1297 398高/pixel 87 136 274 34 736 560 68最大直径/pixel 90.758 135.724 953.546 38.079 739.899 1401.700 400.522圆度 0.273 0.735 0.200 0.805 0.022 0.154 0.086矩形度 0.820 0.780 0.670 0.851 0.762 0.630 0.610紧密度 1.942 1.198 5.528 1.329 23.851 5.470 15.351凸形 0.929 1.00 0.816 0.944 0.756 0.936 0.669长短轴比 3.664 1.308 3.616 1.042 40.718 2.984 7.723蓬松度 1.035 1.010 1.224 1.017 1.040 1.174 1.237平均灰度67.153 151.121 155.856 39.413 92.731 100.489 121.421 4 实验结果与分析出率是互补的, 其计算公式为FN MR 1DR.TP FN==-+ (5) 误判率是系统错误标记为缺陷的非缺陷项目与所有实际非缺陷项目的比例, 反映系统产生误报的频率, 其计算公式为FP FAR .FP TN=+ (6)26 湖南理工学院学报(自然科学版) 第37卷其中TP为真阳性(正确识别为缺陷的数量), TN为真阴性(正确识别为非缺陷的数量), FP为假阳性(错误识别为缺陷的数量), FN为假阴性(错误识别为非缺陷的数量, 即漏检数).按照本文的缺陷检测方案, 实际的检测结果见表2. 可以看出, 基于Halcon的自动化图像处理系统在扫描手机背板表面缺陷方面表现优异. 该系统的检出率达到94.167%, 这意味着其能够检测到几乎所有缺陷, 确保产品质量的高标准. 同时, 误判率仅为3.125%, 表示它几乎不会将良好的产品错误判定为次品, 这对于减少浪费和维护生产流程的连续性至关重要. 此外, 该系统的图像处理速度达到平均500 ms/张, 这样的速度可以轻松适应快节奏的工业生产线, 确保不会成为生产效率的瓶颈. 与传统的人工检测方式相比, 这种自动化缺陷检测方案显著提升了检测的速度, 同时也提高了结果的一致性和可重复性, 减少了因人为判断不一致引起的误差.表2 检测结果统计有缺陷样本数/个检出数/个检出率/% 平均耗时/ms 120 113 94.167 524.1无缺陷样本数/个检出数/个误判率/% 平均耗时/ms 800 25 3.125 512.75 结束语本文基于Halcon图像处理软件, 提出了一种先进的手机背板表面缺陷检测方法. 该方法利用Halcon 强大的图像分析库, 结合自定义的算法, 实现了对手机背板上各类缺陷的快速准确检测. 通过采集高分辨率图像, 并运用Halcon中的图像预处理、特征提取、分类器训练和模板匹配等多种算子, 本文方案能够有效区分正常品和次品, 提高了生产线的自动化水平和质量控制精度. 实验结果表明, 缺陷检出率达到了94%以上的高水平, 同时将误判率控制在3%左右, 证明了该方法的可靠性和实用性. 此外, 每张图像的平均处理时间约为500 ms, 使得本方法能够适应高速的工业生产环境. 另外, 本文提出的快速检测方法已应用于成都、杭州等地企业的实际项目.本文虽然给出基于工业背景下的手机背板表面缺陷快速检测方法, 但该方法在一些极端工作条件下仍存在一些局限性, 例如在背景复杂或光照条件极端变化时, 检测性能可能受到影响. 因此, 未来的工作将致力于提高算法的鲁棒性, 以确保算法在不同的生产环境下都能保持高效稳定的检测性能. 此外, 随着人工智能和机器学习技术的快速发展, 如何进一步融入深度学习等创新方法以提升检测准确度和速度, 也将是我们下一步研究的重点.参考文献:[1]陶显, 侯伟, 徐德. 基于深度学习的表面缺陷检测方法综述[J]. 自动化学报, 2021, 47(5): 1017−1034.[2]郭绍陶, 苑玮琦. 基于双高斯纹理滤波模板和极值点韦伯对比度的圆柱锂电池凹坑缺陷检测[J]. 电子学报, 2022, 50(3): 637−642.[3]高春艳, 秦燊, 李满宏, 等. 改进YOLOv7算法的钢材表面缺陷检测研究[J/OL]. 计算机工程与应用, 1−12[2024-01-22].[4]CHAO S M, TSAI D M, LI W C, et al. A generalized anisotropic diffusion for defect detection in low-contrast surfaces[C]// Proceedings of the 20thInternational Conference on Pattern Recognition, IEEE, 2010: 4408−4411.[5]曾毅, 郭龙源, 罗百通. 基于BP神经网络和均值差分的TFT-LCD MURA缺陷检测方法[J]. 湖南理工学院学报(自然科学版), 2017, 30(1):32−38.[6]任鹏霏, 周传德, 胡帅, 等. HALCON图像处理在纸杯缺陷检测中的应用[J]. 自动化应用, 2019 (6): 98−99+103.[7]贺振东, 王耀南, 毛建旭, 等. 基于反向P-M扩散的钢轨表面缺陷视觉检测[J]. 自动化学报, 2014, 40(8): 1667−1679.[8]汪成龙, 黄余凤, 陈铭泉, 等. 基于Halcon的字符缺陷检测系统[J]. 制造业自动化, 2018, 40(9): 38−41.。
基于Halcon的钢球表面缺陷检测系统设计
吴秀东,等:基于 Halcon的钢球表面缺陷检测系统设计
·55·
图 2 检测系统主界面 Fig.2 Maininterfaceofdetectingsystem
图 3 CCD相机采集到的钢球图像 Fig.3 SteelballimagecapturedbyCCDcamera
1)在钢球成像的固定位置分别绘制 4个椭圆 区域 Ellipse1~Ellipse4,对于包含钢球表面缺陷区 域进行合并,同 时 去 除 图 像 背 景 和 相 邻 钢 球 反 射 成像的区域,如图 4所示。椭圆区域灵活性强,可 以充分包含每个钢球的表面图像。
图 5 矩形区域 Fig.5 Rectangleregion
3)令合并区域 UnionRegion与矩形区域 Rectangle 取差集,最终得到感兴趣区域 ROI_0,如图 6所示。
图 6 感兴趣区域 Fig.6 Regionofinterest
形态学滤波 由于采集装置、传输方式、工作环境等因素的
在工业 强 基 工 程 中,轴 承 被 列 为 机 械 基 础 零 部件的首位,高 转 速 高 精 度 轴 承 更 是 被 作 为 发 展 的重点方 向[1]。钢 球 属 于 滚 动 轴 承 中 的 关 键 零 件,其表面缺陷状况对轴承的动态性能、使用寿命 等有着举足轻重的影响,统计表明,由于钢球表面 缺陷导致的轴承失效占比高达 61.2%[2],因此,钢 球表面缺陷检测成为钢球生产中一道必不可少的 检测工序。
目 前,AVIKO-K型 钢 球 表 面 缺 陷 检 测 仪 广 泛应用于钢球表面质量检测,其利用光电、涡流检 测 方 法[3],具 有 效 率 高、操 作 简 单 等 优 点。 然 而, 为减小对涡 流 传 感 器 检 测 精 度 的 干 扰,对 检 测 环 境、仪器结构提出了很高要求;该检测仪的展开机 构等只能使用非金属材料,耐磨性较差,必须频繁 更换,且对 麻 点 缺 陷 类 型 识 别 能 力 弱。 文 献 [4- 5]研制了均匀散射的光源照明系统,设计了基于 双 CCD相机的钢球表面一维滚动展开方法,使用 水平、垂直投影粗略定位与 Canny算子准确定位 结合的方法 确 定 直 线 轨 道 上 每 个 钢 球 的 位 置,采 用实时背景 差 分 方 法 提 取 钢 球 表 面 缺 陷;但 该 系 统仅针对 1.5mm的钢球,适用性低,实时背景差 分方法的连续性、稳定性也存在很大问题[6];文献 [7-8]设计了基于最小圆形外接矩形得到钢球检 测区域的方法,采用剪影法及 BP神经网络方法提
智能测控2
设计方案
总体方案介绍
系统设计的主要步骤为利用工业数字相机、工业镜
头等仪器构建视觉测量的硬件平台,运用HALCON 软件实现测量图像的采集与显示、视觉测量等算法 及功能,最后利用MFC设计程序界面。
设计方案
硬件选择:
系统硬件主要包括:工业相机、镜头、光源(自然 光)、计算机
系统软件:
机器视觉系统软件部分主要用以halcon作为软件搭 配MFC完成软件系统开发。
设计方案
ห้องสมุดไป่ตู้
检测系统软件实现
系统各模块
标定模块
首先自制一个halcon标定板,之后通过采集多幅标定板 图像并利用halcon实现相机标定,获得相机内外参数,用于 图像校正及准确计算划痕长度。 相机标定之后,利用相关函数对测量所用图像进行校 正。
系统各模块
图像处理
对校正后的图像应用相关图像处理算子实现长度的测量
系统各模块
HALCON和VS混合编程的设计流程
(1)由HDevelop 导出视觉测量程序代码,生成C++代 码; (2)配置HALCON和VS2015混合编程的程序开发环境; (3)利用MFC构建程序界面,开发整个视觉测
量程序,并完成程序功能验证;
进度安排
~5.20 : 完成相机标定 5.21~6.10 :完成视觉测量程序 6.10~7.10 :完成程序界面设计
基于halcon—缺陷检测常用方法与示例总结
基于halcon—缺陷检测常用方法与示例总结下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!基于Halcon—缺陷检测常用方法与示例总结引言缺陷检测在工业生产中扮演着至关重要的角色,它不仅可以提高产品质量,减少不良品率,还可以降低生产成本,增强企业竞争力。
halcon算法案例_讲解
halcon算法案例_讲解
Halcon算法是一种用于机器视觉和图像处理的高级软件工具,它提供了丰富的图像处理函数和算法,可用于解决各种复杂的视觉应用问题。
下面我将从几个方面来讲解Halcon算法的应用案例。
首先,Halcon算法在工业领域中有着广泛的应用。
比如在半导体行业中,Halcon算法可以用于芯片表面缺陷检测和质量控制。
通过Halcon算法提供的图像处理函数,可以快速准确地识别和分类芯片表面的缺陷,从而保证产品质量。
其次,在医疗领域,Halcon算法也发挥着重要作用。
例如,医学影像的分析和诊断就是Halcon算法的一个重要应用方向。
医生可以利用Halcon算法提供的图像分割和特征提取功能,对医学影像进行精确的分析,帮助医生做出更准确的诊断。
此外,在智能制造和机器人领域,Halcon算法也有着广泛的应用。
比如在智能制造中,Halcon算法可以用于产品的自动检测和识别,提高生产效率和产品质量。
在机器人领域,Halcon算法可以帮助机器人实现视觉导航、物体抓取和识别等功能,提升机器人的智能化水平。
除此之外,Halcon算法还可以应用于交通监控、安防监控、无人驾驶等领域。
通过Halcon算法提供的图像处理和分析功能,可以实现交通违章检测、人脸识别、车牌识别等应用,提升交通和安防监控系统的智能化水平。
综上所述,Halcon算法在工业、医疗、智能制造、机器人、交通安防等领域都有着广泛的应用。
它通过丰富的图像处理函数和算法,为各种复杂的视觉应用问题提供了解决方案,成为了机器视觉和图像处理领域的重要工具之一。
halcon编程案例
Halcon编程案例:目标检测与识别背景Halcon是一款功能强大的机器视觉开发软件,广泛应用于工业自动化、智能制造等领域。
它提供了丰富的图像处理和分析工具,可以用于目标检测、识别、测量等任务。
下面将介绍一个基于Halcon的目标检测与识别案例。
案例描述1. 问题定义某工厂生产线上需要对产品进行检测和识别,以确保产品的质量和一致性。
产品的外观有多种变化,包括形状、颜色和纹理等方面的差异。
我们需要开发一个自动化的视觉系统,能够快速、准确地检测和识别产品。
2. 数据采集和预处理为了开发目标检测与识别系统,首先需要采集一些产品的图像数据集。
在采集过程中,我们需要考虑到产品在实际生产环境中的变化,并尽量保证数据集的多样性。
采集到的图像数据需要进行预处理,以便提高后续的处理效果。
预处理包括图像去噪、增强和标定等步骤。
例如,可以使用Halcon提供的滤波算法对图像进行去噪处理,使用直方图均衡化算法增强图像对比度。
3. 特征提取与选择在目标检测和识别任务中,特征提取是一个关键的步骤。
通过提取产品图像中的特征,可以将其与已知的模板进行比较和匹配,从而实现目标的检测和识别。
在本案例中,我们选择了形状、颜色和纹理等特征进行提取和选择。
Halcon提供了多种特征提取算法,包括边缘检测、形状匹配、颜色分割和纹理分析等。
根据实际情况,我们可以选择合适的算法进行特征提取。
4. 模型训练与优化为了实现目标检测和识别,我们需要训练一个模型,使其能够从输入图像中准确地检测和识别产品。
模型训练的关键是选择合适的训练数据和算法,并进行参数调优。
在本案例中,我们可以使用Halcon提供的模板匹配、机器学习和深度学习等算法进行模型训练和优化。
通过与标注好的训练数据进行比较和学习,模型可以不断优化自身的参数,提高识别的准确性和稳定性。
5. 目标检测与识别完成模型训练后,我们可以将其应用于实际的目标检测和识别任务中。
通过输入一张产品图像,系统可以自动检测和识别出产品的类型、数量和位置等信息。
halcon表面纹理检测
Halcon表面纹理检测案例*This program demonstrates how to detect small texture*defects on the surface of plastic items by using the fast*fourier transform(FFT).*检测塑料物品表面的小纹理缺陷*First,we construct a suitable filter using Gaussian*filters.创立一个滤波器*Then,the images and the filter are convolved*by using fast fourier transforms.*图像经过傅里叶变换后,滤波,再经过反变换*Finally,the defects*are detected in the filtered images by using*morphology operators.*通过形态学检测出缺陷*Initializationsdev_update_off()dev_close_window()read_image(Image,'plastics/plastics_01')get_image_size(Image,Width,Height)dev_open_window(0,0,Width,Height,'black',WindowHandle) set_display_font(WindowHandle,14,'mono','true','false') dev_set_draw('margin')dev_set_line_width(3)dev_set_color('red')**Optimize the fft speed for the specific image size*根据具体的图像尺寸优化傅里叶变换的速度(有此函数)optimize_rft_speed(Width,Height,'standard')**Construct a suitable filter by combining two gaussian*filtersSigma1:=10.0Sigma2:=3.0gen_gauss_filter(GaussFilter1,Sigma1,Sigma1,0.0,'none','rft',Width,Height)gen_gauss_filter(GaussFilter2,Sigma2,Sigma2,0.0,'none','rft',Width,Height)sub_image(GaussFilter1,GaussFilter2,Filter,1,0)**Process the images iterativelyNumImages:=11for Index:=1to NumImages by1**Read an image and convert it to gray valuesread_image(Image,'plastics/plastics_'+Index$'02')rgb1_to_gray(Image,Image)*RGB图->gray图*Perform the convolution in the frequency domain*频域图像处理三步,第二步将频域图像和高斯滤波器做卷积rft_generic(Image,ImageFFT,'to_freq','none','complex',Width)convol_fft(ImageFFT,Filter,ImageConvol)rft_generic(ImageConvol,ImageFiltered,'from_freq','n','real',Width)**Process the filtered imagegray_range_rect(ImageFiltered,ImageResult,10,10)*做一个矩形模板,模板处理图像10*10模板min_max_gray(ImageResult,ImageResult,0,Min,Max,Range)threshold(ImageResult,RegionDynThresh,max([5.55,Max*0.8]),255)connection(RegionDynThresh,ConnectedRegions)select_shape(ConnectedRegions,SelectedRegions,'area','and',4,99999)union1(SelectedRegions,RegionUnion)closing_circle(RegionUnion,RegionClosing,10)connection(RegionClosing,ConnectedRegions1)select_shape(ConnectedRegions1,SelectedRegions1,'area','and',10,99999)area_center(SelectedRegions1,Area,Row,Column)*Display the resultsdev_display(Image)Number:=|Area|if(Number)gen_circle_contour_xld(ContCircle,Row,Column,gen_tuple_const(Number,30), gen_tuple_const(Number,0),gen_tuple_const(Number,rad(360)),'positive',1)ResultMessage:=['Not OK',Number+'defect(s)found']Color:=['red','black']dev_display(ContCircle)elseResultMessage:='OK'Color:='forest green'endifdisp_message(WindowHandle,ResultMessage,'window',12,12,Color,'true') if(Index#NumImages)disp_continue_message(WindowHandle,'black','true')stop()endifendfor*this example shows how to detect mura defects*in blurred images模糊图像中检测污斑*LCD中的污斑缺陷检测dev_close_window()dev_update_off()Path:='lcd/mura_defects_blur_'**定义一个字符串常量,此常量接上字符串索引构成文件名称read_image(Image,Path+'01')get_image_size(Image,Width,Height)dev_open_window_fit_size(0,0,Width,Height,640,480,WindowHandle)set_display_font(WindowHandle,14,'courier','true','false')dev_set_draw('margin')dev_set_line_width(3)dev_set_color('red')ScaleFactor:=0.4for f:=1to3by1read_image(Image,Path+f$'.2i')decompose3(Image,R,G,B)*correct side illuminationrft_generic(B,ImageFFT,'to_freq','none','complex',Width)gen_gauss_filter(ImageGauss,100,100,0,'n','rft',Width,Height)convol_fft(ImageFFT,ImageGauss,ImageConvol)rft_generic(ImageConvol,ImageFFT1,'from_freq','none','byte',Width)**傅里叶变换,滤波,反变换sub_image(B,ImageFFT1,ImageSub,2,100)**图像相减*perform the actual inspectionzoom_image_factor(ImageSub,ImageZoomed,ScaleFactor,ScaleFactor,'constant')*avoid border effects when using lines_gauss()*避免边界干扰get_domain(ImageZoomed,Domain)erosion_rectangle1(Domain,RegionErosion,7,7)**腐蚀掉边缘,消除边界干扰,缩小ROIreduce_domain(ImageZoomed,RegionErosion,ImageReduced)**缩小ROIlines_gauss(ImageReduced,Lines,5,0.02,0.3,'dark','true','gaussian','true')**找线hom_mat2d_identity(HomMat2DIdentity)hom_mat2d_scale_local(HomMat2DIdentity,1/ScaleFactor,1/ScaleFactor, HomMat2DScale)affine_trans_contour_xld(Lines,Defects,HomMat2DScale)*dev_display(Image)dev_display(Defects)if(f<3)disp_continue_message(WindowHandle,'black','true')stop()endifendfor。
基于Halcon的锂电池标签表面缺陷检测
基于Halcon的锂电池标签表面缺陷检测作者:熊继淙邢旭朋马军来源:《科技视界》2020年第03期摘要针对现有的工业上的标签表面质量检测过程中存在的速度慢,精度低的问题,提出一种基于Halcon的工业标签表面的印刷图案的缺陷检测。
其方法主要思想为差分思想即根据不同工业标签表面图案的区域特征进行Blob分析来定位,通过基于形状的模板匹配算法来快速查找目标区域,然后利用灰度值差影匹配算法进行缺陷检测。
最后通过图像配准的方法检测缺陷的特征值,该检测方法得到的检测结果与实际存在的缺陷基本一致,而且大大提高了检测的速度和精度,达到了生产线上的质量要求。
关键词机器视觉;标签缺陷检测;差分思想;模板匹配中图分类号: TP391.41 文献标识码: ADOI:10.19694/ki.issn2095-2457.2020.03.0150 引言工业标签能够对在生产过程中产生的大量数据进行自动化收集,而且实时准确的传递给管理系统。
大大提高了生产效率,改进了生产方式,节约了生产成本。
然而,工业标签在印刷的过程中存在大大的不确定性,致使标签的表面不可避免地随机出现各种缺陷,例如:印刷缺失、脏污、划痕等。
而目前对于工业标签的缺陷检测大多还是人通过肉眼来进行检测,这种检测方法不可避免地就大大浪费了人力劳动资源,而且随着时间的增长,人眼会感到疲惫,这样就会提高漏检和误检率。
因此,本文将机器视觉引入到工业标签表面质量的缺陷检测中,解决了人工检测的效率低,耗时长,漏检和误检等问题。
1 检测系统的实验平台搭建本文采用Halcon图像处理软件来搭建工业标签表面缺陷检测的检测系统,主要检测过程为:利用工业相机对传送带上待检的工业标签进行图像采集和预处理,最后通过模板配准检测出缺陷所在的区域。
该检测方案的硬件系统主要包括光源、相机、镜头、编码器和图像处理平台等。
由于工业上的标签种类和大小都不一样,本文选用工业上常用的一种锂电池的标签来进行试验,该标签的尺寸为400mmx200mm,检测精度为400μm。
Halcon例子说明
Halcon例子说明Halcon实例说明1、inspect_bottle_mouth.hdev:易拉管缺陷检测。
用到了极坐标变换2、circular_barcode.hdev:一维条码检测,用到坐标变换。
弧形拉直。
用到了极坐标变换3、surface_scratch.hdev:表面划伤检测。
4、ball.hdev:PCB板焊锡点检测。
用到常用算子及开运算opening。
5、best_match_rot_mg_clip1.hdev:带方向的基本模版匹配6、bin_threshold.hdev:计算图片中的灰度直方图7、bin_threshold2.hdev:程序说明怎样bin_threshold与threshold之间的相等转换计算。
8、bottle.hdev:OCR字符的检测9、bottlet.hdev:OCR字符的检测10、check_blister.hdev:药品颗粒检测。
用一些常用算子及坐标变换,图片旋转。
11、check_bottle_crate.hdev:圆孔检测。
用到opening_circle、select_shape等常用处理算子。
12、check_hazelnut_wafers.hdev:检测物体表面缺陷。
很好的用到了开运算算子opening_circle和闭运算算子closing_circle13、check_smd_tilt.hdev:检测SMD用到算子sobel_amp边缘检测,measure_projection14、check_soft_cheese.hdev:用到算子有彩色图转换为灰度图(rgb1_to_gray),模版匹配15、create_shape_model、find_shape_models,图像坐标变转vector_angle_to_rigid 、affine_trans_contour_xld等算子。
16、circles.hdev:圆拟合算子(fit_circle_contour_xld),边缘检测(edges_sub_pix)。
halcon划痕检测例程傅里叶变换
halcon划痕检测例程傅里叶变换
划痕检测是一项重要的质量控制任务,它可以帮助我们检测产品表面是否存在划痕或磨损,确保产品的外观质量。
在halcon中,我们可以利用傅里叶变换来实现划痕检测。
傅里叶变换是一种将时域信号转换为频域信号的数学方法。
在划痕检测中,我们可以利用傅里叶变换将图像转换为频域表示,进而分析图像中的频谱信息。
我们需要加载待检测的图像,并对其进行预处理。
预处理的目的是去除图像中的噪声和干扰,以便更好地进行频域分析。
常见的预处理步骤包括灰度化、滤波、边缘检测等。
接下来,我们可以将预处理后的图像进行傅里叶变换。
傅里叶变换将图像从时域转换为频域,可以将图像表示为一系列频率分量的叠加。
通过分析图像的频谱信息,我们可以检测到划痕在频域上的特征。
在频域中,划痕通常表现为高频成分的集中。
因此,我们可以通过提取图像频谱中的高频成分来进行划痕检测。
一种常用的方法是设置一个阈值,将高于阈值的频率成分标记为划痕。
我们可以根据标记的划痕频率成分,对原始图像进行可视化处理,以便更直观地观察和分析划痕的位置和形状。
利用傅里叶变换可以实现划痕检测。
通过将图像转换为频域表示,我们可以分析图像的频谱信息,并提取出划痕在频域上的特征。
这种方法可以帮助我们准确地检测和定位划痕,提高产品的质量和外观。
halcon圆柱角点展平案例
halcon圆柱角点展平案例Halcon圆柱角点展平是一种用于处理图像中圆柱体表面的技术。
它可以通过识别圆柱体的角点,并将其展平为一个二维图像,从而方便后续的图像处理和分析。
下面将列举一些关于Halcon圆柱角点展平的案例,以帮助读者更好地理解这一技术的应用。
1. 检测圆柱瓶口位置在生产线上,经常需要对圆柱瓶的瓶口进行检测。
利用Halcon圆柱角点展平技术,可以准确地检测到瓶口的位置和形状,从而实现自动化的生产线控制。
2. 检测圆柱体表面缺陷圆柱体表面的缺陷对于某些行业来说非常重要,例如电子元器件的制造。
利用Halcon圆柱角点展平技术,可以对圆柱体表面的缺陷进行高精度的检测和分析,提高产品的质量和可靠性。
3. 圆柱体表面贴标检测在包装行业中,常常需要对圆柱体上的标签进行检测和识别。
利用Halcon圆柱角点展平技术,可以准确地检测到标签的位置和形状,从而实现自动化的包装生产线。
4. 圆柱体的三维重建通过多个角度拍摄圆柱体的图像,结合Halcon圆柱角点展平技术,可以实现对圆柱体的三维重建。
这对于一些需要对圆柱体进行形状分析和测量的应用非常有用。
5. 检测圆柱体的偏斜角度在一些工业应用中,需要对圆柱体的偏斜角度进行检测和测量。
利用Halcon圆柱角点展平技术,可以准确地测量圆柱体的偏斜角度,从而实现对产品的质量控制。
6. 圆柱体的表面缺陷分类在某些应用中,需要对圆柱体的表面缺陷进行分类。
利用Halcon圆柱角点展平技术,可以将圆柱体的表面缺陷分为不同的类别,从而实现对产品质量的评估和控制。
7. 圆柱体表面的纹理分析圆柱体表面的纹理对于某些应用来说非常重要,例如纺织品的质量检测。
利用Halcon圆柱角点展平技术,可以对圆柱体表面的纹理进行分析和识别,从而实现对产品质量的控制。
8. 圆柱体的形状匹配在一些应用中,需要将一个圆柱体与一个标准模板进行形状匹配。
利用Halcon圆柱角点展平技术,可以实现对圆柱体形状的高精度匹配,从而实现对产品的质量控制。
划痕检测北华航天工业学院
划痕检测实验报告1. 实验类型:验证性实验2. 实验说明产品表面检测一直是机器视觉行业的一个重要应用,同时也是一个难点。
主要针对抛光材料表面的划伤脏污等,常见行业应用领域:玻璃、金属、液晶板、手机屏幕、塑料等。
3. 实验目的(1)了解划痕检测的原理和意义;(2)学习掌握划痕检测系统的实验过程及方法;(3)学习检测过程中halcon 算子的意义和使用方法;(4)掌握使用halcon 软件在Hdevelop 环境中完成划痕检测过程。
4. 实验内容5. 实验原理产品表面存在划痕缺陷时,其图像变现为划痕处的灰度值与标准图像在此处的灰度值存在差异。
因此,一般的,表面划痕检测的思路和算法是阈值分割、二值形态学处理及特征提取。
6. 实验仪器(1)大恒机器视觉实验平台大恒机器视觉实验平台,包含了机器视觉所需的硬件,如下图所示。
图中展示了拍摄被测物时的整体结构,相机、光源架好在支架上,被测物体放在翻拍台上,相机连接电脑,并且可以通过电脑实时看到相机拍摄到的物体的图像。
如下图所示是单独的实验平台支架。
(2)CCD 相机水星(MER-Ux) 系列数字USB2.0 相机是大恒图像自主研发的成熟的面阵工业数字相机,如下图所示。
(3)工业镜头本实验所用镜头如下图所示,是Computar 百万像素镜头。
(4)光源光源照明在机器视觉中有着极为重要的地位,大恒图像教学实验箱主要用到环形光源和面光源,如下图所示。
(5)Halcon 图像处理软件及加密狗HALCON 是德国MVTec Software GmbH 公司开发的一套全面的标准机器视觉算法包,拥有应用广泛的机器视觉集成开发环境(HDevelop),其提供的函数库已被使用在数十万套各行各业的装置中,包括blob 分析、形态学、匹配、测量、识别和3D 视觉等。
7. 实验步骤本实验分为离线检测和在线检测,下面分别进行详细操作步骤说明。
7.1. 离线检测步骤Step1:电脑连接相机,双击打开应用程序“大恒图像机器视觉教学实验软件”,出现的系统演示软件主界面,在主界面左侧栏选择【检测类实验】。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Halcon表面划伤检测实例
*关闭活动图形窗口
dev_close_window ()
* 在程序执行中指定输出行为为off。
dev_update_window ('off')
* ****
* step: acquire image 步骤:获取图像
* ****读入文件名为'surface_scratch' 的图像到Image
read_image (Image, 'surface_scratch')
get_image_size (Image, Width, Height)
*打开一个和Image宽高比一致的图像窗口
dev_open_window_fit_image (Image, 0, 0, Width, Width, WindowID) *设置窗口字体大小为12,字体类型为Courier,粗体不倾斜字体。
set_display_font (WindowID, 12, 'Courier', 'true', 'false')
*设置填充模式为'margin'
dev_set_draw ('margin')
*定义输出轮廓线宽为4
dev_set_line_width (4)
*显示Image到窗口
dev_display (Image)
*WindowID窗口使用黑色字体在一个方框内显示按"F5"继续运行字体,并注册F5消息处理disp_continue_message (WindowID, 'black', 'true')
stop ()
* ****
* step: segment image 步骤:图像分割
* ****
* -> using a local threshold 使用局部阈值
* 对Image进行7*7均值滤波
mean_image (Image, ImageMean, 7, 7)
********************************************************************* *得到的图像为:
*
*
*
*用均值滤波图像作为二值化阈值图像,返回小于灰度值小于该点阈值-5的图像。
dyn_threshold (Image, ImageMean, DarkPixels, 5, 'dark')
***************************************
****得到的区域为:
* -> extract connected components 提取连通分量
*由分割出来的DarkPixels获得连通区域到ConnectedRegions *******得到的连通区域为:
connection (DarkPixels, ConnectedRegions)
*设置混合输出颜色为12种
dev_set_colored (12)
*显示当前图形窗口中的图像对象。
dev_display (ConnectedRegions)
*
disp_continue_message (WindowID, 'black', 'true')
stop ()
* ****
* step: process regions 处理区域
* ****
* -> select large regions 选取大区域
*从ConnectedRegions中得到面积大于10小于1000的区域到SelectedRegions select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 10, 1000)
*设置当期图像窗口的图像对象为Image
dev_display (Image)
* 设置当期图像窗口的图像对象为SelectedRegions
dev_display (SelectedRegions)
disp_continue_message (WindowID, 'black', 'true')
stop ()
* -> visualize fractioned scratch 可视化划分划痕
*打开窗口设置局部
open_zoom_window (0, round(Width/2), 2, 303, 137, 496, 3, WindowHandleZoom) *设置输出颜色为蓝色
dev_set_color ('blue')
dev_display (Image)
dev_display (SelectedRegions)
disp_continue_message (WindowID, 'black', 'true')
stop ()
* -> merge fractioned scratches via morphology 通过形态学合并划痕
*合并SelectedRegions的并集到RegionUnion
union1 (SelectedRegions, RegionUnion)
*以3.5作为圆形区域扩张的半径,对RegionUnion扩张得到RegionDilation dilation_circle (RegionUnion, RegionDilation, 3.5)
dev_display (Image)
dev_display (RegionDilation)
disp_continue_message (WindowID, 'black', 'true')
stop ()
*由RegionDilation获取骨架给Skeleton
skeleton (RegionDilation, Skeleton)
*通过8邻接或四邻接方法将骨架链接后传给Errors connection (Skeleton, Errors)
dev_set_colored (12)
dev_display (Image)
dev_display (Errors)
disp_continue_message (WindowID, 'black', 'true')
stop ()
* -> distinguish small and large scratches 区分大小划痕*关闭窗口
close_zoom_window (WindowHandleZoom, Width, Height) *选择面积大于50小于1000的区域到Scratches
select_shape (Errors, Scratches, 'area', 'and', 50, 10000) *选择面积大于1小于50的区域到Dots
select_shape (Errors, Dots, 'area', 'and', 1, 50)
dev_display (Image) dev_set_color ('red')
dev_display (Scratches) dev_set_color ('blue') dev_display (Dots)。