方法1
功能:主线程选择图片,子线程读取;
重点:注册HObject 对象;
步骤
- 新建项目并配置环境;
环境配置见qt halcon 联合开发配置
-
新建一个继承QObject的子线程类,声明对应的线程函数和信号发送和接收函数
-
主线程声明对应的信号发送和接收函数
-
多线程
- 建立线程对象;
- 建立子线程对象;
- 将子线程对象moveToThread到线程对象中;
- connect连接主线程发送信号和子线程接收信号;
- connect 启动子线程;
- connect 连接子线程发送信号和主线程接收信号;
- connect 释放线程资源。
-
类型声明
因为halcon的image为HObject类型,在线程传递时,要先注册qt中未定义的类型。
方法2 线程池
功能:子线程中halcon 打开相机,并在qt的graphicsView中显示;
多线程处理
-
在项目中添加一个继承QObject和QRunnable的类;并定义信号接收函数;信号发送函数;功能通过重写run函数实现。
-
设置自动删除线程
-
主线程声明对应的信号发送和接收函数
-
多线程
- 声明线程对象;
- connect连接主线程发送信号和子线程接收信号;
- connect 启动子线程,将子线程丢入线程池中;
- connect 连接子线程发送信号和主线程接收信号;
-
类型声明
因为halcon的image为HObject和 HTuple类型,在线程传递时,要先注册qt中未定义的类型。