降龙算法系列(尝鲜版):降龙软件框架+模板匹配算法

降龙算法系列(尝鲜版):降龙软件框架+模板匹配算法

降龙算法系列(尝鲜版):降龙软件框架+模板匹配算法-周旋机器视觉工作室
降龙算法系列(尝鲜版):降龙软件框架+模板匹配算法
此内容为付费阅读,请付费后查看
RMB298
限时特惠
RMB428
付费阅读
已售 116

感谢大家学习降龙算法系列之降龙软件框架+模板匹配算法版本,请一定认真阅读本项目介绍,以免造成误解

降龙算法尝鲜版系列包括两大内容:

  • 1、封面图所示的一个算法展示框架:该框架基于QT/C++语言编写,通过QT的插件机制,可以扩展任何算法,是一个学习和展示的通用小型机器视觉软件框架。
  • 2、四种简单算法:图形旋转、灰度面积、手写Canny边缘检测、手写边缘轮廓模板匹配算法。

此项目教程受众:想入行机器视觉的学生,尤其是想做机器视觉传统算法工程师或者机器视觉软件开发工程师的同学。所有机器视觉行业的想学C++软件开发的从业者。、

此项目教程要解决的问题:个QT/C++机器视觉软开项目,网上QT的教程很多,但结合实际项目,并教如何编写一个小型机器视觉软件的没有。本教程就会带领大家学习开发一个机器视觉软件的思想和技能。

此项目教程内容:一个基于QT插件实现的小型机器视觉算法框架,可方便的接入各种自定义算法。并包含若干演示算法,如图形旋转,边缘匹配,模板匹配等。

此项目教程目标:助力上岸机器视觉软开工程师。如果你想面机器视觉软件开发工程师,那你把降龙GUI部分搞懂,就能学会C++/QT/CMake/动态库开发/opencv这些技能,再辅以一些算法基础和计科专业课基础,那可以很顺利的拿到软开岗。

有偿先版就有完整版,但因为本人精力、时间以及水平的限制,降龙算法完整版系列还在筹备中尝鲜版侧重软开,完整版侧重算法。

项目参考:

制作降龙算法系列教程的过程中,参考了一些网上的内容,参考的一些主要内容罗列在这里,大家可以自己花费时间学习,也可以购买我的教程来直接吸收知识:

模板匹配算法:https://www.codeproject.com/Articles/99457/Edge-Based-Template-Matching

视觉窗口:https://github.com/jurplel/qView

qt日志重定向:https://blog.csdn.net/weixin_37204973/article/details/82530713

在购买本教程前,请一定先仔细了解该教程包含的内容:

  • 1、降龙算法GUI源码:一个可以用于学习和算法演示的通用框架,可以自行添加任何算法,添加的算法都会展示到左侧边栏的算法库中。
  • 2、模板匹配算法源码:一个基于C++纯手撕的模板匹配算法,包含金子塔降采样加速、NMS处理、支持匹配不同旋转大小目标等等,当然,算法实现依赖的opencv的Mat类等基础类,毕竟连Mat类都要自己造轮子就太傻了。
  • 3、项目交流群:购买本教程都会拉入项目交流群,可互相交流学习,但不承诺答疑和配置环境义务。
  • 4、开放网站的降龙算法讨论区板块,在这里你可以提交问题,有价值的问题会单独解答。
  • 5、《降龙算法系列完整版》和《降龙算法系列尝鲜版(即本项目)》是两个不同的项目,侧重也有所不同,完整版还在制作中,购买尝鲜版后,以后再购买完整版可以退大家差价,不用担心重复购买。
  • 配套视频教程:视频教程我公开发布在BiliBili了,大家可以免费学习到,教程地址:https://www.bilibili.com/video/BV1wo4y1c7w6

学习本项目你将学会哪些内容:

  • 1、使用cmake管理项目:本项目全部采用cmake做项目管理,学习本项目你将学会如何使用cmake来管理一个中小型的项目。
  • 2、QT达到熟练:本项目降龙GUI界面采用QT/C++开发,涉及到了大量控件,实现了算法树、缩略图窗口、日志窗口和图像显示窗口,这些都使用到了较为复杂的控件,且本项目涉及qss美化相关内容,学会本项目,可以使QT水平由小白达到熟练水平。
  • 3、学会使用、链接opencv库:本项目使用到opencv的地方不多,仅仅用到了opencv提供的一些基本数据类型,例如Mat和Rect等等,算法部分都是C++手写实现。但学习该项目,将会使你深度了解到opencv库是如何链接到一个项目中并被使用的。
  • 4、学会手撕模板匹配算法:网上有很多开源免费的模板匹配相关内容,但付费学习该教程,可以让你达到能够手撕模板匹配算法的程度。
  • 5、C++达到熟练:学习一门语言最快的方式就是做项目,如果你打算入行机器视觉行业,那学习机器视觉行业的项目是最合适的。该项目代码全部使用C++开发完成,涉及C++多线程编程、单生产者单消费者队列,类的继承、QT插件的设计模式等等。

项目架构:

1、降龙GUI

降龙算法的演示软件,旧版效果图如下所示:

2

新版界面优化:

57

56

软件包含多个区域模块:

  • 1、菜单栏:菜单栏里,通过qt的action机制,可以将一些操作集成到菜单栏上

  • 2、执行按钮:一个widget窗口,里面放了三个按钮,分别是单次运行,循环运行和停止运行,这是机器视觉软件最常见的三个按钮。因为机器视觉软件的任务运行可定会涉及这三个动作。

    单次运行会单次运行选中算法,并把缩略图窗口当前选中的图片传入算法接口来执行。循环运行会循环遍历缩略图窗口,依次将图片传送给算法。停止运行即为立即停止算法执行。

    整个单次运行、循环运行和停止运行是靠一个单生产者单消费者队列模型来控制的,会在后续教程种做详细讲解。

  • 3、算法工具树:一个listwidget列表窗口,会将所有算法罗列到左侧边栏,通过选择不同的算法,会切换页面到不同的算法配置页面,当软件运行时,也会运行选中的算法。

  • 4、算法配置页面:不同算法会有一个独有的配置页面,运行算法时,会将配置页面的所有参数传送给算法的输入参数,来达到调参以及算法执行的效果

  • 5、视觉窗口:图片显示窗口,支持拖动,放大缩小,双击鼠标居中,图像自适应显示等等,在视觉窗口会显示当前图像或者算法的输出图像。

  • 6、缩略图窗口:一个图像缩略显示的窗口,会将选中的图像全部显示在这里,方便查看和选中

  • 7、日志窗口:打印软件日志的地方

  • 8、状态栏:软件底部的状态栏窗口,会记录软件运行的时间、CPU占用、内存占用情况。

软件整体架构其实非常清晰明了,算法部分通过统一的接口,借助qt的从插件机制实现了算法的扩展性。简单来说就行,即便你不了解整个降龙GUI软件界面是怎么写的,你也可以开发你自己的插件,然后将你自己的算法嵌入到降龙GUI里去。如何实现我们会在后续教程中做详细讲解,或者你可以现在去百度一下QT的插件机制。

2、降龙算法

降龙算法系列教程会对降龙GUI集成十八种机器视觉领域的经典算法,包括但不限于边缘提取、直线检测、圆检测、mark点提取、毛刺检测、卡尺测量、斑点分析、光度立体、模板匹配、灰度匹配等等,注意本项目为尝鲜版,仅含模板匹配算法

降龙算法十八掌均以动态库的形式开发,可以完全与降龙GUI隔离,因此如果你不熟悉QT也没有关系,算法部分是完全独立的。

那算法是如何嵌入到降龙GUI里的呢,我们的降龙GUI采用插件的机制,每一个算法都是一个插件,这个插件是基于QT和C++开发的,然后我们再通过这个插件去调用算法的动态库,从而实现算法嵌入到降龙GUI并完成算法的调用。但从代码实现上看,算法部分是与软件完全隔离的。

这样设计不管对与开发者还是学习者,都有着数不尽的好处。

3、教程目录

完整的视频教程我公开发布在BiliBili了,大家可以免费学习到,教程地址:https://www.bilibili.com/video/BV1wo4y1c7w6

项目源码和配套的文档资料购买源码后位于源码的doc文件夹内。

  • 1.1降龙算法系列架构介绍(√)
  • 1.2如何运行降龙算法项目源码(√)
  • 1.3课程整体教程目录(√)
  • 2.1使用qt搭建一个上位机软件的主页面(√)

  • 2.2如何实现一个缩略图模块窗口(√)

  • 2.3如何实现一个任务序列来执行我们的算法(单生产者单消费者模型)(

  • 2.4如何实现一个视觉窗口来显示图像(

  • 2.5如何实现一个日志模块窗口(

  • 2.6如何利用QT插件实现机器视觉软件的算法工具箱(
  • 2.7如何使用插件来完成我们算法的接入和扩展(√)

  • 3.1模板匹配算法之边缘提取原理(√)
  • 3.2模板匹配算法如何学习模板(待录)
  • 3.3模板匹配算法如何进行匹配算法(待录)
  • 3.4模板匹配算法整体代码讲解(待录)
  • 4.1如何使用cmake管理一个超小型项目(待录)
  • 4.2降龙算法项目是如何使用cmake来管理项目的(待录)

项目源码下载:

© 版权声明
THE END
喜欢就支持一下吧
点赞26 分享
评论 共11条
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码
    • 头像zdd1