Qt图像实时采集及边缘提取(多线程)

Qt图像实时采集及边缘提取(多线程)

思路

程序采用c++ qt多线程qthread作为系统的多线程系统,利用生产者消费者模型实现多线程数据处理,并利用opencv库进行图像滤波与Canny算子的边缘提取。并利用QT实现上位机显示。
采集到的图像通过线程间同步,传递给图像处理线程,图像处理工作为提取图像边缘,处理完成后把边缘图像传递到显示线程

结果

Qt图像实时采集及边缘提取(多线程)_第1张图片

代码

Github地址
Gitee

程序结构

UML 图表

图像采集 图像处理 图像显示 通过qq1进行生产者、消费者数据传输 通过qq2进行生产者、消费者数据传输 图像采集30ms、 图像显示30ms、 图像处理10ms 图像采集 图像处理 图像显示

流程图

图像采集线程

Created with Raphaël 2.2.0 开始 使用opencv抓取图像 将图像转换为灰度图 生产者:装入qq1中 结束

图像处理线程(边缘提取)

Created with Raphaël 2.2.0 开始 qq1是否有“产品” 高斯滤波 Canny边缘提取 生产者:装入qq2中 结束 yes no

图像显示线程

Created with Raphaël 2.2.0 开始 qq2是否有“产品” 在主界面上显示 结束 yes no

依赖

opencv

版权

有版权信息,注意主窗体和主程序中的版权信息,请自行去除,主窗体标题栏以及主程序

你可能感兴趣的:(linux,边缘检测,linux,多线程)