二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,
是一个近几年来移动设备上超流行的一种编码方式,
它比传统的一维条形码能存更多的信息,也能表示更多的数据类型。
一维条码的宽度记录着数据 ,而其长度没有记载数据。
halcon支持的二维码有 'Aztec Code', 'Data Matrix ECC 200', 'GS1 Aztec Code', 'GS1 DataMatrix',
'GS1 QR Code', 'Micro QR Code', 'PDF417', 'QR Code'。
相对于矩阵式的编码最流行是QR Code
在halcon中二维码相关的算子与一维码的在使用与结构上相似。
一维码与二维码算子在使用上,流程与实现都比较简单。
因为其算子底层都为我们实现了很多功能,可以很方便项目快速 开发。
可以运行下边代码查看效果。
工业视觉halcon二维码识别介绍
dev_close_window ()
*读取图片保存到变量Image
ImageFiles := 'datacode/qrcode/qr_workpiece_01'
read_image (Image, ImageFiles)
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
dev_display (Image)
*创建QR Code类型的二维码句柄,用于后面的查找
create_data_code_2d_model ('QR Code', [], [], DataCodeHandle)
*获取二维码指定类型参数'get_result_params'的全部参数名,保存到GenParamName
query_data_code_2d_params (DataCodeHandle, 'get_result_params', GenParamName)
*设置要查找的二维码参数module_size_min','module_size_max(像素单位,模型最小最大尺寸)
set_data_code_2d_param (DataCodeHandle, ['module_size_min','module_size_max'], [4,7])
*查找与识别二维码,DecodedDataStrings保存结果字符串
find_data_code_2d (Image, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
*获取二维码指定的参数
get_data_code_2d_param(DataCodeHandle, ['module_size_min','module_size_max'], GenParamValue)
*获取二维码识别过程中的图像对象(解码的二维码区域)
get_data_code_2d_objects (DataCodeObjects, DataCodeHandle, 'all_candidates', 'candidate_xld')
*获取二维码识别过程中的文字变量(是否成功解码)
get_data_code_2d_results (DataCodeHandle, 'all_candidates', 'status', ResultValues)
*保存二维码句柄(包含其设置信息)
write_data_code_2d_model(DataCodeHandle, 'data_code_model.dcm')
*清理二维码句柄,释放资源
clear_data_code_2d_model (DataCodeHandle)
*从磁盘加载事先保存的二维码句柄
read_data_code_2d_model ('data_code_model.dcm', DataCodeHandle)
get_data_code_2d_param(DataCodeHandle, ['module_size_min','module_size_max'], GenParamValue)
*串行化二维码句柄并保存到磁盘
serialize_data_code_2d_model (DataCodeHandle, SerializedItemHandle)
open_file('123.bin', 'output_binary', FileHandle)
fwrite_serialized_item(FileHandle, SerializedItemHandle)
clear_data_code_2d_model (DataCodeHandle)
close_file (FileHandle)
*从磁盘加载串行化的二维码句柄,并反串行化进行读取其参数
open_file('123.bin', 'input_binary', FileHandle)
fread_serialized_item (FileHandle, SerializedItemHandle)
deserialize_data_code_2d_model (SerializedItemHandle, DataCodeHandle)
find_data_code_2d (Image, SymbolXLDs, DataCodeHandle, [], [], ResultHandles, DecodedDataStrings)
clear_data_code_2d_model (DataCodeHandle)
close_file (FileHandle)
*显示二维码每个模块的打印质量
create_data_code_2d_model ('Data Matrix ECC 200', [], [], DataCodeHandle)
set_data_code_2d_param (DataCodeHandle, 'default_parameters', 'enhanced_recognition')
read_image (Image, 'datacode/ecc200/ecc200_print_quality_02')
find_data_code_2d (Image, SymbolXLDs, DataCodeHandle, [], [], ResultHandle, DecodedDataStrings)
dev_display(Image)
Mode := 'reflectance_margin_module_grades'
dev_display_data_code_2d_print_quality_results (DataCodeHandle, ResultHandle, Mode, 'isoiec15415', [], [], [])
帖子为下面halcon视频教程的部分内容,
可以下载视频教程学习。
上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例 经历1年的编程与录制点击进入查看
如果您认可,可联系功能定制! 如果您着急,充值会员可直接联系发您资料!
|