Halcon学习(1)读取多张图片

合集下载

Halcon读取文件目录中图像的三种方法

Halcon读取文件目录中图像的三种方法

Halcon读取文件目录中图像的三种方法第1种方法:读取单一图像read_image(Image,'fabrik')这种方式可以快速的读取软件自身携带的库图像文件,系统设定了库图像映像文件的快速读取方式,我们也可以通过绝对地址的方式来读取指定的目录文件:read_image(Image1,'E:/Halcon一日一练/参考资料/images/图片1.jpg')图像设定的映像文件目录可以进行关闭,set_system函数可以对映像文件目录进行关闭,关闭之后必须读取图像的绝对地址,否则,系统将会报错,set_system('image_dir','false')//关闭图像映像文件read_image(Image,'fabrik')//此时系统会报错在关闭图像文件目录的情况下,再读取图像将会出现异常,此时我们需要重新设置默认读取文件的目录:set_system('image_dir','C:\\ProgramFiles\\MVTec\\HALCON-12.0\\images')read_image(Image,'fabrik')如果想要读取自身设定的图像目录,则是如下方式:set_system('image_dir','E:\\Halcon一日一练\\参考资料\\images')read_image(Image,'图片1')操作完成后一定要将系统设定回来,并确认目录定义符一定是上斜线set_system('image_dir','C:\\ProgramFiles\\MVTec\\HALCON-12.0\\images')set_system('image_dir,'true')第2种方法:读取一组图像则需要对图像文件的保存名称有一定的规则要求,一般按以下格式设定:'name_number.imageform'首先保存为图像的名称,下划线后面追加图像数字序列,这种方式有利于图像的循环读取,看看下面的语句:for j:= 1 to 9 by 1read_image(Image,'fonts/arial_a'+J+'.png')//读取图像dev_display(Image)//显示图像stop()//暂停endfor我们将C:\Program Files\MVTec\Halcon-12.0\images\fonts目录下的9个图像文件依次读取并且显示出来,中间的+号代表了字符间的合并。

halcon学习笔记——实例篇(2)长度和角度测量

halcon学习笔记——实例篇(2)长度和角度测量

halcon学习笔记——实例篇(2)长度和⾓度测量实例⼆:长度和⾓度测量素材图⽚:halcon代码:1: *读取并截取图⽚2: dev_close_window()3: read_image (Image, 'D:/MyFile/halcon/长度和⾓度测量/图.png')4: crop_rectangle1 (Image, ImagePart, 75, 0, 400, 400)5: get_image_size (ImagePart, Width, Height)6: dev_open_window (0, 0, Width, Height, 'black', WindowHandle)7: dev_display (ImagePart)8:9: *获取图形的边界10: threshold (ImagePart, Regions, 0, 112)11:12: *分离三⾓形和圆形13: connection(Regions,ConnectedRegions)14: sort_region(ConnectedRegions,SortedRegions,'upper_left','true','column')15: select_obj(SortedRegions,Circle,1)16: select_obj(SortedRegions,Triangle,2)17:18: *获取三⾓形各边的信息19: skeleton(Triangle,TriangleSkeleton)20: gen_contours_skeleton_xld(TriangleSkeleton,TriangleContours,1,'filter')21: segment_contours_xld(TriangleContours,ContoursSplit,'lines_circles', 5, 4, 2)22: select_contours_xld(ContoursSplit,SelectedContours, 'contour_length',100, 999, -0.5, 0.5)23: fit_line_contour_xld (SelectedContours, 'tukey', -1, 10, 5, 2, RowBegin, ColBegin, RowEnd, ColEnd, Nr, Nc, Dist)24:25: *计算三⾓形⾓度26: angle_ll (RowBegin[0], ColBegin[0], RowEnd[0], ColEnd[0], RowBegin[1], ColBegin[1], RowEnd[1], ColEnd[1], Angle1)27: angle_ll (RowBegin[0], ColBegin[0], RowEnd[0], ColEnd[0], RowBegin[2], ColBegin[2], RowEnd[2], ColEnd[2], Angle2)28: angle_ll (RowBegin[1], ColBegin[1], RowEnd[1], ColEnd[1], RowBegin[2], ColBegin[2], RowEnd[2], ColEnd[2], Angle3)29: Angle1:=abs(deg(Angle1))30: Angle2:=abs(deg(Angle2))31: Angle3:=abs(deg(Angle3))32:33: *获取圆的信息34: area_center(Circle,AreaCircle, RowCircle, ColumnCircle)35:36: *计算圆⼼到三⾓形各边的距离37: Distance := []38:for Index := 0 to 2 by 139: distance_pl (RowCircle, ColumnCircle, RowBegin[Index], ColBegin[Index], RowEnd[Index], ColEnd[Index], ThisDistance)40: Distance := [Distance,ThisDistance]41: endfor。

vb连接halcon读取图像

vb连接halcon读取图像

halcon基本,vb连接halcon读取图像,视频halcon学习方法:安装完halcon之后,在开始里出现一些文档quick_guide.pdf快速入门halconhdevelop_users_guide.pdf详细讲解在hdevelop中使用halcon,及hdevelop的操作programmers_guide.pdf详细讲解在高级语言中的使用halconreference_hdevelop.pdf讲解各个算子、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、vb中使用halcon窗口加载图像1.读取图像[cpp]view plaincopyprint?1.read_image (Lena, 'F:/image/lena.jpg')2.get_image_size (Lena, Width, Height)3.dev_close_window ()4.dev_open_window (0, 0, Width/2, Height/2, 'black', WindowHandle)5.set_display_font (WindowHandle, 14, 'mono', 'true', 'false')6.dev_display (Lena)7.disp_continue_message (WindowHandle, 'black', 'true')8.stop ()2.导出vb的bas代码选择文件/导出,弹出注意:此处选择使用halcon窗口3.vb中调用read_image.bas先看一下read_image.bas的内容,可知在需要的地方直接调用main即可[vb]view plaincopyprint?1....2.3.' Main procedure4.Private Sub action()5.6. ' Local iconic variables7. Dim ho_Lena As HUntypedObjectX8.9.10. ' Local control variables11. Dim hv_Width As Variant, hv_Height As Variant12. Dim hv_WindowHandle As Variant13.14.15. Call Op.ReadImage(ho_Lena, "F:/image/lena.jpg")16. Call Op.GetImageSize(ho_Lena, hv_Width, hv_Height)17. If COMExpWinHandleStack.IsOpen() Then18. Op.CloseWindow (COMExpWinHandleStack.Pop())19. End If20. Call Op.SetWindowAttr("background_color", "black")21. Call Op.OpenWindow(0, 0, Tuple.TupleDiv( _22. hv_Width, 2), Tuple.TupleDiv(hv_Height, 2), 0, "", "", hv_WindowHandle)23. COMExpWinHandleStack.Push (hv_WindowHandle)24. Call set_display_font(hv_WindowHandle, 14, "mono", "true", "false")25. If COMExpWinHandleStack.IsOpen() Then26. Call Op.DispObj(ho_Lena, COMExpWinHandleStack.GetActive())27. End If28. Call disp_continue_message(hv_WindowHandle, "black", "true")29. HDevelopStop30.End Sub31.32.33.34.#If Not NO_EXPORT_APP_MAIN Then35.Sub InitHalcon()36. ' Default settings used in HDevelop37. Call Op.SetSystem("do_low_error", "false")38.End Sub39.40.Sub Main()41. Call InitHalcon42. Call action43.End Sub44.45.#End If3.1.新建一个exe 的project ,然后保存,然后添加read_image.bas 文件到此project3.2.添加halcon/com 控件:选择project/components ,弹出的菜单中3.3.在工具箱中会出现HWindowXCtrl 控件,拖进form1,然后再拖一个commandbutton,双击commanbutton,加入代码 [vb] view plaincopyprint? 3. End Sub Private Sub Command1_Click()Call Main 3.4.按F5运行程序,然后单击command1,弹出 这是一个halcon 界面库构造的窗口,脱离vb 窗口的。

工业机器视觉基础教程-halcon篇

工业机器视觉基础教程-halcon篇

工业机器视觉基础教程-halcon篇工业机器视觉是指应用机器视觉技术在工业生产中,实现产品质量检测、工业自动化等一系列目标。

而HALCON则是一款功能齐全、具备丰富图像处理库的应用授权软件。

本文将介绍HALCON图像处理中的基本操作和应用。

一、HALCON图像处理的基本操作1.图像加载:使用read_image操作,该操作可以加载多种图像格式的图片文件。

如:read_image(Image, “test.jpg”)。

2.图像显示:使用disp_image操作可以对加载图像进行可视化处理并显示在界面上。

如:disp_image(Image)。

3.图像缩放:resize_image操作可以对图像进行缩放处理,缩放后的图像尺寸可以根据需求调整。

如:resize_image(Image,Image2,800,600,”bilinear”)。

4.图像灰度化:使用rgb1_to_gray操作可以将彩色图像转化为灰度图像。

如:rgb1_to_gray(Image,Image2)。

5.边缘检测:使用edge_image操作可以对图像进行边缘检测,检测出目标区域的轮廓和边缘。

如:edge_image(Image,Image2,”canny”)。

6.形态学操作:morph_operator操作可以对图像进行形态学操作,如膨胀、腐蚀、开、闭等。

如:morph_operator(Image,Image2,”dilation”,5)。

7.颜色分割:color_segmentation操作可以根据像素的颜色信息进行分割处理,一般是针对彩色图像。

如:color_segmentation (Image,Image2,“HSV”,[1, 0,0],[255, 255, 255])。

二、HALCON图像处理的应用1.工业质检:HALCON图像处理可以应用于工业质检领域,在生产线上进行产品质量检测,包括外观、尺寸、缺陷等。

2.智能制造:HALCON图像处理可以实现机器视觉智能制造,根据生产工艺流程和生产数据进行智能制造调节和优化。

halcon的deep learning tool的使用方法 -回复

halcon的deep learning tool的使用方法 -回复

halcon的deep learning tool的使用方法-回复Halcon的Deep Learning Tool使用方法Deep learning是一种机器学习的技术,通过构建和训练神经网络,可以实现各种复杂任务的自动化处理,如图像识别、语音识别和自然语言处理等。

Halcon是一款功能强大的图像处理软件,它提供了一个Deep Learning Tool,可以帮助用户进行图像识别任务的深度学习模型训练和应用。

本文将一步一步详细介绍Halcon的Deep Learning Tool的使用方法。

第一步:安装Halcon及Deep Learning Tool要使用Halcon的Deep Learning Tool,首先需要安装Halcon软件。

可以从Halcon官方网站下载免费试用版或购买正式版。

安装完成后,打开Halcon主界面,可以看到左侧的工具栏上有一个Deep Learning Tool 的图标。

点击该图标即可打开Deep Learning Tool。

第二步:准备数据集在进行深度学习任务之前,我们需要准备一个包含训练样本的数据集。

数据集应该包括训练图像和相应的标签。

标签可以是一个数字、一个类别或一段文字,具体根据任务而定。

为了提高训练的准确性,应当尽量贴近实际应用场景,收集大量且多样化的样本。

数据集的准备工作完成后,将数据集导入到Halcon的Deep Learning Tool中。

第三步:创建和训练深度学习模型在Deep Learning Tool中,可以创建一个新的深度学习模型。

首先,点击Deep Learning Tool工具栏中的“New Model”按钮。

然后,给模型取一个名称,并选择一个合适的模型类型。

Halcon提供了多种不同的模型类型,如卷积神经网络(CNN)和循环神经网络(RNN)。

选择适合任务的模型类型后,点击“OK”按钮创建模型。

接下来,需要为模型配置网络结构。

在网络结构界面上,可以添加和配置各种神经网络层。

Halcon基础知识总结(一文学会halcon基础操作,总结自超人视觉)

Halcon基础知识总结(一文学会halcon基础操作,总结自超人视觉)

Halcon基础知识总结(⼀⽂学会halcon基础操作,总结⾃超⼈视觉)此⽂根据《超⼈视觉 halcon启蒙班》写成,结合图⽚和例程,直观简单地介绍halcon的最基本操作基础知识光学:⼏何光学,物理光学数学:导数为主的⾼等数学,矩阵论五种需求:1.识别定位2.符号识别:⼀⼆维码,OCR3.测量需求4.缺陷需求(最常见,难度最⼤)5.⼿眼标定和抓取(结合运动控制)图像处理⼀般思路1.采集2.预处理拉开灰度⼏何变换去噪:中值滤波,均值滤波,⾼斯滤波抠图3.图像分割⼆值化形态学特征选择ps:Halcon⾥区域和图像是不同概念4.识别显⽰5.通信三⼤数据类型图像,区域,XLD灰度直⽅图勾选“阈值”将灰度值在”绿线和红线之间”的以选定颜⾊进⾏填充将把圈定的阈值范围内的直⽅图均匀拉伸释放到整个直⽅图轴上数组语法* Simple tuple operationsTuple1 := [1,2,3,4,5]Number := |Tuple1|SingleElement := Tuple1[3]Part := Tuple1[1:3]Copy := Tuple1[0:|Tuple1| - 1]运⾏结果读取图⽚的四种⽅法1. ⽂件 -> 读取图⽚2. Image Acquisition -> ⾃动检测接⼝(刷新设备)-> Direct show,从摄像头直接读图3. Image Acquisition -> 选择⽂件,从图像⽂件中读取4. Image Acquisition -> 选择路径,结合正则表达式读取路径下的图⽚PS:⽤Image Acquisition读取时记得点击代码⽣成摄像头抓取模式:在可视化 -> 更新窗⼝中调整同步采集:实时抓取,⼀直抓取异步采集:只等图⽚处理完后,grab_image才开始抓取PS:更多信息包括双相机采集,可以在案例 -> ⽅法 -> 图像采集设备中学习ROI(感兴趣区域)特征检测PS:⼆值化之后的区域虽然不连通,但仍然认为是⼀个区域。

halcon深度学习汇总(一)

halcon深度学习汇总(一)

halcon深度学习汇总(⼀)1、set_dl_model_param(DLModelHandle, 'gpu', GpuId)GpuId=0 选中第⼀块显卡做深度学习训练。

GpuId=1 选中第⼆块显卡做深度学习训练。

类推查询可⽤多显卡信息query_available_compute_devices(DeviceIdentifier) //⼀块显卡输出[0],两块是[0,1],依次类推get_compute_device_info(0,’name‘,info) //0代表第⼀块显卡,1代表第⼆块显卡判断GPU是否可⽤get_system ('cuda_loaded', CudaLoaded)get_system ('cudnn_loaded', CuDNNLoaded)get_system ('cublas_loaded', CuBlasLoaded)if (not (CudaLoaded == 'true' and CuDNNLoaded == 'true' and CuBlasLoaded == 'true'))UseGPU := false多个深度学习库,可以同时设置多个库的深度学习的GPU,但是显卡需要⾜够⼤的内存,否则会报下⾯的异常。

如果内存不够,可以⽤完⼀个深度学习的库之后,⽤clear_dl_model清除掉⼀个,然后设置另外⼀个的Gpu序号。

同⼀个深度学习库设置多遍是不会报错的。

⼀台电脑可以装多张显卡,型号可以不⼀样。

深度学习库训练和推理不能跨gpu进⾏。

⼀个gpu可以同时⽀持多个深度学习库(前提是gpu硬件性能⽀持)。

2、apply_dl_model (DLModelHandle, DLSampleBatch, [], DLResults)DLSampleBatch := gen_tuple_const(BatchSize,-1)set_dict_object (ImagePreprocessed, DLSample, 'image')DLSampleBatch[ImageIndex] := DLSampleget_dict_object (SegImage, DLResults[ResultIndex], 'segmentation_image')get_dict_object (Confidence, DLResults[ResultIndex], 'segmentation_confidence')get_dict_object (ImagePreprocessed, DLSampleBatch[ResultIndex], 'image')输⼊和输出都要⽤循环来实现、3、(halcon 18.11)要求输⼊的数量和BatchSize要相等,否则会报错规格不对(halcon 19.11)没有这个要求,可以⼤于,也可以⼩于。

HALCON运算符及功能

HALCON运算符及功能

HALCON运算符及功能1. 图像加载运算符(read_image):该运算符用于从文件系统中加载图像。

它支持多种图像格式,如BMP、JPEG、PNG等。

加载后的图像可以进行后续的处理和分析。

2. 图像显示运算符(disp_image):该运算符用于在图像窗口中显示图像。

它可以显示一张或多张图像,并支持图像的缩放、平移和旋转等操作。

3. 灰度转换运算符(rgb_to_gray):该运算符用于将彩色图像转换为灰度图像。

在后续的处理中,灰度图像常常用于进行边缘检测、形状识别等任务。

4. 图像滤波运算符(filter):该运算符用于对图像进行滤波操作。

常见的滤波器有高斯滤波器、中值滤波器等,可以用于图像的平滑、增强和去噪等处理。

5. 边缘检测运算符(edges_image):该运算符用于检测图像中的边缘。

它可以根据图像的梯度信息,找到图像中的边缘区域,并提取出边缘轮廓。

6. 形状匹配运算符(find_shape_model):该运算符用于在图像中寻找特定形状的对象。

它可以通过事先学习一个形状模板,进行形状的匹配,并返回匹配结果。

7. 颜色提取运算符(extract_channel):该运算符用于从彩色图像中提取指定通道的颜色信息。

通过提取颜色信息,可以实现对图像中特定物体的颜色识别和分割。

8. 基本几何运算符(gen_rectangle1):该运算符用于生成矩形区域。

通过指定矩形的位置、大小和旋转角度等参数,可以生成一个矩形区域,用于后续的图像处理。

9. 图像拼接运算符(concat_obj):该运算符用于将多张图像拼接在一起。

通过指定拼接的方式和位置,可以实现对图像的合并和拼接操作。

10. 图像保存运算符(write_image):该运算符用于将图像保存到文件系统中。

保存后的图像可以供后续的处理和分析使用。

以上是HALCON中常见的几种运算符及其功能。

HALCON提供了丰富的运算符,可以满足不同的图像处理需求。

Halcon学习之一:查询图像参数

Halcon学习之一:查询图像参数

Halcon學習之一:查詢圖像參數1、get_grayval ( Image : : Row, Column : Grayval )計算Image圖像中坐標為(Row,Column)的點的灰度值Grayval。

2、get_image_pointer1 ( Image : : : Pointer, Type, Width, Height )計算Image圖像的數據指針Pointer,圖像類型Type,圖像寬度Width和高度Height。

Pointer指向了Image data的起點位置。

3、get_image_pointer3 ( ImageRGB : : : PointerRed, PointerGreen,PointerBlue, Type, Width, Height )計算彩色圖像ImageRGB的參數。

4、get_image_pointer1_rect ( Image : : : PixelPointer, Width, Height,VerticalPitch, HorizontalBitPitch, BitsPerPixel )計算Image圖像中定義區域的最小的長方形的區域的指針Pointer,寬度Width,高度Height,VerticalPitch代表Image的Width*(HorizontalBitPitch/8)。

兩個相鄰象素的水平距離(以比特計算)HorizontalBitPitch,每像素的比特數BitsPerPixel。

5、get_image_time ( Image : : : MSecond, Second, Minute, Hour, Day, YDay, Month, Year )獲取圖像生成的時間。

程序::可以通過上述查看參數深入了解各個函數的具體意義。

1dev_open_window (0, 0, 512, 512, 'black', Handle1)23read_image (Image, 'G:/Halcon/機器視覺/images/autobahn.png')45get_grayval (Image, 12, 66, Grayval)67get_image_pointer1 (Image, Pointer, Type, Width, Height)89draw_region (Region1, Handle1)1011reduce_domain (Image, Region1, ImageReduced)1213get_image_pointer1_rect (ImageReduced, PixelPointer, Width1, Height1,VerticalPitch, HorizontalBitPitch, BitsPerPixel)1415read_image (Image1, 'G:/Halcon/機器視覺/images/claudia.png')1617get_image_pointer3 (Image1, PointerRed, PointerGreen, PointerBlue, Type1, Width2, Height2)1819get_image_time (Image, MSecond, Second, Minute, Hour, Day, YDay, Month, Year)。

halcon教程

halcon教程

halcon教程Halcon是一种广泛应用于机器视觉领域的软件库,它提供了丰富的图像处理和分析功能。

本教程将介绍Halcon的基本使用方法,涵盖图像读取、预处理、特征提取、目标检测等常用操作。

1. 图像读取使用Halcon的read_image函数可以从文件中读取图像数据。

可以通过指定文件路径来读取图像,例如:read_image(Image, 'image.jpg')2. 图像预处理在图像处理之前,通常需要对图像进行一些预处理操作,以改善后续处理的效果。

Halcon提供了丰富的预处理函数,如灰度化、平滑、滤波等。

例如,可以使用以下代码对图像进行灰度化处理:gray_image(Image, GrayImage)3. 特征提取Halcon提供了多种特征提取函数,可以从图像中获取有用的信息。

常用的特征包括边缘、角点、斑点等。

例如,可以使用find_edges函数在图像中提取边缘信息:find_edges(GrayImage, Edges, 10, 40)4. 目标检测目标检测是机器视觉中的一个重要任务,Halcon提供了多种目标检测函数和算法。

例如,可以使用find_shape_models函数对图像中的形状进行检测:find_shape_models(GrayImage, Model, AngleStart, AngleExtent, MinScore, NumMatches, SubPixel, Greediness, Result)以上是一些Halcon的基本用法,通过学习这些基础知识,您可以在机器视觉应用中更好地运用Halcon库进行图像处理和分析。

希望这些信息对您有所帮助!。

Halcon结合C#二次开发读取图片并处理图片

Halcon结合C#二次开发读取图片并处理图片

Halcon结合C#二次开发读取图片并处理图片在Halcon12.0中的程序编辑器编辑程序:read_image(Image,'E:/Tulips.jpg')get_image_size(Image,Width,Height)rgb1_to_gray(Image,GrayImage)文件——导出打开VS2010 新建项目名称WindowsFormsHalcon——确定右键WindowsFormsHalcon——属性更改目标框架为.NET Framework4然后在“生成”选项下更改目标平台为Any CPU(其他均不用修改)在工具箱栏右键——选择项halcondotnet.dll——打开出现如下界面——确定在工具箱中出现控件HWindowControl在Form1窗体中拖入控件HWindowControl,两个Button按钮控件,OpenFileDialog控件在VS2010中打开之前导出的Halcon程序,修改程序后写入窗体程序如下:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using HalconDotNet; //添加引用HalconDotNetnamespace WindowsFormsHalcon{public partial class Form1 : Form{HDevelopExport HD = new HDevelopExport(); //添加代码string ImagePath;public Form1(){InitializeComponent();this.btnHandle.Enabled = false; //添加代码,读取图片前处理图片按钮是不可用的}//读取图片按钮操作private void btnRead_Click_1(object sender, EventArgs e){openFileDialog1.Filter = "JPEG文??件tt|*.jpg*|BMP文??件tt|*.bmp*|TIFF文??件tt|*.tiff*";openFileDialog1.RestoreDirectory = true;openFileDialog1.FilterIndex = 1; //设置对话框属性if (openFileDialog1.ShowDialog() == DialogResult.OK){ImagePath = openFileDialog1.FileName;HD.ReadImage(hWindowControl1.HalconWindow, ImagePath); // void HDevelopExport.ReadImage(Htuple Window,string path)this.btnHandle.Enabled = true; //读取图片后处理图片按钮可用}}//处理图片按钮操作private void btnHandle_Click_1(object sender, EventArgs e){HD.ImagePro();this.btnHandle.Enabled = false; //处理图片后处理图片按钮不可用}}public partial class HDevelopExport{public HTuple hv_ExpDefaultWinHandle; //Htuple--Halcon tuple,tuple是Halcon特有的数据结构,可用于图形和控制变量,是与外界程序数据交互的通道HObject ho_Image, ho_GrayImage;// Main procedurepublic void InitHalcon(){// Default settings used in HDevelopHOperatorSet.SetSystem("do_low_error", "false");}//读取图片public void ReadImage(HTuple Window, string path){hv_ExpDefaultWinHandle = Window;HOperatorSet.GenEmptyObj(out ho_Image);//创建一个空的tuple对象ho_Image.Dispose();HOperatorSet.ReadImage(out ho_Image, path);HOperatorSet.DispObj(ho_Image, hv_ExpDefaultWinHandle);}//处理图片public void ImagePro(){HOperatorSet.Rgb1ToGray(ho_Image, out ho_GrayImage);HOperatorSet.DispObj(ho_GrayImage, hv_ExpDefaultWinHandle);ho_GrayImage.Dispose();}}}程序运行后点击“读取图片”选择图片路径出现如下界面:点击“打开”点击“处理图片”。

Halcon的图像获取的实例

Halcon的图像获取的实例

Halcon的图像获取的实例重新整理之前旧网站上发布过的帖子。

比较常用的几个图像获取的例子,之前刚刚学习halcon的时候写的,作为入门的第一步,还是值得再分享一下的。

*=================分割线1==================*图像获取的基本代码(1)*读取路径下的图片,image1read_image(image1,'F:/Halcon test/barcode/image/1.png') *=================分割线2==================*图像获取的基本代码(2)*读取路径下的多张图片,image2imagepath :=[]*建立一个图像读取的数组,命名为imagepath。

imagepath[0]:='F:/Halcon test/barcode/image/2.png'imagepath[1]:='F:/Halcon test/barcode/image/3.png'imagepath[2]:='F:/Halcon test/barcode/image/4.png'imagepath[3]:='F:/Halcon test/barcode/image/5.png'*读取4张图片的路径for i:=0 to 3 by 1read_image(image2,imagepath[i])endfor*=================分割线3==================*图像获取的基本代码(3)*读取文件夹下的某些图片,image3for i:=1 to 5 by 1read_image(image3,'F:/Halcontest/barcode/image/'+i+'.png')endfor*=================分割线4==================*图像获取的基本代码(4)*读取文件夹下的所有图片和文件夹,image4* Code generated by Image Acquisition 01list_files ('F:/Halcon test/barcode/image', ['files','directories','recursive','max_depth 2','follow_links'], ImageFiles)tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima) $','ignore_case'], ImageFiles)*'ignore_case':忽略大小写*'\\.' --> '.'for Index := 0 to |ImageFiles| - 1 by 1read_image (Image4, ImageFiles[Index])* Do somethingendfor*=================分割线5==================*图像获取的基本代码(5)*连接摄像机读取图像,image5* Code generated by Image Acquisition 02open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', 'default', '0', -1, -1, AcqHandle)grab_image_start (AcqHandle, -1)while (true)grab_image_async (Image5, AcqHandle, -1)* Do somethingendwhileclose_framegrabber (AcqHandle)。

Halcon结合C#二次开发读取图片并处理图片

Halcon结合C#二次开发读取图片并处理图片

Halcon结合C#二次开发读取图片并处理图片在Halcon12.0中的程序编辑器编辑程序:read_image(Image,'E:/Tulips.jpg')get_image_size(Image,Width,Height)rgb1_to_gray(Image,GrayImage)文件——导出打开VS2010 新建项目名称WindowsFormsHalcon——确定右键WindowsFormsHalcon——属性更改目标框架为.NET Framework4然后在“生成”选项下更改目标平台为Any CPU(其他均不用修改)在工具箱栏右键——选择项浏览——选择目标路径:C:\Program Files\MVTec\HALCON-12.0\bin\dotnet35选择halcondotnet.dll——打开出现如下界面——确定在工具箱中出现控件HWindowControl在Form1窗体中拖入控件HWindowControl,两个Button按钮控件,OpenFileDialog 控件在VS2010中打开之前导出的Halcon程序,修改程序后写入窗体程序如下:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using HalconDotNet; //添加引用HalconDotNetnamespace WindowsFormsHalcon{public partial class Form1 : Form{HDevelopExport HD = new HDevelopExport(); //添加代码string ImagePath;public Form1(){InitializeComponent();this.btnHandle.Enabled = false; //添加代码,读取图片前处理图片按钮是不可用的}//读取图片按钮操作private void btnRead_Click_1(object sender, EventArgs e){openFileDialog1.Filter = "JPEG文??件tt|*.jpg*|BMP文??件tt|*.bmp*|TIFF文??件tt|*.tiff*";openFileDialog1.RestoreDirectory = true;openFileDialog1.FilterIndex = 1; //设置对话框属性if (openFileDialog1.ShowDialog() == DialogResult.OK){ImagePath = openFileDialog1.FileName;HD.ReadImage(hWindowControl1.HalconWindow, ImagePath); // void HDevelopExport.ReadImage(Htuple Window,string path)this.btnHandle.Enabled = true; //读取图片后处理图片按钮可用}}//处理图片按钮操作private void btnHandle_Click_1(object sender, EventArgs e){HD.ImagePro();this.btnHandle.Enabled = false; //处理图片后处理图片按钮不可用}}public partial class HDevelopExport{public HTuple hv_ExpDefaultWinHandle; //Htuple--Halcon tuple,tuple是Halcon特有的数据结构,可用于图形和控制变量,是与外界程序数据交互的通道HObject ho_Image, ho_GrayImage;// Main procedurepublic void InitHalcon(){// Default settings used in HDevelopHOperatorSet.SetSystem("do_low_error", "false");}//读取图片public void ReadImage(HTuple Window, string path){hv_ExpDefaultWinHandle = Window;HOperatorSet.GenEmptyObj(out ho_Image);//创建一个空的tuple对象ho_Image.Dispose();HOperatorSet.ReadImage(out ho_Image, path);HOperatorSet.DispObj(ho_Image, hv_ExpDefaultWinHandle);}//处理图片public void ImagePro(){HOperatorSet.Rgb1ToGray(ho_Image, out ho_GrayImage);HOperatorSet.DispObj(ho_GrayImage, hv_ExpDefaultWinHandle);ho_GrayImage.Dispose();}}}程序运行后点击“读取图片”选择图片路径出现如下界面:点击“打开”点击“处理图片”欢迎下载,谢谢观看!资料仅供参考学习。

halcon连接图像采集设备与halcon多线程采图

halcon连接图像采集设备与halcon多线程采图

Halcon连接采图设备与Halcon多线程采图大恒图像娄训志ØHalcon 介绍ØHalcon 采图知识与常用算子ØHalcon 连接采图设备ØHalcon 连接采图设备编程应用ØHalcon 连接多个采图设备ØHalcon 与多线程采图Ø相关背景MVTec公司是世界上最著名的机器视觉软件公司,也是世界上标准机器视觉软件的领导者。

MVTec公司具有强大的开发和技术支持能力,50%的成员具有博士学位和机器视觉领域的长期工作经验。

Ø什么是HalconHalcon是在世界范围内广泛使用的机器视觉软件。

用户可以利用其开放式结构快速开发图像处理和机器视觉应用软件。

ØHalcon包含些什么Halcon包含Blob分析,形态学,模式识别与匹配,测量,2、3D相机标定,双目视觉,立体匹配等性能杰出的图像算法,以及图像采集,I/O 通信等工具。

Ø为什么使用HalconHalcon支持Linux/UNIX,Windows32/64位等操作系统,所有的库均可以使用C,C++,C#,VB和delphi编程语言访问,使用比较方便。

Halcon能够从软件上帮助你,解决绝大多数机器视觉软件问题。

Ø图像采集Halcon尽可能地保证与硬件无关,支持大多数图像采集卡,及带有DirectShow和IEEE 1394驱动等的采集设备。

Halcon采集图像的特点•图像采集链接库,独立于其它图像处理链接库•一致的代码模板(磁盘文件和图像采集设备)•支持多个采集设备•同步和异步采集•支持外触发•图像尺寸、图像位数、颜色空间可调•支持颜色查找表•支持与设备相关的参数调整ØImages in Halcona.Multiple channels自动处理多通道图像或单通道图像b.Various pixel types自动处理多型号位深的图像c.Arbitrarily-shaped region of interest 任意形状的感兴趣区域Øimage tuples in Halcon例如:如果想对一批图像进行滤波处理,你只需要调用一次mean_image 算子对图像数组进行操作,避免多次调用mean_image 。

halcon引擎函数

halcon引擎函数

halcon引擎函数Halcon引擎函数是一种用于机器视觉的软件工具,它提供了丰富的函数库和算法,用于图像处理、模式识别和机器视觉应用开发。

本文将介绍几个常用的Halcon引擎函数,包括图像读取函数、图像处理函数和模式匹配函数。

一、图像读取函数Halcon引擎提供了多种图像读取函数,用于从不同的数据源读取图像。

其中,最常用的是read_image函数。

该函数可以从本地文件系统中读取图像文件,并将其加载到内存中供后续处理使用。

read_image函数支持多种图像格式,如JPEG、PNG和BMP等。

二、图像处理函数Halcon引擎提供了丰富的图像处理函数,用于对图像进行各种处理操作。

这些函数可以实现图像的滤波、增强、分割和测量等功能。

例如,smooth_image函数可以对图像进行平滑处理,去除噪声和细节;threshold函数可以对图像进行二值化处理,将图像转换为黑白两色;regiongrowing函数可以对图像进行区域生长处理,实现图像的分割。

三、模式匹配函数Halcon引擎提供了多种模式匹配函数,用于在图像中寻找指定的模式。

这些函数可以实现图像的特征提取、模式匹配和目标定位等功能。

其中,最常用的是find_shape_model函数。

该函数可以在图像中寻找与给定模板匹配的目标,并返回其位置和姿态信息。

find_shape_model函数支持多种匹配算法,如灰度匹配和形状匹配等。

四、示例应用下面通过一个简单的示例来演示如何使用Halcon引擎函数实现图像处理和模式匹配。

假设我们需要在一幅图像中搜索并定位一个特定的物体。

首先,我们可以使用read_image函数将图像加载到内存中。

然后,我们可以使用smooth_image函数对图像进行平滑处理,去除噪声和细节。

接下来,我们可以使用threshold函数对图像进行二值化处理,将图像转换为黑白两色。

最后,我们可以使用find_shape_model函数在二值化图像中寻找与给定模板匹配的目标,并返回其位置和姿态信息。

halcon知识点总结

halcon知识点总结

Halcon知识点总结Halcon是一种强大的机器视觉编程软件,广泛应用于图像处理和机器视觉领域。

它提供了丰富的算法库和工具,使开发人员能够开发出高效、精确的视觉应用程序。

在本文中,我将总结一些Halcon的关键知识点。

1.Halcon基础知识 Halcon是一种面向对象的编程语言,具有强大的图像处理能力。

它支持多种图像格式,并提供了丰富的图像处理函数和算法。

要使用Halcon,首先需要了解其基本语法和函数的使用方法。

2.图像输入与输出在Halcon中,图像可以从文件中读取或通过相机进行采集。

要从文件中读取图像,可以使用read_image函数,该函数接受图像文件的路径作为参数。

要将图像保存到文件中,可以使用write_image函数,并指定保存路径和文件格式。

3.图像预处理在进行图像处理之前,通常需要对图像进行预处理,以提高处理的效果。

Halcon提供了丰富的图像预处理函数,包括图像平滑、增强、滤波等。

常用的预处理函数包括gauss_filter、median_image和enhance等。

4.图像分割与特征提取图像分割是图像处理中的一项重要任务,它将图像分割成具有不同特征的区域。

Halcon提供了多种图像分割算法,例如阈值分割、边缘检测和区域生长等。

完成图像分割后,可以使用特征提取函数获取每个区域的特征,如区域的形状、大小和颜色等。

5.目标定位与匹配目标定位是在图像中找到感兴趣的目标位置。

Halcon提供了多种目标定位算法,包括模板匹配、形状匹配和关键点匹配等。

通过设定合适的模板或特征描述子,可以在图像中准确地定位目标位置。

6.二维码和条形码识别在许多应用中,需要对二维码和条形码进行自动识别。

Halcon提供了方便的函数和工具,用于解码和识别不同类型的二维码和条形码。

通过使用相应的函数,可以实现快速而准确的二维码和条形码识别。

7.三维视觉与立体匹配除了二维视觉外,Halcon还提供了强大的三维视觉功能。

halcon代码案例

halcon代码案例

halcon代码案例摘要:1.引言2.Halcon代码案例介绍3.案例一:图像读取与显示4.案例二:图像处理与分析5.案例三:图像识别与定位6.案例四:Halcon与其他编程语言的结合应用7.总结正文:Halcon是一款功能强大的机器视觉软件,广泛应用于工业自动化、医疗影像处理等领域。

本文将通过四个案例,向大家展示Halcon在实际应用中的魅力。

首先,我们来看一个简单的图像读取与显示案例。

在这个案例中,我们将使用Halcon读取一张图片,并将其显示在屏幕上。

代码如下:```read_image (Image, "path/to/image")display (Image)```接下来,我们通过一个图像处理与分析案例,来了解如何使用Halcon对图像进行处理。

在这个案例中,我们将实现图像的灰度化、滤波、边缘检测等操作。

代码如下:```read_image (Image, "path/to/image")convert_to_gray (Image, GrayImage)filter_by_laplacian (GrayImage, LaplacianImage)threshold (LaplacianImage, Region, 0, 128)```在第三个案例中,我们将利用Halcon进行图像识别与定位。

这个案例将通过训练一个SVM分类器,来实现对图像中特定目标的识别与定位。

代码如下:```train_svm (Data, Classifier)detect_objects (Image, Classifier, Region)```最后,我们来看一个Halcon与其他编程语言结合应用的案例。

在这个案例中,我们将使用C++与Halcon相互调用,实现一个简单的实时图像处理程序。

代码如下:```#include <iostream>#include <HalconCpp.h>int main(){// 初始化HalconHalconCpp::Halcon::init(".");// 读取图像Halcon::Image Image;read_image (Image, "path/to/image");// 处理图像Halcon::Image GrayImage;convert_to_gray (Image, GrayImage);// 释放资源HalconCpp::Halcon::exit();return 0;}```综上所述,Halcon在机器视觉领域具有广泛的应用,通过本文提供的四个案例,相信大家对Halcon的使用已经有了初步了解。

halcon学习笔记——(11)Image,region,xld初步

halcon学习笔记——(11)Image,region,xld初步

halcon学习笔记——(11)Image,region,xld初步⼀读取的3种⽅式:read_image( image,'filename') //image 是输出对象,后⾯是输⼊⽂件的路径和名称读取多图:1,申明⼀个数组,分别保存路径ImagePath:=[]ImagePath[0]:='D:/1.bmp'ImagePath[1]:='D:/2.bmp'ImagePath[2]:='D:/3.bmp'for i:=0 to 2 by 1read_image(Image,ImagePath[i])endfor2,for 循环for i:=1 to 3 by 1read_image(Image,'D:/’+'i'+'.bmp')endfor3, 读取⽬录下所有⽂件助⼿,打开图像,选择路径,插⼊代码list_files(输⼊⽂件⽬录地址,选取的要求(files指定选取⽂件格式,recursive递归,深⼊所有,derectories选取⽂件夹,follow_links,max_depth 5...),输出的被选择的⽂件列表)选择符合规则的tuple,其中\\.是转义符,等价于'-->'tuple_regexp_select(⽂件名字,['\\.(bmp|tif)$','ignore_case忽略⼤⼩写'],输出)fabric⽂件路径⼆图像变量Region预处理:消除噪声mean_image/ binomial_filter抑制⼩斑点或者细线median_image平滑smooth_image保存边缘的平滑anisotropic_diffusion变量Region:Region 为某些附和要求性质的像素的⼦集,或者说⼀些被选择的图块区域s,region⼤⼩不受图像限制,有fill和margin两种表达⽅式,类似于游程编码,可⽤于压缩,eg:⽤a2b3c4代表aabbbccccregion操作:选择相应区域select_shape(regions,output,'select type',..requirements)计算相应区域的⾯积,中⼼坐标:area_center(regions,area,row,column)不规则区域的转换:shape_trans(region,regiontrans,type)convex hull凸包围(由外向内包围)outer_circle 外圆(能够包括对象的半径最⼩的圆形)inner_circle 内圆rectangle1 正矩形rectangle2 最⼩包围矩形inner_rectangle1 最⼤内矩形三图型变量XLD(eXtended Line Descriptions)XLD代表亚像素级别的轮廓或者多边形threshold_sub_pix(inputimage, output,requirement)gen_contour_region_xld(inputRegion,output,...)XLD的选择操作(select_shape_xld/selet_contours_xld):select_shape_xld(XLD:SelectedXLD:Features,Operation,Min,Max:)select_contours_xld(Contours:SelectedContours:Feature,Min1,Max1,Min2,Max2:)计算xld的⾯积以及中⼼位置:area_center_xld(XLD:::Area,row,column,pointOrder)xld的合并操作:union_colliner_contours_xld: 合并同⼀直线的xldunion_cocircular_contours_xld: 合并同圆的xldunion_adjacent_contours_xld: 合并相邻的xldxld的转换操作与region类似:shape_trans_xld(XLD:XLDTrans:Type:)有上⾯⼏个类型Xld的分割操作(segment_contours_xld)把初始xld分割成直线,直线和圆,直线和椭圆segment_contours_xld(Contours: ContoursSplit: Mode,SmoothCont, MaxLineDist1, MaxLineDist2:)Xld 的拟合操作(fit_***_contour_xld) 把不完整的形状拟合完整fit_line_contour_xldfit_circle_contour_xldfit_ellipse_contour_xldfit_rectangle2_contour_xld总结:图像和视频,⽂件的读取Region和XLD的初步介绍注意:在使⽤edges_sub_pix提取出来的结果,往往不是完整的圆形,需要⽤union来整合出完整的圆形。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Halcon学习(一)读取多张图片
从今天开始每天学习halcon软件。

本博客中所用版本均为halcon11.0。

第一种方法
ImagePath:=[]
ImagePath[0]:='E:/images1/a000.bmp'
ImagePath[1]:='E:/images1/a001.bmp'
ImagePath[2]:='E:/images1/a002.bmp'
ImagePath[3]:='E:/images1/a003.bmp'
ImagePath[4]:='E:/images1/a004.bmp'
ImagePath[5]:='E:/images1/a005.bmp'
ImagePath[6]:='E:/images1/a006.bmp'
ImagePath[7]:='E:/images1/a007.bmp'
for i:=0 to 7 by 1
read_image(Image,ImagePath[i])
endfor
第二种方法
for i:=0 to 7 by 1
read_image(Image,'E:/images1/'+i+'.bmp')
endfor
第三种方法
NumImages :=8
for I :=1 to NumImages-1 by 1
read_image (Image, ' E:/images1/a ' + I$'03d')
endfor
第四种方法(读取一个文件夹下的所有图片)
【助手】》【打开新的image acquisition 】》【图像助手】》【选择路径】》【代码生成】》【插入代码】
洒下的是汗水,收获的是虚空
dev_update_pc ( DisplayMode) 设置程序是否总在前面,对置顶有作用(不支持C++代码)
dev_update_window (DisplayMode) 默认状态下所有的对象(图像,区域,或XLD)都在活动图形窗口显示。

可以用OFF关闭此模式(不支持C++代码)
dev_update_var (DisplayMode) 默认状态下系统变量窗口的所
有的变量实时更新。

可用OFF关闭此模式。

在关闭模式下,只有当些实例运行完毕才更新变量窗口(不支持C++代码)
dev_update_time (DisplayMode)是否显示算子的运行时间(不支持C++代码)
具体例子参考affine_transform_image.hdev。

相关文档
最新文档