1、简介
halcon是一款和图像处理库,里面的算法很多,效率很高。由于项目中要识别一维码,然后选择了halcon库,因为halcon算法丰富,开发起来方便省时。
2、halcon识别一维码用到的类。
(1)、HImage类:halcon的图像数据存储类。
(2)、HBarCode类:halcon识别一维码的算法类。
(3)、HTuple类:halcon存储基本数据的类。类似C++的int。
(4)、HRegion类:halcon用来表示区域的类,类似QT的Item类。
3、源码实现halcon识别一维码。
void MainWindow::findBarcode(const HImage &hImage, int iType, QVector<CodeData> &vCode)
{
//1. 数据合法性判断
if (!hImage.IsInitialized()) return;
//2. 把用户设定的所有解码类型转成 HTuple
HTuple hvType;
if (iType == 0) hvType.Append("auto");
else hvType.Append(ui->cbBarCodeType->currentText().toStdString().c_str());
//4. 创建一维码解码模型 和 解码参数
HTuple v1, v2;
HBarCode hBar