C++实现DotCode扫码

本文介绍如何利用Dynamsoft Barcode SDK v7.4的C++接口实现DotCode条形码的桌面扫码程序。程序采用视频流接口,通过回调函数处理解码结果,同时展示了如何在OpenCV中显示和分析图像。
摘要由CSDN通过智能技术生成

Dynamsoft Barcode SDK v7.4支持DotCode类型。我用C++写了一个简单的示例。

DotCode桌面扫码程序

Dynamsoft SDK中提供了两种类型的接口:

  • 一种是直接扫码的接口,比如decodeFile, decodeBuffer
  • 一种是为视频流设计的接口StartFrameDecoding()StopFrameDecoding()AppendFrame()

在视频流的场景中,如果使用直接扫码的接口,需要自己去创建线程,并设计帧过滤的策略。所以使用视频流接口会方便很多,只需要在回调函数里对得到的数据进行处理。

创建barcode reader实例,并配置参数:

// Get license from https://www.dynamsoft.com/CustomerPortal/Portal/Triallicense.aspx
CBarcodeReader reader = reader.InitLicense("LICENSE-LEY");
PublicRuntimeSettings runtimeSettings;
char szErrorMsg[256];
reader.InitRuntimeSettingsWithString("{\"ImageParameter\":{\"Name\":\"BestCoverage\",\"DeblurLevel\":9,\"ExpectedBarcodesCount\":512,\"ScaleDownThreshold\":100000,\"LocalizationModes\":[{\"Mode\":\"LM_CONNECTED_BLOCKS\"},{\"Mode\":\"LM_SCAN_DIRECTLY\"},{\"Mode\":\"LM_STATISTICS\"},{\"Mode\":\"LM_LINES\"},{\"Mode\":\"LM_STATISTICS_MARKS\"}],\"GrayscaleTransformationModes\":[{\"Mode\":\"GTM_ORIGINAL\"},{\"Mode\":\"GTM_INVERTED\"}]}}", CM_OVERWRITE, szErrorMsg, 256);
reader.GetRuntimeSettings(&runtimeSettings);
runtimeSettings.barcodeFormatIds = BF_ALL;
runtimeSettings.barcodeFormatIds_2 = BF2_POSTALCODE | BF2_DOTCODE;
runtimeSettings.intermediateResultTypes = IRT_ORIGINAL_IMAGE;
reader.UpdateRuntimeSettings(&runtimeSettings,szErrorMsg,256);
reader.SetTextResultCallback(textResultCallback,NULL);
reader.SetIntermediateResultCallback(intermediateResultCallback, NULL);
reader.SetErrorCallback(errorcb, NULL);

启动视频解码线程:

reader.StartFrameDecoding(10, 10, width, height, frame.step.p[0], IPF_RGB_888, "");

在循环中获取视频帧,放如到扫码队列中:

for (;<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值