QQ登录

只需一步,快速开始

2.5 halcon 二维码相关算子总结

[ 复制链接 ]
在halcon中二维码相关的算子与一维码的在使用与结构上相似
其共有13个,如图。
当前帖子结合例程,在halcon中一步步执行可以查看每个算子的功能与效果。
一维码与二维码算子在使用上,流程与实现都比较简单。
因为其算子底层都为我们实现了很多功能,可以很方便项目快速 开发。

请执行以下程序学习算子。

halcon 二维码相关算子总结

halcon 二维码相关算子总结


  1. dev_close_window ()
  2. *读取图片保存到变量Image
  3. ImageFiles := 'datacode/qrcode/qr_workpiece_01'
  4. read_image (Image, ImageFiles)
  5. dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
  6. dev_display (Image)
  7. *创建QR Code类型的二维码句柄,用于后面的查找
  8. create_data_code_2d_model ('QR Code', [], [], DataCodeHandle)
  9. *获取二维码指定类型参数'get_result_params'的全部参数名,保存到GenParamName
  10. query_data_code_2d_params (DataCodeHandle, 'get_result_params', GenParamName)
  11. *设置要查找的二维码参数module_size_min','module_size_max(像素单位,模型最小最大尺寸)
  12. set_data_code_2d_param (DataCodeHandle, ['module_size_min','module_size_max'], [4,7])
  13. *查找与识别二维码,DecodedDataStrings保存结果字符串
  14. find_data_code_2d (Image, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
  15. *获取二维码指定的参数
  16. get_data_code_2d_param(DataCodeHandle, ['module_size_min','module_size_max'], GenParamValue)
  17. *获取二维码识别过程中的图像对象(解码的二维码区域)
  18. get_data_code_2d_objects (DataCodeObjects, DataCodeHandle, 'all_candidates', 'candidate_xld')
  19. *获取二维码识别过程中的文字变量(是否成功解码)
  20. get_data_code_2d_results (DataCodeHandle, 'all_candidates', 'status', ResultValues)
  21. *保存二维码句柄(包含其设置信息)
  22. write_data_code_2d_model(DataCodeHandle, 'data_code_model.dcm')
  23. *清理二维码句柄,释放资源
  24. clear_data_code_2d_model (DataCodeHandle)
  25. *从磁盘加载事先保存的二维码句柄
  26. read_data_code_2d_model ('data_code_model.dcm', DataCodeHandle)
  27. get_data_code_2d_param(DataCodeHandle, ['module_size_min','module_size_max'], GenParamValue)
  28. *串行化二维码句柄并保存到磁盘
  29. serialize_data_code_2d_model (DataCodeHandle, SerializedItemHandle)
  30. open_file('123.bin', 'output_binary', FileHandle)
  31. fwrite_serialized_item(FileHandle, SerializedItemHandle)
  32. clear_data_code_2d_model (DataCodeHandle)
  33. close_file (FileHandle)
  34. *从磁盘加载串行化的二维码句柄,并反串行化进行读取其参数
  35. open_file('123.bin', 'input_binary', FileHandle)
  36. fread_serialized_item (FileHandle, SerializedItemHandle)
  37. deserialize_data_code_2d_model (SerializedItemHandle, DataCodeHandle)
  38. find_data_code_2d (Image, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
  39. clear_data_code_2d_model (DataCodeHandle)
  40. close_file (FileHandle)
  41. *显示二维码每个模块的打印质量
  42. create_data_code_2d_model ('Data Matrix ECC 200', [], [], DataCodeHandle)
  43. set_data_code_2d_param (DataCodeHandle, 'default_parameters', 'enhanced_recognition')
  44. read_image (Image, 'datacode/ecc200/ecc200_print_quality_02')
  45. find_data_code_2d (Image, SymbolXLDs, DataCodeHandle, [], [], ResultHandle, DecodedDataStrings)
  46. dev_display(Image)
  47. Mode := 'reflectance_margin_module_grades'
  48. dev_display_data_code_2d_print_quality_results (DataCodeHandle, ResultHandle, Mode, 'isoiec15415', [], [], [])  
  49. clear_data_code_2d_model (DataCodeHandle)
复制代码


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索