搜档网
当前位置:搜档网 › HALCON算子函数Chapter 17:Tools

HALCON算子函数Chapter 17:Tools

HALCON算子函数Chapter 17:Tools
HALCON算子函数Chapter 17:Tools

HALCON算子函數——Chapter 17 : Tools 17.1 2D-Transformations

1. affine_trans_pixel

功能:對像素坐標軸進行任意的仿射二維變換。

2. affine_trans_point_2d

功能:對點進行任意的最簡二維變換

3. bundle_adjust_mosaic

功能:對一幅圖像的嵌合體采取一系列調整。

4. hom_mat2d_compose

功能:將兩種相同類型二維變換矩陣相乘。

5. hom_mat2d_determinant

功能:計算一個同質的二維變換矩陣的行列式。

6. hom_mat2d_identity

功能:構建二維變換同樣的同質變換矩陣。

7. hom_mat2d_invert

功能:插入一個同質二維變換矩陣。

8. hom_mat2d_rotate

功能:為一個同質二維變換矩陣添加一個循環。

9. hom_mat2d_rotate_local

功能:為一個同質二維變換矩陣添加一個循環。

10. hom_mat2d_scale

功能:為一個同質二維變換矩陣添加一個縮放。

11. hom_mat2d_scale_local

功能:為一個同質二維變換矩陣添加一個縮放。

12. hom_mat2d_slant

功能:為一個同質二維變換矩陣添加一個斜面。

13. hom_mat2d_slant_local

功能:為一個同質二維變換矩陣添加一個斜面。

14. hom_mat2d_to_affine_par

功能:計算一個來自一個同質二維變換矩陣的仿射變換參數。

15. hom_mat2d_translate

功能:為一個同質二維變換矩陣添加一個旋轉。

16. hom_mat2d_translate_local

功能:為一個同質二維變換矩陣添加一個旋轉。

17. hom_mat2d_transpose

功能:將一個同質二維變換矩陣轉置。

18. hom_mat3d_project

功能:給一個二維投影變換矩陣投影一個仿射三維變換矩陣。

19. hom_vector_to_proj_hom_mat2d

功能:根據給定點的映射計算一個同質變換矩陣。

20. proj_match_points_ransack

功能:通過找到兩副圖像中點與點之間的映射計算一個投影變換矩陣。

21. projective_trans_pixel

功能:利用一個同質投影變換矩陣表示像素坐標軸。

22. projective_trans_point_2d

功能:利用一個投影變換矩陣表示一個同質二維點。

23. vector_angle_to_rigid

功能:從點和角度方面計算一個嚴格的仿射變換。

24. vector_field_to_hom_mat2d

功能:根據位移矢量字段獲取一個最接近的近似圖。

25. vector_to_hom_mat2d

功能:根據點與點間的映射獲取一個最接近的近似圖

26. vector_to_proj_hom_mat2d

功能:利用給定點的映射計算一個映射變換矩陣。

27. vector_to_rigid

功能:根據點的映射獲取一個近似嚴格的仿射變換。

28. vector_to_similarity

功能:根據點的映射獲取一個近似的相似變換。

17.2 3D-Transformations

1. affine_trans_point_3d

功能:對點運用一個隨即仿射三維變換。

2. convert_pose_type

功能:改變一個三維模式的表示類型。

3. create_pose

功能:創建一個三維模式。

4. get_pose_type

功能:獲取一個三維模式的表示類型。

5. hom_mat3d_compose

功能:將兩個同質三維變換矩陣相乘。

6. hom_mat3d_identity

功能:構建三維變換同樣的同質變換矩陣。

7. hom_mat3d_invert

功能:插入一個同質三維變換矩陣。

8. hom_mat3d_rotate

功能:為一個同質三維變換矩陣添加一個循環。

9. hom_mat3d_rotate_local

功能:為一個同質三維變換矩陣添加一個循環。10. hom_mat3d_scale

功能:為一個同質三維變換矩陣添加一個縮放。11. hom_mat3d_scale_local

功能:為一個同質三維變換矩陣添加一個縮放。12. hom_mat3d_to_pose

功能:將一個同質變換矩陣轉換為一個三維模式。

13. hom_mat3d_translate

功能:為一個同質三維變換矩陣添加一個旋轉。

14. hom_mat3d_translate_local

功能:為一個同質三維變換矩陣添加一個旋轉。15_.pose_to_hom_mat3d

功能:將一個三位模式轉換為一個同質變換矩陣。

16. read_pose

功能:從一個文本文件中讀取一個三維模式。17. set_origin_pose

功能:轉換一個三位模式的原點。

18. write_pose

功能:將一個三維模式寫入一個文本文件。

17.3 Background-Estimator

1. close_all_bg_esti

功能:清除所有的背景評估數據集。

2. close_bg_esti

功能:清除背景估測數據集。

3. create_bg_esti

功能:為背景評估創建和初始化一個數據集。

4. get_bg_esti_params

功能:返回數據集的參數。

5. give_bg_esti

功能:返回估測背景圖像。

6. run_bg_esti

功能:評估背景並返回前景區域。

7. set_bg_esti_params

功能:改變數據集的參數。

8. update_bg_esti

功能:改變估測背景圖像。

17.4 Barcode

1. clear_all_bar_code_models

功能:清除所有條形碼模型,釋放其分配的存儲空間。

2. clear_bar_code_model

功能:清除一個條形碼模型,釋放相應的存儲空間。

3. create_bar_code_model

功能:創建一個條形碼閱讀器模型。

4. find_bar_code

功能:檢測和讀取一幅圖像中條形碼符號。

5. get_bar_code_object

功能:訪問創建在搜尋或條形碼符號解碼過程中的對象圖標。

6. get_bar_code_param

功能:獲取一個或多個描述條形碼模式的參數。

7. get_bar_code_result

功能:獲取字母數字混合編碼的結果,其是在條形碼符號解碼過程中累計的。

8. set_bar_code_param

功能:設置條形碼模型的選定參數。

17.5 Calibration

1. caltab_points

功能:從校准板說明文件中讀取標志中心點。

2. cam_mat_to_cam_par

功能:計算從一個相機矩陣獲取的內部相機參數。

3. cam_par_to_cam_mat

功能:從相機內部參數計算一個相機矩陣。

4. camera_calibration

功能:決定同時發生的最小化程序的所有相機參數。

5. change_radial_distortion_cam_par

功能:根據與特殊放射失真相一致決定新的相機參數。

6. change_radial_distortion_contours_xld

功能:改變了輪廓(contour)的放射失真。

7. change_radial_distortion_image

功能:改變一幅圖像的放射失真。

8. contour_to_world_plane_xld

功能:將一個XLD輪廓(contour)轉換為一個坐標系統中平面Z為零。

9. create_caltab

功能:創建一個描述文件和附文件的校准板。

10. disp_caltab

功能:投射和視覺化圖像中校准板的三維模型。

11. find_caltab

功能:分割和標准化圖像中的校准板區域。

12. find_marks_and_pose

功能:從圖像中提取二維校准標志和為外部計算機參數計算內部數值。

13. gen_caltab

功能:創建一個校准板說明文件和相應的附文件。

14. gen_image_to_world_plane_map

功能:創建一個投射圖,其描述圖像平面與坐標軸系統中平面Z為零之間的映射。

15. gen_radial_distortion_map

功能:創建一個投射圖,其描述圖像與其相應正在改變的放射失真間的映射。

16. get_circle_pose

功能:從一個圓周相應的二維投射中決定它的三維模式。

17. get_line_of_sight

功能:計算相應於圖像中一個點的視線。

18. get_rectangle_pose

功能:從一個矩形相應的二維投射中決定它的三維模式。

19. hand_eye_calibration

功能:執行一個手---眼校准。

20. image_points_to_world_plane

功能:將圖像中的點轉換到坐標軸平面Z為零上。

21. image_to_world_plane

功能:通過將一副圖像轉換為坐標軸系統中平面Z為零而矯正圖像。

22. project_3d_point

功能:將三維點投射到子像素圖像坐標。

23. radiometric_self_calibration

功能:執行一個相機的輻射測量的自校准。

24. read_cam_par

功能:從文本文件中讀取內部相機參數。

25. sim_caltab

功能:根據校准板模擬一幅圖像。

26. stationary_camera_self_calibration

功能:投射一個靜止投射相機的自校准。

27. write_cam_par

功能:將內部相機參數寫入文本文件中。

17.6 Datacode

1. clear_all_data_code_2d_models

功能:清除所有的二維數據模型並釋放它們分配的存儲空間。

2. clear_data_code_2d_model

功能:清除一個二維數據模型並釋放它分配的存儲空間。

3. create_data_code_2d_model

功能:創建一個二維數據編碼類的模式。

4. find_data_code_2d

功能:檢測和讀取一副圖像或測試的二維數據編碼模式中的二維數據編碼符號。

5. get_data_code_2d_objects

功能:查詢搜索二維數據編碼符號過程中創建的對象的圖標。

6. get_data_code_2d_param

功能:獲取一個或多個描述二維數據編碼模型的參數。

7. get_data_code_2d_results

功能:獲取字母數字混合編碼的結果,其是在搜索二維數據編碼符號過程中累計的。

8. query_data_code_2d_params

功能:為一個給定二維數據編碼模型獲取通用參數或對象的名字,其也可用於其他的二維數據編碼模型中。

9. read_data_code_2d_model

功能:從一個文件中讀取一個二維數據編碼模型並新建一個模型。

10. set_data_code_2d_param

功能:設置二維數據編碼模型的選定參數。11. write_data_code_2d_model

功能:將一個二維數據編碼模型寫入一個文件。

17.7 Fourier-Descriptor

1. abs_invar_fourier_coeff

功能:根據起始點的位移標准化傅裡葉系數。2. fourier_1dim

功能:計算一個參數化的元組的傅裡葉系數。3. fourier_1dim_inv

功能:空間傅裡葉變換(傅裡葉逆變換)。

4. invar_fourier_coeff

功能:傅裡葉系數標准化。

5. match_fourier_coeff

功能:兩個元組的相似性。

6. move_contour_orig

功能:將原點變換到引力的中心。

7. prep_contour_fourier

功能:參數化傳輸的元組。

17.8 Function

1. abs_funct_1d

功能:Y值的絕對值。

2. compose_funct_1d

功能:組合兩個函數。

3. create_funct_1d_array

功能:從Y值的序列中創建一個函數。4. create_funct_1d_pairs

功能:從(X,Y)集合中創建一個函數。

5. derivate_funct_1d

功能:計算一個函數的派生物。

6. distance_funct_1d

功能:計算兩個函數的間隔。

7. funct_1d_to_pairs

功能:查詢一個函數的(X,Y)值。

8. get_pair_funct_1d

功能:根據控制點的索引查詢一個函數值。

9. get_y_value_funct_1d

功能:返回任意位置函數的值。

10. integrate_funct_1d

功能:計算一個函數的正區域和負區域。11. invert_funct_1d

功能:計算一個函數的反轉。

12. local_min_max_funct_1d

功能:計算一個函數的局域最小和最大值點。

13. match_funct_1d_trans

功能:計算兩個函數傳遞參數。

14. negate_funct_1d

功能:對Y值取非(反)。

15. num_points_funct_1d

功能:函數控制點的數目。

16. read_funct_1d

功能:從文件中讀取一個函數。

17. sample_funct_1d

功能:再間隔區等距取樣。

18. scale_y_funct_1d

功能:將Y值相乘和相加。

19. smooth_funct_1d_gauss

功能:采用高斯函數平滑一個等距一維函數。

20. smooth_funct_1d_mean

功能:采用平均值將一個等距一維函數平滑化。

21. transform_funct_1d

功能:根據給定傳遞參數變換你一個函數。22. write_funct_1d

功能:將一個函數寫入一個文件。

23. x_range_funct_1d

功能:函數的最小和最大X值。

24. y_range_funct_1d

功能:函數的最小和最大Y值。

25. zero_crossings_funct_1d

功能:計算一個函數的零點。

17.9 Geometry

1. angle_ll

功能:計算兩條線的夾角。

2. angle_lx

功能:計算一條線與垂直軸之間的角度。

3. distance_cc

功能:計算兩個輪廓(contour)間的距離。

4. distance_cc_min

功能:計算兩個輪廓(contour)間的最小距離。

5. distance_lc

功能:計算一條線和一個輪廓(contour)間的距離。

6. distance_lr

功能:計算一條線和一個區域間的距離。

7. distance_pc

功能:計算一個點和一個輪廓(contour)間的距離。

8. distance_pl

功能:計算一個點和一條線間的距離。

9. distance_pp

功能:計算兩個點之間的距離。

10. distance_pr

功能:計算一個點和一個區域間的距離。

11. distance_ps

功能:計算一個點和一條分割線間的距離。12. distance_rr_min

功能:兩個相鄰區域的相同像素間的最小距離。

13. distance_rr_min_dil

功能:膨脹時兩個區域間的最小距離。

14. distance_sc

功能:計算一條分割線和一個輪廓(contour)間的距離。

15. distance_sl

功能:計算一條分割線和一條線間的距離。

16. distance_sr

功能:計算一條分割線和一個區域間的距離。

17. distance_ss

功能:計算兩條分割線間的距離。

18. get_points_ellipse

功能:計算橢圓上特定角度的一個點。

19. intersection_ll

功能:計算兩條線的交集點(相交點)。

20. projection_pl

功能:計算一條線上一個點的投影。

17.10 Grid-Recti?cation

1. connect_grid_points

功能:建立矯正網格的矯正點間的連接。

2. create_rectification_grid

功能:建立一個附文件,描述矯正網格。

3. find_rectification_grid

功能:分割圖像中矯正網格區域。

4. gen_arbitrary_distortion_map

功能:產生一個投射圖,其描述隨意扭曲圖像與正確圖像間的映射。

5. gen_grid_rectification_map

功能:計算扭曲圖像與基於規律的網格的正確的圖像的映射。

17.11 Hough

1. hough_circle_trans

功能:返回指定半徑的圓周的Hough變換。

2. hough_circles

功能:特定半徑的圓周的中心。

3. hough_line_trans

功能:對區域中的線進行Hough變換。

4. hough_line_trans_dir

功能:利用局部方向梯度對線進行Hough變換。

5. hough_lines

功能:借助Hough變化查詢圖像中的線,並將其返回到HNF中。

6. hough_lines_dir

功能:借助采用局部方向梯度的Hough變換查詢圖像中的線,並將它們以正常形式返回。

7. select_matching_lines

功能:選取HNF中線的集合中匹配區域最好的線。

17.12 Image-Comparison

1. clear_all_variation_models

功能:釋放所有變化模型(variation_model)的存儲空間。

2. clear_train_data_variation_model

功能:釋放變化模型(variation_model)的測試數據的存儲空間。

3. clear_variation_model

功能:釋放一個變化模型(variation_model)的存儲空間。

4. compare_ext_variation_model

功能:將一副圖像與一個變化模型(variation_model)相比較。5. compare_variation_model

功能:將一副圖像與一個變化模型(variation_model)相比較。6. create_variation_model

功能:為圖像對比創建一個變化模型。

7. get_thresh_images_variation_model

功能:返回閥值圖像用於圖像對比。

8. get_variation_model

功能:返回圖像用於圖像對比。

9. prepare_direct_variation_model

功能:為圖像對比准備一個變化模型。

10. prepare_variation_model

功能:為圖像對比准備一個變化模型。

11. read_variation_model

功能:從一個文件中讀取一個變化模型。

12. train_variation_model

功能:測試一個變化模型。

13. write_variation_model

功能:將一個變化模型寫入文件。

17.13 Kalman-Filter

1. filter_kalman

功能:借助Kalman(卡爾曼)濾波器估測系統的當前狀態。

2. read_kalman

功能:讀取一個卡爾曼濾波器的說明文件。

3. sensor_kalman

halcon知识点

1. 无论读入什么图像,读入图像显示效果明显和原始图像不一致,哪怕是从相机读入的图像,也是明显颜色差异。什么原因引起? 初步诊断是,显示的时候调用的颜色查找表存在异常不是 default ,而是其它选项。此时可以通过查阅相关参数,调用set_system解决,也可以在编辑-》参数选择-》颜色查找表进行更改。 2. 裁剪图像;从图像上截取某段图像进行保存。如何实现该操作? 首先应该知道,region不具有单独构成图像的要素,他没有灰度值。有用过opencv的应该知道 ROI(感兴趣区域),设置好它后,对图像的大部分操作就转为图像的一个矩形区域内进行。类似的,halcon有domain 概念。首先设置好一个矩形区,然后使用 reduce_domain(是一个矩形区域)后,再使用crop_domain 就裁剪出图像。 3. 读入bmp,或tiff 图像显示该图不是bmp文件或不能读。原因是什么? 这个常有新手询问,画图,图像管理器都能打开,又或者是相机采集完直接存到硬盘。Halcon 读取图像在windows下面到最后是调用windows库函数实现读图功能。咱不清楚到底是怎么调用的。对于图像格式,在读图函数F1说明很细。基本 bmp 如果文件头不是bw还是bm(百度百科bmp格式查找,编写此处时无网络,后续可能忘记),就读不进来。其他规格欢迎补充。解决办法,如果是相机采集,就在内存直接转换(参见 halcon到VC.pdf 里面的halcon和bitmap互转);如果是采完的图片,大部分通过画图工具转换为 24位bmp格式,即可解决。 4.读入avi文件报错。

Halcon 通过 directshow或另一个格式解析视频,正常来说应该可以读入市面大部分视频,实际测试发现只能读入最标准的avi文件格式。如果需要临时处理,需要下格式工厂等工具转化为最标准的avi文件格式(论坛叶诺有发帖说明)。 5. Region 或 xld 筛选。 Halcon提供了丰富的region 和xld筛选方法。Region可以使用select_shape_xld,选择出符合要求的区域,如果不能满足还可以通过类似 region feature 这样关键字组合成的算子获取区域特征,然后通过 tuple 排序或相加减,再通过 tuple_find 确定是对应哪个区域的特征。同样的halcon也提供了 select_contours_xld 进行轮廓筛选。 6. Halcon分几类对象,每个类的功用是? Halcon总分俩大类,tuple和图标对象obj 。Tuple涵盖了对所有基础数据类型的封装,可以理解为她是halcon定义的数组类。Obj 是alcon定义图标类基类。衍生出了许多类型,其中 Region ,Xld,Image 其中最主要的类型。 7. F1说明,参数部分 -array 是什么意思? 该符号说明,该参数接受一组输入,对tuple就是一组tuple,对obj 就是通过concat_obj 或其它操作产生的一组obj元组。 8. 俩个相对方形物体的距离计算。 如果这俩个物体和背景对比清晰,最近的距离在俩条边下则可以再预处理之后进行如下操作:

HALCON形状匹配总结

HALCON形状匹配总结 Halcon有三种模板匹配方法:即Component-Based、Gray-Value-Based、Shaped_based,分别是基于组件(或成分、元素)的匹配,基于灰度值的匹配和基于形状的匹配,此外还有变形匹配和三维模型匹配也是分属于前面的大类 本文只对形状匹配做简要说明和补充: Shape_Based匹配方法: 上图介绍的是形状匹配做法的一般流程及模板制作的两种 方法。 先要补充点知识:形状匹配常见的有四种情况一般形状匹配模板shape_model、线性变形匹配模板 planar_deformable_model、局部可变形模板 local_deformable_model、和比例缩放模板Scale_model 第一种是不支持投影变形的模板匹配,但是速度是最高的,第二种和第四种是支持投影变形的匹配,第三种则是支持局部变形的匹配。 一般形状匹配模板是最常用的,模板的形状和大小一经制作完毕便不再改变,在查找模板的过程中,只会改变模板的方向和位置等来匹配目标图像中的图像。这个方法查找速度很快,但是当目标图像中与模板对应的图像存在比例放大缩小

或是投影变形如倾斜等,均会影响查找结果。涉及到的算子通常为create_shape_model 和find_shape_model 线性变形匹配模板planar_deformable_model是指模板在行列方向上可以进行适当的缩放。行列方向上可以分别独立的进行一个适当的缩放变形来匹配。主要参数有行列方向查找缩放比例、图像金字塔、行列方向匹配分数(指可接受的匹配分数,大于这个值就接受,小于它就舍弃)、设置超找的角度、已经超找结果后得到的位置和匹配分数 线性变形匹配又分为两种:带标定的可变形模板匹配和不带标定的可变形模板匹配。涉及到的算子有: 不带标定的模板:创建和查找模板算子 create_planar_uncalib_deformable_model和 find_planar_uncalib_deformable_model 带标定模板的匹配:先读入摄像机内参和外参 read_cam_par 和read_pose 创建和查找模板算子create_planar_calib_deformable_model和 find_planar_calib_deformable_model 局部变形模板是指在一张图上查找模板的时候,可以改变模板的尺寸,来查找图像上具有局部变形的模板。例如包装纸袋上图案查找。参数和线性变形额差不多 算子如下:create_local_deformable_model和 find_local_deformable_model

HALCON算子函数整理10 Matching-3D

HALCON算子函数——Chapter 10 : Matching-3D 1. affine_trans_object_model_3d 功能:把一个任意有限3D变换用于一个3D目标模型。 2. clear_all_object_model_3d 功能:释放所有3D目标模型的内存。 3. clear_all_shape_model_3d 功能:释放所有3D轮廓模型的内存。 4. clear_object_model_3d 功能:释放一个3D目标模型的内存。 5. clear_shape_model_3d_ 功能:释放一个3D轮廓模型的内存。 6. convert_point_3d_cart_to_spher 功能:把直角坐标系中的一个3D点转变为极坐标。 7. convert_point_3d_spher_to_cart 功能:把极坐标中的一个3D点转变为直角坐标。 8. create_cam_pose_look_at_point 功能:从摄像机中心和观察方向创建一个3D摄像机位置。 9. create_shape_model_3d 功能:为匹配准备一个3D目标模型。 10. find_shape_model_3d 功能:在一个图像中找出一个3D模型的最佳匹配。 11. get_object_model_3d_params

功能:返回一个3D目标模型的参数。 12. get_shape_model_3d_contours 功能:返回一个3D轮廓模型视图的轮廓表示。 13. get_shape_model_3d_params 功能:返回一个3D轮廓模型的参数。 14. project_object_model_3d 功能:把一个3D目标模型的边缘投影到图像坐标中。 15. project_shape_model_3d 功能:把一个3D轮廓模型的边缘投影到图像坐标中。 16. read_object_model_3d_dxf 功能:从一个DXF文件中读取一个3D目标模型。 17. read_shape_model_3d 功能:从一个文件中读取一个3D轮廓模型。 18. trans_pose_shape_model_3d 功能:把一个3D目标模型的坐标系中的位置转变为一个3D轮廓模型的参考坐标系中的位 置,反之亦然。 19. write_shape_model_3d 功能:向一个文件写入一个3D轮廓模型。

Halcon学习之四:有关图像生成的函数

Halcon学习之四:有关图像生成的函数 1、copy_image ( Image : DupImage : : ) 复制image图像 2、region_to_bin ( Region : BinImage : ForegroundGray, BackgroundGray,Width, Height : ) 将区域Region转换为一幅二进制图像BinImage。 ForegroundGray, BackgroundGray分别为前景色灰度值和背景色灰度值。Width, Height为Region的宽度和高度。 3、region_to_label ( Region : ImageLabel : Type, Width, Height : ) 将区域Region转换为一幅Lable图像ImageLabel。 Type为imagelabel的类型。 Width, Height为Region的宽度和高度。 4、region_to_mean ( Regions, Image : ImageMean : : ) 绘制ImageMean图像,将其灰度值设置为Regions和Image的平均灰度值。相关例子: [c-sharp]view plaincopyprint? 1.* 读取图像 2.read_image (Image, 'G:/Halcon/机器视觉 /images/bin_switch/bin_switch_2.png') 3.* 复制图像 4.copy_image (Image, DupImage) 5.* 区域生长算法

6.regiongrowing (Image, Regions, 3, 3, 1, 100) 7.* 生成ImageMean 8.region_to_mean (Regions, Image, ImageMean) 9.* 将Region转换为二进制图像 10.r egion_to_bin (Regions, BinImage, 255, 0, 512, 512) 11.*将Region转换为Label图像 12.r egion_to_label (Regions, ImageLabel, 'int4', 512, 512)

机器视觉之Halcon算子--区域特征

H a l c o n算子--区域特征 当我们想要提取Region时,图像处理后,往往存在几个类似的Region,此时,需要根据Region的一 些特殊特征,来选择指定的Region。 求Region指定特征值:region_features(Regions : : Features : Value) 根据特征值选择区域:select_shape(Regions : SelectedRegions : Features, Operation, Min, Max : ) Region特征一览: 特征英译备注area Area of the object 对象的面积 row Row index of the center 中心点的行坐标 column Column index of the center 中心点的列坐标 width Width of the region 区域的宽度 height Height of the region 区域的高度 row1 Row index of upper left corner 左上角行坐标 column1 Column index of upper left corner 左上角列坐标 row2 Row index of lower right corner 右下角行坐标 column2 Column index of lower right corner 右下角列坐标 circularity Circularity 圆度0~1 compactness Compactness 紧密度0~1 contlength Total length of contour 轮廓线总长 convexity Convexity 凸性 rectangularity Rectangularity 矩形度0~1 ra Main radius of the equivalent ellipse 等效椭圆长轴半径长度 rb Secondary radius of the equivalent ellipse 等效椭圆短轴半径长度 phi Orientation of the equivalent ellipse 等效椭圆方向 anisometry Anisometry 椭圆参数,Ra/Rb长轴与短轴的比值 bulkiness Bulkiness 椭圆参数,蓬松度π*Ra*Rb/A struct_factor Structur Factor? 椭圆参数, Anisometry*Bulkiness-1

halcon基础数据类型详解

halcon基础数据类型详解 #if defined(__CHAR_UNSIGNED__) || defined(__sgi) #define INT1 signed char /* integer, signed 1 Byte */ #define INT1_MIN SCHAR_MIN #define INT1_MAX SCHAR_MAX #else #define INT1 char /* integer, signed 1 Byte */ #define INT1_MIN CHAR_MIN #define INT1_MAX CHAR_MAX #endif #define UINT1 unsigned char /* integer, unsigned 1 Byte */ #define UINT1_MIN 0 #define UINT1_MAX UCHAR_MAX #define LONG_FORMAT _INT64_FORMAT typedef INT4_8 Hlong; typedef UINT4_8 Hulong; 看粗体部分,可以看到Hlong型在32位的机器上其实就是long型代表4个字节32位,在64位机器上有另一种定义 再来看看halcon中最重要的数据类型HTuple,在C++里面,halcon将HTuple类型封 装了类,其始祖类HRootObject,这个类相当于MFC里面的CObject,halcon从HRootObject 派生了HBaseArray,当然这两个类是虚基类,有一些方法需要我HTuple自己实现,当然也 有一些方法可以直接用的。这两个类在HCPPUtil里,可以看看。 HTuple类就是从HBaseArray派生,元组基类,相当于数组,具有如下的构造函数: HTuple(int l); HTuple(float f); HTuple(double d); HTuple(constchar *s);

Halcon学习(24)总结(一)

Halcon学习(二十四)总结(一) 好久没有写篇文章了。写一篇总结吧。 1、Halcon的自我描述 Program Logic ? Each program consists of a sequence of HALCON operators ? The program can be structured into procedures ? The sequence can be extended by using control operators like if, for, repeat, or while ? The results of the operators are passed via variables ? No implicit data passing is applied ? Input parameters of operators can be variables or expressions ? Output parameters are always variables ? HDevelop has no features to design a graphical user interface ? An HDevelop program is considered as a prototypic solution of the vision part of an application ? HDevelop is typically not used for the final application 由此可以看出,Halcon的定位是一个类库,有着完整、快速实现函数,同时提供了HDevelop 作为快速开发的图形化(IDE)界面;但是,Halcon程序并不是一个完整的最终应用软件,它没有用户界面,也不提供显示的数据(公用的数据格式)。 Halcon的初学者也应当从参考Halcon的程序入手,熟悉Halcon类库,也即HDevelop-Based Programming;在此基础上,进入ORClass-Oriented Programming。这也是Halcon推荐的开发方式: The vision part is solved with HDevelop, and the application is developed with C++ or Visual Basic。 2、HDevelop界面的学习 通过阅读Halcon的PPT,学到了下面一些有用的信息: ? 文件——浏览示例,可以看到很多有用的例子; ? 程序窗体中,可以浏览与编辑Procedues(过程),这个其实就是自定义函数咯~还可以自己修改这些过程,并添加说明文档; ? F4——将函数语句注释掉;F3——激活; ? 本地过程(Local Procedue)与外部过程(Externel Procedue) 3、基本语法结构 Halcon的语法结构 类似于Pascal 与 Visual Basic,大部分的语句是Halcon提供的算子,此外也包含了少部分的控制语句; 不允许单独声明变量; 提供自动的内存管理(初始化、析构及OverWrite),但句柄则需要显示释放; C++(算子模式) 通过代码导出,以C++为例,默认导出为算子型的语法结构,而非面向对象的;在此模式下,全部函数声明为全局类型,数据类型只需要用Hobject、HTuple两类类型进行声明; C++(面向对象) 可以以面向对象的方式重写代码,也即利用类及类的成员函数;

HALCON算子函数Chapter 16:System

HALCON算子函數——Chapter 16 : System 16.1 Database 1. count_relation 功能:在HALCON數據庫中實體的數目。 2. get_modules 功能:查詢已使用模塊和模塊關鍵碼。 3. reset_obj_db 功能:HALCON系統的初始化。 16.2 Error-Handling 1. get_check 功能:HALCON控制模式的說明。 2. get_error_text 功能:查詢HALCON錯誤測試後錯誤數目。3. get_spy 功能:HALCON調試工具當前配置。 4. query_spy 功能:查詢HALCON調試工具可能的設置。5. set_check 功能:激活和鈍化HALCON控制模式。

6. set_spy 功能:HALCON調試工具的控制。 16.3 Information 1. get_chapter_info 功能:獲取程序有關章節的信息。 2. get_keywords 功能:獲取指定給程序的關鍵字。 3. get_operator_info 功能:獲取關於HALCON程序的信息。 4. get_operator_name 功能:獲取由給定字符串作為它們的名字的程序。 5. get_param_info 功能:獲取關於程序參數的信息。 6. get_param_names 功能:獲取一個HALCON程序參數的名字。 7. get_param_num 功能:獲取一個HALCON程序不同參數類的數目。 8. get_param_types 功能:獲取一個HALCON程序控制參數的缺省數據類型。

HALCON算子函数Chapter 15: Segmentation

HALCON算子函數——Chapter 15 : Segmentation 15.1 Classi?cation 1. add_samples_image_class_gmm 功能:將從圖像中獲取的測試樣本添加到高斯混合模型的測試數據庫中。2.add samples_image_class_mlp 功能:將從圖像中獲取的測試樣本添加到多層視感控器的測試數據庫中。 3. add_samples_image_class_svm 功能:將從圖像中獲取的測試樣本添加到一個支持向量機的測試數據庫中。 4. class_2dim_sup 功能:采用二維空間像素分類分割圖像。 5. class 2dim unsup 功能:將兩幅圖像以聚類分割。 6.class ndim_box 功能:利用立方體將像素分類。 7. class_ndim_norm 功能:利用球體或立方體將像素分類。 8. classify_image_class_gmm 功能:根據高斯混合模式分類圖像。 9. classify_image_class_mlp 功能:根據多層視感控器分類圖像_。 10. classify_image_class_svm 功能:根據支持向量機分類圖像。 11. learn_ndim_box

功能:利用多通道圖像測試一個分級器。 12. learn_ndim_norm 功能:為class_ndim_norm構建類。 15.2 Edges 1. detect_edge_segments 功能:檢測直線邊緣分割。 2. hysteresis_threshold 功能:對一副圖像采取磁滯門限操作。 3. nonmax_suppression_amp 功能:抑制一幅圖像上的非最大值點。 4. nonmax_suppression_dir 功能:利用指定圖像抑制一幅圖像上的非最大值點。 15.3 Regiongrowing 1. expand_gray 功能:依據灰度值或顏色填充兩個區域的間隙或分割重疊區域。 2. expand_gray_ref 功能:依據灰度值或顏色填充兩個區域的間隙或分割重疊區域。 3. expand_line 功能:從給定線開始擴充區域。 4. regiongrowing 功能:利用區域增長分割圖像。

HALCON中filter函数

HALCON算子函数——Chapter 5 : Filter 5.1 Arithmetic 1. abs_image 功能:计算一个图像的绝对值(模数)。 2. add_image 功能:使两个图像相加。 3. div_image 功能:使两个图像相除。 4. invert_image 功能:使一个图像反像。 5. max_image 功能:按像素计算两个图像的最大值。 6. min_image 功能:按像素计算两个图像的最大小值。 7. mult_image 功能:使两个图像相乘。 8. scale_image 功能:为一个图像的灰度值分级。 9. sqrt_image 功能:计算一个图像的平方根。 10. sub_image 功能:使两个图像相减。 5.2 Bit 1. bit_and 功能:输入图像的所有像素的逐位与。 2. bit_lshift 功能:图像的所有像素的左移。3 . bit_mask 功能:使用位掩码的每个像素的逻辑与。 4. bit_not 功能:对像素的所有位求补。 5. bit_or 功能:输入图像的所有像素的逐位或。 6. bit_rshift 功能:图像的所有像素的右移。 7. bit_slice 功能:从像素中提取一位。 8. bit_xor 功能:输入图像的所有像素的逐位异或。5.3 Color

1. cfa_to_rgb 功能:把一个单通道颜色滤波阵列图像变成RGB图像。 2. gen_principal_comp_trans 功能:计算多通道图像的主要部分分析的转换矩阵。 3. linear_trans_color 功能:计算多通道图像的颜色值的一个仿射转换。 4. principal_comp 功能:计算多通道图像的主要部分。 5. rgb1_to_gray 功能:把一个RGB图像转变成一个灰度图像。 6. rgb3_to_gray 功能:把一个RGB图像转变成一个灰度图像。 7. trans_from_rgb 功能:把一个图像从RGB颜色空间转变成任意颜色空间。 8. trans_to_rgb 功能:把一个图像从任意颜色空间转变成RGB颜色空间。 5.4 Edges 1.close_edges 功能:使用边缘幅值图像消除边缘缺陷。 2. close_edges_length 功能:使用边缘幅值图像消除边缘缺陷。 3. derivate_gauss 功能:用高斯派生物对一个图像卷积。 4. diff_of_gauss 功能:近似高斯的拉普拉斯算子。 5. edges_color 功能:使用Canny、Deriche或者_Shen_滤波器提取颜色边缘。 6. edges_color_sub_pix 功能:使用Canny、Deriche或者_Shen_滤波器提取子像素精确颜色边缘。 7. edges_image 功能:使用Deriche、_Lanser、Shen或者_Canny滤

Halcon学习之边缘检测函数

Halcon学习之边缘检测函数 sobel_amp ( Image : EdgeAmplitude : FilterType, Size : )根据图像的一次导数计算图像的边缘 close_edges ( Edges, EdgeImage : RegionResult : MinAmplitude : ) close_edges_length( Edges, Gradient : ClosedEdges : MinAmplitude, MaxGapLength : ) 使用边缘高度图像关闭边缘间隙。输出的区域包含杯关闭的区域。(感觉是对边缘的扩充) derivate_gauss( Image : DerivGauss : Sigma, Component : ) watersheds( Image : Basins, Watersheds : : )从图像中提取风水岭。 zero_crossing( Image : RegionCrossing : : )零交点(二次导数) diff_of_gauss( Image : DiffOfGauss : Sigma, SigFactor : )近似日志算子(拉普拉斯高斯)。 laplace_of_gauss ( Image : ImageLaplace : Sigma : ) 拉普拉斯高斯edges_color_sub_pix ( Image : Edges : Filter, Alpha, Low, High : )精确的亚像素边缘提取(彩色图像) edges_sub_pix ( Image : Edges : Filter, Alpha, Low, High : ) 精确边缘提取的亚像素(灰度图像) edges_color ( Image : ImaAmp, ImaDir : Filter, Alpha, NMS, Low, High : )根据颜色进行边缘提取 edges_image ( Image : ImaAmp, ImaDir : Filter, Alpha, NMS, Low, High : )边缘提取 skeleton ( Region : Skeleton : : )计算区域的框架Skeleton == Region

halcon常用算法

1、read_image (Image, 'F:/image/001.bmp') 读入图像 2、threshold (Image, region, 100, 200) 阈值分割,获取区域 3、dev_close_window() 关闭当前图形窗口 4、dev_open_window (0, 0, 640, 480, 'black', WindowHandle) 打开一个新的图像窗口 5、decompose3 (Image, Red, Green, Blue) 三通道图像转换成三幅单通道图像 5.5、compose3(Red, Green, Blue, Image) 三幅单通道图像组合为三通道图像 6、connection (Region, ConnectedRegions) 将像素有相连的区域合并成一个元素element 7、count_obj(ConnectedRegions, Number) 计算元素element的个数 8、select_shape(Regions, SelectedRegions, Features, Operation, Min, Max) select_shape (ConnectedRegions,SelectedRegions,['area','anisometry'], 'and', [500,1.0], [50000,1 .7]) 连通域形状的选择 circularity:表示环状;充实度 roundness:圆度 9、dev_set_color('red') 设定输出的颜色 10、dev_set_draw ('margin') 或者 dev_set_draw ('fill') 确定区域填充模式 11、get_image_size (Image, Width, Height) 得到图像的宽度和高度 12、get_image_pointer1 (Image_slanted, Pointer, Type, Width, Height) 设定Pointer指向Image_slanted的起点位置。 13、dev_set_part (0, 0, Height-1, Width-1) 设定图像需要显示的范围 14、dev_display (Image_slanted) 显示图像 15、disp_continue_message(WindowHandle, 'blue', 'false') 等待用户操作是否继续stop () 16、projective_trans_image (Image_slanted, Image_rectified, HomMat2D, 'bilinear', 'false', 'false') 将投影变换应用于一幅图像中。 17、dev_set_line_width (5) 为区域轮廓线设定线宽 18、disp_message (WindowHandle, 'Decoded string: ', 'window', -1, -1, 'black', 'true') 程序写一个文本信息 19、union_collinear_contours_xld 合并在同一直线的XLD union_cocircular_contours_xld 合并在同圆的XLD union_adjacent_contours_xld 合并邻近的XLD 20、fit_line_contour_xld 拟合直线 21、trans_from_rgb(Rimage,Gimage,Bimage,Image1,Image2,Image3,'hsv') rgb颜色空间图像转换到hsv颜色空间图像 22、trans_to_rgb(Image1,Image2,Image3,ImageRed,ImageGreen,ImageBlue,'hsv') hsv颜色空间图像转换到rgb颜色空间图像 23、set_display_font (WindowID, 20, 'mono', 'true', 'false') 设置字体(bottle.hdev) 24、fill_up_shape (RawSegmentation, RemovedNoise, 'area', 1, 5) 根据给定的形状特征填补区域中的不足 25、opening_circle (RemovedNoise, ThickStructures, 2.5) 以半径为2.5像素先腐蚀再膨胀,开运算去除小区域。 26、fill_up (ThickStructures, Solid) 填补区域中的空洞 27、intersection (ConnectedPatterns, ThickStructures, NumberCandidates) 求两个区域的交集然后输出,求ConnectedPatterns区域和ThickStructures 区域的交集,输出 NumberCandidates 28、dev_set_shape ('rectangle1') 设置外接矩形 29、distance_lr (SelectedRegions, Row1, Col1, Row2, Col2, DistanceMin, DistanceMax) 计算直线和区域之间的距离,出现最小距离和最大距离 30、disp_line (WindowID, Row1, Col+100, Row2, Col) 绘制直线段( Col+100, Row1)为起点,(Col, Row2)为终点

HALCON 算子函数 整理 1-19章

halcon算子中文解释 comment ( : : Comment : ) 注释语句 exit ( : : : ) 退出函数 open_file ( : : FileName, FileType : FileHandle ) 创建('output' or 'append' )或者打开(output )文本文件 fwrite_string ( : : FileHandle, String : ) 写入string dev_close_window ( : : : ) 关闭活跃的图形窗口。 read_image ( : Image : FileName : ) ;加载图片 get_image_pointer1 ( Image : : : Pointer, Type, Width, Height ) 获得图像的数据。如:类型(= ' 字节',' ' ',uint2 int2 等等) 和图像的尺寸( 的宽度和高度) dev_open_window( : :Row,Column,WidthHeight,Background :WindowHandle ) 打开一个图形的窗口。 dev_set_part ( : : Row1, Column1, Row2, Column2 : ) 修改图像显示的位置 dev_set_draw (’fill’)填满选择的区域 dev_set_draw (’margin’)显示的对象只有边缘线, dev_set_line_width (3) 线宽用Line Width 指定 threshold ( Image : Region : MinGray, MaxGray : ) 选取从输入图像灰度值的g 满足下列条件:MinGray < = g < = MaxGray 的像素。 dev_set_colored (number) 显示region 是用到的颜色数目 dev_set_color ( : : ColorName : ) 指定颜色 connection ( Region : ConnectedRegions : : ) 合并所有选定像素触摸相互连通区 fill_up ( Region : RegionFillUp : : ) 填补选择区域中空洞的部分 fill_up_shape ( Region : RegionFillUp : Feature, Min, Max : ) select_shape ( Regions : SelectedRegions : Features, Operation, Min, Max : ) 选择带有某些特征的区域,Operation 是运算,如“与”“或” smallest_rectangle1 ( Regions : : : Row1, Column1, Row2, Column2 ) 以矩形像素坐标的角落,Column1,Row2(Row1,Column2) 计算矩形区域( 平行输入坐标轴) 。 dev_display ( Object : : : ) 显示图片 disp_rectangle1 ( : : WindowHandle, Row1, Column1, Row2, Column2 : ) 显示的矩形排列成的。disp_rectangle1 显示一个或多个矩形窗口的产量。描述一个矩形左上角(Row1,Column1) 和右下角(Row2,Column2) 。显示效果如图1. texture_laws ( Image : ImageT exture : FilterTypes, Shift, FilterSize : ) texture_laws 实行纹理变换图像FilterTypes: 预置的过滤器Shift :减少灰度变化FilterSize :过滤的尺寸 mean_image ( Image : ImageMean : MaskWidth, MaskHeight : ) 平滑图像, 原始灰度值的平均数MaskWidth: 过滤器的宽度面具 bin_threshold ( Image : Region : : ) 自动确定阈值 Region: 黑暗的区域的图像 dyn_threshold ( OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : ) 比较两个像素的图像像素RegionDynThresh(Out) 分割区域Offset: 减少噪音引起的问题LightDark 提取光明、黑暗或类似的地方? dilation_circle ( Region : RegionDilation : Radius : ) 扩张有一个圆形结构元素的地区Radius 圆半径 complement ( Region : RegionComplement : : ) 返还补充的区域 reduce_domain ( Image, Region : ImageReduced : : ) 减少定义领域的图像

HALCON函数

HALCON函数 dev_close_window ( : : : ) 关闭活跃的图形窗口。 read_image ( : Image : FileName : ) ;加载图片 get_image_pointer1 ( Image : : : Pointer, Type, Width, Height ) ;获得图像的数据。如:类型(= ' 字节',' ' ',uint2 int2 等等) 和图像的尺寸( 的宽度和高度) dev_open_window( : :Row,Column,WidthHeight,Background :WindowHandle )打开一个图形的窗口。 dev_set_part ( : : Row1, Column1, Row2, Column2 : ) 修改图像显示的位置 dev_set_draw (’fill’)填满选择的区域 dev_set_draw (’margin’)显示的对象只有边缘线, dev_set_line_width (3) 线宽用Line Width 指定 threshold ( Image : Region : MinGray, MaxGray : ) 选取从输入图像灰度值的g 满足下列条件:MinGray < = g < = MaxGray 的像素。 dev_set_colored (number) 显示region 是用到的颜色数目 dev_set_color ( : : ColorName : ) 指定颜色 connection ( Region : ConnectedRegions : : ) 合并所有选定像素触摸相互连通区 fill_up ( Region : RegionFillUp : : ) 填补选择区域中空洞的部分 fill_up_shape ( Region : RegionFillUp : Feature, Min, Max : ) select_shape ( Regions : SelectedRegions : Features, Operation, Min, Max : ) 选择带有某些特征的区域,Operation 是运算,如“与”“或” smallest_rectangle1 ( Regions : : : Row1, Column1, Row2, Column2 ) 以矩形像素坐标的角落,Column1,Row2(Row1,Column2) 计算矩形区域( 平行输入坐标轴) 。 dev_display ( Object : : : ) 显示图片 disp_rectangle1 ( : : WindowHandle, Row1, Column1, Row2, Column2 : ) 显示的矩形排列成的。disp_rectangle1 显示一个或多个矩形窗口的产量。描述一

Halcon

Halcon 目录 1、相机接入且拍摄 (2) 1.1 步骤 (2) 1.2 后续处理函数 (5) 2、相机标定 (7) 2.1标定步骤 (7) 3、手眼系统标定 (11) 3.1 标定步骤 (11) 4、图像坐标和机器臂坐标转换 (13) 4.1 转换步骤 (14) 5、模版匹配(基于形状) (19) 5.1 步骤 (19) 6、常见函数 (25) 6.1 图像分割 (25) 6.2 轮廓提取、处理 (31)

1、相机接入且拍摄 1.1 步骤 (1)连接相机 open_framegrabbe(Name, HorizontalResolution, VerticalResolution, ImageWidth, ImageHeight, StartRow, StartColumn, Field, BitsPerChannel, ColorSpace, Generic, ExternalTrigger, CameraType, Device, Port, LineIn, AcqHandle) 在算子窗口内输入函数名,填入参数后点击“确定”按钮即可将函数加入程序中。 注: Name: 图像采集设备的名称 可通过以下步骤确定: 1、在Halcon菜单栏里点击“窗口”,选择“打开算子窗口”。 (若算子窗口已打开则直接进入第二步) 2、在“输入算子或函数”栏内输入“open_framegrabbe” 回车后出现下图

3、在“参数”栏中的Name后点击即可自动检测连接的设 备(笔记本电脑摄像头检测后为’DirectShow’) 此参数若随意填写,可能导致程序报错 HorizontaResolution、VerticalResolution:预期的图像采集接口的水平分辨率和垂直分辨率 ImageWidth、ImageHeight:预期图像的宽度和高度部分StartRow、StartColumn:显示预期图像的开始坐标 Field:预期图像是一半的图像或者是完整图像 BitsPerChannel:每像素比特数和图像通道 ColorSpace:获取图像的输出形式(gray、raw、rgb、yuv、default)说明:此参数设置不同的值可以得到不同的图像效果,如设置

相关主题