当前位置: 首页 > news >正文

在arm 64 环境下使用halcon算法

背景:

halcon,机器视觉领域神一样得存在,在windows上,应用得特别多, 但是arm环境下使用得很少。那如何在arm下使用halcon呢。按照官方说明,arm下只提供了运行时环境,并且需要使用价值一万多人民币的硬件加密狗才可以运行,但众所周知,我朝盗版软件横行,因此写下了这篇不道德但是实用的文章。

步骤:

1,

halcon的运行时环境,包括了所有的so库,但缺少头文件。要想在arm 下编译,头文件,库文件缺一不可,因此需要将 开发环境的头文件拷贝到运行时环境下。这里以版本 20.11.1.2 为例。

具备了头文件和so文件后,再将破解文件进行替换,就可以在arm 下使用halcon算法了。

2,

写了一个读二维码和条码的 demo ,cmake 配置如下

cmake_minimum_required(VERSION 3.0.0)
project(HalconDemo VERSION 0.1.0)set(TARGET_NAME HalconDemo)set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../include)
link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../lib/aarch64-linux)aux_source_directory(. SRCS )set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  -static-libstdc++ -fPIC -Wl,--copy-dt-needed-entries -Wno-error=deprecated-declarations -Wno-deprecated-declarations ")add_executable(${TARGET_NAME}  ${SRCS})
#include <iostream>#include <halconcpp/HalconCpp.h>using namespace HalconCpp;
using namespace std;int main(int argc, char **argv)
{// Local iconic variablesHObject ho_barImage, ho_SymbolRegions, ho_codeImage;HObject ho_SymbolXLDs;// Local control variablesHTuple hv_WindowHandle, hv_BarCodeHandle;HTuple hv_DecodedDataStrings, hv_DataCodeHandle, hv_ResultHandles;std::cout << "进入算法" << endl;ReadImage(&ho_barImage, "./image/barCode.jpg");std::cout << "完成读图1" << endl;CreateBarCodeModel(HTuple(), HTuple(), &hv_BarCodeHandle);SetBarCodeParam(hv_BarCodeHandle, "element_size_min", 1);SetBarCodeParam(hv_BarCodeHandle, "meas_param_estimation", "true");FindBarCode(ho_barImage, &ho_SymbolRegions, hv_BarCodeHandle, "auto", &hv_DecodedDataStrings);ClearBarCodeModel(hv_BarCodeHandle);for (int i = 0; i < hv_DecodedDataStrings.Length(); i++){std::cout << "barcode" << i << ":" << hv_DecodedDataStrings[i].S() << endl;}ReadImage(&ho_codeImage, "./image/2DCode.bmp");std::cout << "完成读图2" << endl;CreateDataCode2dModel("QR Code", HTuple(), HTuple(), &hv_DataCodeHandle);SetDataCode2dParam(hv_DataCodeHandle, "string_encoding", "utf8");FindDataCode2d(ho_codeImage, &ho_SymbolXLDs, hv_DataCodeHandle, HTuple(), HTuple(),&hv_ResultHandles, &hv_DecodedDataStrings);ClearDataCode2dModel(hv_DataCodeHandle);for (int i = 0; i < hv_DecodedDataStrings.Length(); i++){std::cout << "2dcode" << i << ":" << hv_DecodedDataStrings[i].S() << endl;}return 0;
}

3.

执行的时候 只需要将 libhalcon.so.20.11.1 这个文件 拷贝到可执行目录下即可。

http://www.lryc.cn/news/242220.html

相关文章:

  • H5(uniapp)中使用echarts
  • QLineEdit设置掩码Ip
  • 开源语音大语言模型来了!阿里基于Qwen-Chat提出Qwen-Audio!
  • 缓存雪崩、击穿、穿透及解决方案_保证缓存和数据库一致性
  • 仿 美图 / 饿了么,店铺详情页功能
  • Redis Cluster主从模式详解
  • Linux技能篇-非交互式修改密码
  • 记一次docker服务启动失败解决过程
  • npm ERR! node-sass@4.13.0 postinstall: `node scripts/build.js`
  • Java定时任务 ScheduledThreadPoolExecutor
  • Android Studio 显示build variants工具栏
  • c++八股文记录
  • C++ 指针进阶:动态分配内存
  • 点大商城V2.5.3分包小程序端+小程序上传提示限制分包制作教程
  • AUTOSAR汽车电子嵌入式编程精讲300篇-基于机器学习的车载 CAN 网络入侵检测
  • Jetson orin(Ubuntu20.04)不接显示器无法输出VNC图像解决办法以及vnc安装记录
  • LeetCode Hot100 108.将有序数组转为二叉搜索树
  • 微机原理_3
  • 4.操作系统常见面试题(2)
  • springboot 开启和关闭kafka消费
  • org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
  • 系统安全测试要怎么做?
  • Golang并发模型:Goroutine 与 Channel 初探
  • 批量添加PPT备注
  • 数据挖掘之PCA-主成分分析
  • 人工智能-注意力机制之注意力汇聚:Nadaraya-Watson 核回归
  • <HarmonyOS第一课>1·运行Hello World【课后考核】
  • Ubuntu18.04安装A-Loam保姆级教程
  • 重生之我是一名程序员 40 ——字符串函数(1)
  • Navicat 技术指引 | 连接 GaussDB 主备版