粉丝3040获赞4637

如果喜欢我们的视频,感谢大家一键三连哦,先给大家介绍一下二十一点一一的一个安装, 那么二十点一呢是已经发布了,他的安装呢跟二十一点零五呢会有稍许的不同,那这里呢给大家介绍一下我们的二十点一的一个安装。首先呢我们把我们的二十一点一的这一个离线安装包呢下载下来,然后解压,那就可以得到这四个文件。 得了四个文件之后呢,我们打开我们的 soft manager, 也是 som 点 exe, 我们双击他 之后呢,他就能正常的进入到我们的这个外部界面,如果他有安装其他的黑欧肯跟这一个 dl tooth 呢,会在这里显示,那我这里呢是没有安装任何产品的。好,我们点击这个可获得的就可以看到我们新的这一个黑欧肯二十点一亿这一个 pro 该死的这一个版本了,那这时候如果我们点击安装,然后选择这些安装包,点击应用的时候呢,他会提示我们 cool motifi, 还有可能二十一点一 e progress, 比如说我们这个能不能进行一个安装,那是什么原因呢?是因为我们这个环境没有设置正确, 如果我们之前安装过二十一点零五的时候呢,我们这个环境的这个 url 的目录呢,他这里会帮我们添加一个这样的一个字段, 那在二十一点一一的这个一点一版本的 soft manager 里面呢,这个字段呢他会自动的帮我们添加了,所以我们在这里呢不需要添加这些字段, 直接是我们的这一个 logo host, 然后冒号八千就是我们这个端口号,然后呢直接到我们的这一个 supermen mani 卷的这个凯特的 log 里面,也就是对应的我们这个就是方式特瑞 的这一个目录底下的这个文件,如果在这里呢,你不知道要怎么样的填写呢?你也可以你自己先保存,你也可以点击这个控制台, 那我们刚刚出现安装的时候,出现个 arer ara 呢,就提示我们是黑欧肯这个文件下,这个 packy g 的这个文件底下呢又欠他了一个 packy g, 然后踩到我们的这个黑欧肯黑科二十点一一,然后二十点一的这个安装包,那这明显是有问题的,所以我们把这个拍进去的这一个字段呢进行一个删除。 好,我们可以看到我们这一个还有可能二十点一的这一个图标呢,也是变成正常的,他能正确读取到我们这一个偏居的这么一个图片了,这时候呢我们再点击安装,然后选择我们要安装的,那我们这里呢可以选择全部安装,如果这里呢你 不需要安装中间这三个呢也可以不用安装,一个呢是图片的获取的模块,一个是这个 dk 头的数字 io 模块,还有个就是维修 study 的扩展模块,那么这边选择全部安装,然后我们点击应用。 那这也要给大家介绍一下,我们安装这个目录呢是我们的底盘的黑欧肯,也就是说是我们的环境的这里的这个目录点击保存,然后呢我们点击安装,然后呢这里选择 咱们点击应用,然后这里呢是一个这个协议,然后我们把它拖到最下面之后点击接受就可以进行安装了, 这里啊会弹出一个维修时丢点的插件,那我们这里点击安装 就可以完成安装了,点击关闭就会继续安装 好,这样子呢我们就安装完成了,我们点击已安装这里去看到我们这个二十点一的这个 progress, 然后呢再把我们的这个 license 呢复制到我们的这一个二十点一安装的这个目录底下的这个 license 文件里面。 这时候呢我们再点击我们这个启动,然后呢就可以成功启动我们这个二十点一一的这个版本了,如果喜欢我们的视频,感谢大家一键三连哦!

我们今天介绍一下 helping 下载安装以及 lessons 的下载和安装啊。首先我们是有一个论坛的啊,三 w 五幺 help 点 com, 名字很好记。呃,然后我们打开论坛之后呢,在论坛左上角啊,这里有不同的版本,你看最新的是十八点一,那然后我们点击, 点击进去之后呢这里,嗯,首先要注册一个论坛的账号啊,注册之后,然后登录我们就可以看到这里有下载链接,他包括 window 系统的一个安装包,深度学习的以及运行环境的一个配置。啊,我们这里提供一些链接下载, 然后把它下载之后呢,然后就进行一个安装操作。安装操作同样我们在论坛的最上面有一个 happy 安装, happy 安装,然后大家打开这个链接之后可以仔细看一下,根据步骤操作,我们这里主要讲一些细节,讲一些细节要注意的地方, 呃,在第五步这个地方啊,注意,因为如果说我们图片很大,我们建议大家选择叉六十四有六十四位系统,叉八六是上车位。

想支持 apple 就常按大拇指按钮,体验一秒三年的快感吧。今天我们来安装一下 hellken 二十二点一一,这里呢我们选择二十二点一一, 或者选择这个 steady 的也就是稳定版,这边呢我们就选择我们这个 windows, 也可以选择我们的麦克 os, 然后我们点击我们的完整版就可以开始下载了。 好,我们打开我们的这个压缩包,然后选择这个 song, 然后等待一下,然后这里呢我们更新一下我们这个 song, 我们不更新呢也是可以进行我们这个安装的 好。更新完成之后呢,我们看到这是我们安装好的一些黑欧肯,我们点击我们的这个安装包, 然后呢点击我们的这个设置,这里呢有我们的这个安装的一个目录,还有我们的这个仓库的一个目录,但会根据自己的需求来进行选择。 那这里呢我们选择我们安装到 m 盘,把我们的地呢都改上 m, 好,让店保存设置,然后就可以点击安装,这里呢我们可以选择我们的这个安装的一个内容,这里我把我们的这个图像过去的模块呢安装一下, 我们选择对应的这个版本就好 好。选择完之后呢,我们在这里选择下 derek show 跟 derek field, 这里呢我们选择一下这个 vs 的这么一个插件,一个呢是我们的二零一九之前的一个版本,或者是我们二零二二的之后的这么一个版本,我们都选择安装一下。好,我们点击我们的应用, 然后他会等待一下这个修改。 好,这里呢我们拖到最下面, 然后点击安装好,他就可以开始安装了, 这里呢是安装我们这个 vs 的这个二零二二之后的这么一个版本的东西,我们这里没有二零二二,所以我们这里点击 close, 这里呢是安装 vs 这个插件是二零一九之前的这么一个版本,他们店里面装了二零一五和二零一九,所以呢可以进行一下安装 好我们这里的勾选上二零一九跟二零一五,然后点击安装,然后他就可以进行安装了, 安装完成之后呢,我们点击插呢就可以把它关掉了,然后我们的二十二点一就安装完成了,然后我们把我们的 nices 放入呢,就可以运行了二十二点一一了。 如果喜欢我们的视频,感谢大家一键赞美哦!

好消息, mbtic 公司已经发布最新版本艾肯二十一点零五!看过我们之前视频的同学,相信大家都对新版本跃跃欲试了吧!除了之前讲过的深度由四幺二的改进、 通用形状匹配和深度学习框架三大重点功能提升,新版本还增加了 mvx 软件管理器功能,这对于想要在同一台电脑切换不同软件版本使用的同学特别方便。不管你是想用老版本还是新版本,都可以快速切换了。 是不是很心动呀?那赶紧跟着 mt 老师一起学习最新版本,还可二十一点零五的下载安装吧!

我们今天介绍一下 happy 下载安装以及 nice 的下载和安装啊。首先我们是有一个论坛的啊,三 w 五幺嗨给你看名字很好记。 呃,然后我们打开论坛之后呢,在论坛左上角啊,这里有不同的版本,你看最新的是十八点一,然后我们点击, 点击进去之后呢,这里你首先要注册一个论坛的账号啊,注册之后,然后登录,我们就可以看到这里有下载链接,他包括温子系统的一个安装包,深度学习的以及运行环境的一个配置啊,我们这里提供一些链接下载,然后把它下载之后呢,然后就进行一个安装操作。 安装操作同样我们在论坛的最上面有一个黑粉安装啊,黑粉安装,然后大家打开这个链接之后,可以仔细看一下,根据步骤操作,我们这里主要讲一些细节啊,讲一些细节要注意的地方,呃, 在第五步这个地方啊,注意,因为如果说我们图片很大,我们建议大家选择 x 六十四有六十四位系统, x 八六是上车位。

各位同学大家好,欢迎来到由西动智能科技出品的浩肯入门班,我是主讲刘嘉欣,安装完成后,在我们桌面上的这个图标就是浩肯。打开 首先看我们的菜单栏,在文件菜单中点击浏览例行程序,可以看到薅啃官方内置的薅啃历程,其中包括了绝大多数算子的用法,同时为我们在项目开发中提供思路。我们打开一个历程, 这个历程可以看到是关于药片识别的,那么以后我们在做识别检测项目的时候,就可以参考这个相关历程。 我们来看下面这个导出功能,可以将蒿肯编写好的代码导出为 c c 加加 vbc、 萨普等编程语言,方便我们开发人员的调用。我们桌面上这个程序就是我们浩肯导出的 c 煞普程序, 大家可以看一下。这是我们薅啃自动生成的代码,这个是读取图像功能,是薅啃读取图像的一种方式, 选择好需要的图片点击确定即可, 我们也可以直接写出读图语句,与刚才自动生成的代码是一样的。接下来来看助手菜单, 我们常用到的有图像采集助手 标定出手 测量助手,后续用到的时候会为大家仔细讲解。这个是窗口菜单,查看我们所需要使用的窗口, 这个是图形窗口,这个是程序窗口, 这个是变量窗口, 在我们窗口散乱的时候,可以点击排列窗口进行整理。 现在我们来看工具栏中的常用按钮,这个是保存按钮,对我们的项目进行保存, 这两个分别是撤销按钮 和重做按钮, 这个是运行按钮,让我们写好的程序运行起来。 这个是单步运行按钮,让程序一行一行的运行。 这个是重置程序 按钮,将程序重置到没有运行过的状态。现在来看我们的工作区域。首先是图像显示窗口,用来显示我们处理后图像的状态, 下面的是变量窗口,变量窗口分为图像变量和控制变量,图像变量显示的是程序运行过程中图像的变化过程,他也可以显示在图像窗口中。控制变量显示的是图像在处理过程中某些相关数据的变化, 如图像的角度、中心点的坐标等。程序编辑器就是我们来编写薅啃图像语句的地方, 如果还有同学对我们薅啃整个界面菜单有些不理解的地方,我们不用着急,在后面我们 会经常用到这些菜单和工具,我们会对其进行更深的了解。那么本节简单的介绍 ho 肯的课程到此结束了,我们下节再见。

how can 联合 c 编程零基础到实战教程耗时九十分钟,想零基础入门的小白不能错过,教程有点长,建议马柱慢慢学习,看完这个教程你会了解, 一、环境安装加 help 基础二、 hyperreader type 类型加 c 中调用三、常用算子加 r o y 绘制加窗口控件四、相机项目 ui 脚本函数内存管理。本教程提供对应源码素材,有问题可以在评论区互动,可见源码素材都打包好了。六六六六抱走 好呃,大家好,我是瑞祥老师啊,欢迎来到我们朝夕机器视觉课堂,新的一年啊,这里呢,祝大家新年快乐啊,那么这一期的视频呢,瑞祥老师准备给大家带来的是 关于 hulk 联合 c l 编程的基础内容的课程体系。呃,在这啊,在这一个课程体系里面的话呢,我们还是以通过视频录播的方式呢,给咱们兄弟们去提供啊, 呃,其中呢这组啊这一个系列的内容呢啊,当然啊,第一个就是我们涉及到给给提供大家的有视频的回放,包括了有项目的笔记,源码以及知识点的笔记,包括了还有我们啊当前这里给他整理的这个详细的文档, 整套内容呢,就是由右边这位瑞夏老师来给咱们兄弟去负责录制啊,去那个 产出我们这一块的教程,那么在这一块教程中呢,我们主要含盖的啊,呃,内容体系呢,其实有下面这一些内容啊,首先就是关于 hulk 联合 c l 编程的那个环境的构建啊,呃,其实这一块内容话呢,在前面也给咱们兄弟们去做了一些的这个讲解, 那么这里面每一个体系里面的话,咱们这个环境的构建啊,这是必不可少的。然后呢,就是关于 hack 提供 api 的 结构啊,比如说像啊, h object 啊,像 h 的 top layer, 它的一个基础用法啊,包括了它的一些派生类啊,各自有什么特点啊,它是代表着什么? 那么这些的话呢,会在我们视频中给咱们兄弟做一个详细的解读,此外的话,还有 hack 中常见的算子在私下中调用啊,呃,其实呢,在前面啊,我们做的 这个 blog 分 析啊,其实就是啊呃,是调动了他的其中的各种算子啊,那么此外的话呢,还有就是 hulk 在 c f 中对象中的一些内存管理 是吧?那么这个的话呢,其实啊呃,相当说是这个其实是涉及到如果说对 hulk 已经有一些啊基本的认识之后啊,然后呢,我们去聊一聊啊,更深入的那个 c f 对 象的一些内存管理 啊,紧接往后,后面这里呢,咱们是 hoken 提供啊, c 下五控件啊,这里面涉及的控件有 h window control 和 h smart window control 这两种控件的这个用法,以及它们之间的一些区别。在这一系列视频中呢,我们后面会选择几个小视频呢,给咱们兄弟们去详细的去介绍我们这块内容,好吧啊,这是我们前沿给咱们兄弟们去做了一个安排啊。 好呃,大家好,我是瑞特老师,那么从这个视频呢,我们来给大家介绍一下关于呢,呃, hulk 联合 c l 编程呢,涉及到一些环境的准备啊。呃,那么在这个里面,其实我们需要准备了两块的这个相关内容啊 啊,这会内容中的话呢,首先第一个其实就是我们这个关于 hokken 软件的一个安装,这个安装的话呢,呃,其实我之前呢给大家去录制过关于这个安装的相关的视频,在哪呢?在这个链接里面,所以说在这里的话,我就准备把这个里面内容呢就直接呃 可以呢让大家可以直接自行去下载啊,去按照着这个对应的视频呢去进行安装。今天的话呢在这啊我没有准备继续给咱们兄弟们去演示如何去呢,再把它给安装一遍啊,因为我本地其实呢已经去安装好了啊,咱们兄弟们可以看到的就是呢 我们桌面上呢这里呢其实有一个啊这个软件儿啊,这就是什么?这就是啊我们安装好的这个 hokken 的 一个集成开发环境,那么我们基于它的话,其实我们可以做呢,呃, hokken 支持这个所有功能其实都可以去进行呢这个完成, 这是我们所说的啊关于这个 hokken 安装。其次呢这里 hokken 安装的时候呢,大家其实还需要注意一个东西啊,就是在安装成功以后,其实呢我们是需要去呢给这个 hokken 去进行配置它的 授权文件啊,其实也就是 license 啊,因为本身这个 hokken 软件其实它的正版的软件是一个授权的啊,它是需要进行的这个购买版权的这样一个软件啊, 而且这个价格呢比较贵。而我们这里呢给大家提供这块安装的话,呃,可以给咱们啊兄弟们提供他的安装包,包括他的一个呃,安装之后呢就授权的 nice 的 文件啊,这个其实都是可以的,在我们这一个视频里面都可以去获取到的 哇,所以这会的话呢,大家就严格的按照我们下面这个教程里面去进行了一个安装完成,这是来啊,我们所说的关于 hok 的 安装 好,那么除了这个以外的话,还有一个就是关于的 c 下 c 下铺开发环境的一个安装,当然我这里开发的全部都是属于集成开发环境啊。 呃,同样的啊,在我们这里去安装的话呢,其实我们需要安装一个开发工具,叫什么叫微雪 studio 啊,这个的话呢,也会有相关的这个专业的教程会教给你们,当然这个视频的时候也是我来给咱们兄弟去录制的啊,大家可以直接去下载,然后呢对照着这个, 嗯,在我们这个安装的步骤啊,然后呢逐个去进行安装,只不过啊大家需要注意一下啊,在这里安装的时候呢,其实尽量不要去让他和其他别的软件呢,嗯,这个进行了一波冲突,好吧,避免的话呢,就是在安装失败情况下呢,就会比较麻烦啊啊, 这是关于我们环境的安装的啊,我们给咱们兄弟们提供的有相关的一个完整的教程啊啊,这个视频我们也就说到这 好,呃,大家好,我是肖老师啊,那么这个视频呢,我们来继续来给大家讲解关于 hocken 联合 cfo 编程的基础, 这个视频重点说说关于 hocken 的 这个 cfo 编程这一块儿呢,它的简介啊。呃,什么是 hocken 的 这个 cfo 多类编程呢?呃,其实呢,它是指我们 hocken 的 一个多类编程的一个语言接口啊, 例如 c 下五或者 vb 多链啊,它就是为我们提供了一组的那个啊 c 下五的内或者多链内的一个啊内啊和相关的控制啊。 那么它有什么特点呢?首先啊,就是平台的一个独立性啊,呃,就是我们不仅可以在啊呃所有的平台上使用它,它还可以呢,它也可以运行在其中一个 a p i 上创建应用程序。 在其他的 api 上创建了应用程序啊,也而无需呢重新去编辑它。这其实是呢,我们在使用这个 hunklenode 的 时候是完全可能实现的。 然后呢,这个 hunklenode 呢,它是高度独立于平台,它是用 c 下五来编辑的啊,呃,但可以啊,可用于任何 dunklenode 的 语言啊,它与一般的 dunklenode 呢一样啊,它可以在 windows 和 linux 上,包括呢在三十二位和六十四位的系统上。 此外的话呢,呃成功对 han 多纳腾和多纳库尔实现了进行的实验啊,基于在这个二木的平台上啊。此外的话呢,我们还可以在这些平呃还呃不仅可以在所有的这些平台上面使用它还可以运行啊,那么在其中一个 api 上创建应用程序呢?在其他的 api 上创建应用程序啊, 呃都不需要去重新编印它啊。嗯,好,这是呢它的一个平台和多纳 far 默克啊, 呃,这里的话呢,基本上多内应用程序呢,其实多为一个或者多个呢实现开发的这个多内的这个类型啊,这里面其实无非就是多内块和呃多内 fiona 啊,这里也就是咱们所说的叫多内框架,目前基本上都是进入多内块时代啊, 支持上面列出的所有的多的实现啊,所有的实现接口的其实都是相同的啊,以及他们进入的这个行为对于我们用户来说的话呢,呃,他们在工具和平台支持方面的话呢,呃,其实大多的会有所不同啊,那么这些的话呢,大家就其实做一个了解啊,然后的话呢,就是关于呢这个叫 啊 h develop 编辑多列特啊,这是通过了 hdevelop 点多列特语言进行绑定,我们可以执行到这个 hdevelop 的 程序和这个相关的过程啊,这其实也就是我们可以通过它来去执行这个 h 的 程序,也就是我们所说的呃,这个 h 程序, 那么然后呢还有 h 啊 develop 编辑点多列特,这里面设置了 h 多列特 x l 和这个呃 h d v n 点多来特 x 二啊,他为豪肯和豪肯 x 二呢提供了封装组合相关的组建啊,这个其实呢,呃,暂时呢我们可以不用关注这个啊,但这概念呢,咱们给咱们兄弟们首先呢去啊做一个基本的了解好吧。 啊,这是呢我们所说的关于豪肯多来特一个简介 好,呃,大家好,我是瑞夏老师,那么接下来呢,我们给大家来一个关于 hokken dollar 一个编程案例啊, 在这个案例中呢,我们的任务是读取图像并计算的这个图像中连接区域的相关的数量啊,这个大概的牛尺呢,咱们可以看,我这里呢 给他截的有这样一张图啊,左边这是一个咱们这样的图啊,这是然后呢这里面咱们去把它做二的画,然后这时呢咱们去做区域款,那以后呢可以得到的这个不同区域的这个,呃数量啊, 那么这个步骤里面其实我给他记了详细的笔记啊,这可以说非常详细,我们第一步需要干什么啊?这里面就是咱们需要准备 hock 的 那个,呃,依赖环境嘛,当然这个我们肯定已经安装好了啊,然后呢还有去安装的,嗯,这个多纳块儿的需要的 s d k 以及呢它的, 嗯,其实有哆来块 s d k 啊,我们没有 vs 啊,就是不使用它的这个开发工具, vs 的 话我们也可以去呢呃进行开发。这个,呃哆来块的啊, 然后呢我们呃在这里话就是没有提到 vs 的 话,就是我们相当说通过命令来直接进行的那个创建项目啊,这是呢我们在执行的时候它可以给我们创建了这样对应的一个项目出来 啊,然后呢引入需要的这个程序级,我们目前是二四点零五的这个版本,然后的话呢在这里咱们去创业出这个项目以后呢,那么他会有一个呢这个,嗯, pro 改 m 点 cs 的 这样一个内文件,我们在这个内文件里面咱们可以把那个文件内容呢改成这个样子啊,然后呢我们这会就可以 do 呢, do 内存软啊,这会呢就可以运行,那么运行的结果的话呢,其实呢,呃,其实它执行的就是核心代码,就是就在这里啊,就在这里, 这里呢大概来给咱们兄弟们去啊,说一下是什么意思啊?这里其实就是呢,哎,我们去啊得到了一个图像啊,然后呢通过这个图像呢进行一个二值化的处理, 二值化处理以后呢,其实就把这个图像呢分成了不同的区了啊,那么原原本一个彩图或者说一个呢灰度图的话,他里面这个区呢就只有一个,然后二值化的话呢,这会一处理的话呢,其实就会形成呢多个区域啊, 多的话这会咱们再把这个 p 呢进行一个什么进行一个区域砍断,再把它划分成更多的区域啊,最后呢这里面咱们可以得出一个区的结果啊,然后我这里对其做个输出,然后这个输出结果了,其实啊,我这里其实是有的啊, 它输出一个结果的为四十三,那么这个过程其实就是什么?就是我们在啊这个 howok 多了特啊,就是直接在多了里面,或者在 c 下面,咱们去呃处理我们图像的大概的这样一个过程。 我这里的话呢,其实写的有详细案例啊,大家在看到我们这个视频,或者说,呃,拿到我们这个 我这个文档以后啊,大家务必要去实操一下啊,这会的话呢,我没有给他现场去实操啊,因为这个其实我自己都非常清楚了,好吧, 这个的话内容其实比较简单,大家一定要去进行一个实操啊,实操之后的话呢,在这里其实大家会发现呢,这里会涉及到什么 h image 啊啊,包括呢还有什么 h object 等这些,那这个的话呢,我们在下个视频就开始给大家解读这块内容。好吧, 大家好,我是肖老师啊,那么这个视频呢,我们来给大家介绍一下关于呢啊 h object 类型和这两个 h tapper 类型啊,那么在这里的话呢,这两个类型其实是我们在 hokken 联合 c f 进行编程的时候呢,非常重要的两个类型啊,哎,我们来先来基本理解一下啊,在 hokken 联合 c f 编程中呢,就是我们需要把二者各自支持的类型是要进行匹配的, 因为啊,我们这个 hokken 中啊,我们所写的这个代码的话,这里其实它要调用各种算子啊,这个其实又叫 h d 编程,那么也就我这边写出的代码,其实它不是相同的代码, 那么咱们要把这边所写的这个代码呢,要和我们 c 样那么进行匹配啊,二者要能够联合起来的话呢,那么我们两种编程语言他其实会有 各自不同的那个数据类型,那么在这里以后呢,那么二者既然要联合的话,那么二者必须要去的匹配一些类型,不说把类型完全去统一的话,至少呢他每一种类型之间的话,哎,就是两种类型之间他有对应的关系,他能够进行匹配, 那么在 hook 中的话,分为图像的属性类型和控制属性类型,图像属性类型呢,包含了有什么 image 啊, 呃,像 region 啊,还有 x, l, d 啊,是吧,等等这些类型,那么在 hook 中的控中控制属性类型有什么啊? int 件其实有 int 类型,还有什么,呃,这个 rear 啊, screen 类型啊, topier 啊, hander 是 吧, 等等啊,这什么叫控制数据类型,那么这些数据类型的话呢,哎,其实这是在 hook 里面的内存,那么在 c f 的 话,其实呢,呃,它也有需要有匹配的内存来为之呢,哎,与这些内存呢进行匹配, 所以我们在通过 hunk 导出了 c f 程序以后呢,需要 c f 能够支持内存来匹配 hunk 这个内存,那么 hunk 联合 c l 编程这个程序集中呢,其实就已经支持了,叫什么 h object 和这个 h top 啊,就这个啊, 那么这两个,呃,叫 top 啊,这两个内存的话呢,嗯,其实就是我们在进行呃, c 下铺和 hulk 之间啊,这个数据类型进行匹配的一个纽带,好吧。啊,然后呢,咱们这里呢,咱们先看一下这个 hulk 啊,这个啊,先看下这个 object 啊,类似它是把图像的属性上分为成一个类的一种形式啊,包含了有什么 h 的 develop 下的这个像啊,这个 image 啊,还有什么 image 啊,还有个 s d, 嗯, x l d 啊,哦,还有这个 h develop 下所有的这个控制数据啊, 我们这里呢,有这样一个图啊,比如我们图形数据,这里有 image resume x, a, r d 的 啊,然后呢,这里面它是 导出之后呢,在 c 项目里面,其实它会有一个公共的,什么叫 h object 啊,有这些数据类型,其实在 c 项目里面,咱们统一都可以叫 h object, 统一来对其进行一个匹配啊,是没问题的啊,它把图像数据呢, 呃,这个蜂窝成一个类的一种形式啊,不是包含了在下面,这有 h t, y f, 下面是 emg 啊, root 二的,嗯,这个 x l d 的 啊, 那么也就是说这里面啊,在 hokken 中啊,它们这个三种数抽象数类型,其实在 sum 中其实都可以去呢通过 h object 来进行表示,那么这个 h object 下面,下面有什么 emg 以内和 x, l、 d 的? 其实这里面在 h, e, m, h 啊, h 语音还有 h, x, r, d 啊,那么对于这三个这是什么?这是我们左边,这也是 h d 面的,这是什么?在 sum 里面的,它们有一个关联关系。 此外除了这个图像图形类型以外,还有叫控制数据啊,这有 intager, real stream, top 这个 top hander 等等这些,那么对这些以外呢,咱们还有什么?这个 匹配于 capp 里面,咱们有什么像 htop 的 啊,这个内好不好?那么这个其实包含了这个 h 啊,顶端下的所有的这个控制数据啊,就在咱们这,好吧,这就是来啊,对于我们这个 h object, htop 的, 它们二者的,在我们这个 capp hulk 年后 c l 编程中的它的一个呢,呃,对应的这个关系好不好?具体这里面他们我们怎么去?呃使用它啊,那么在后面视频呢,我们会持续给大家讲到, 好,呃,大家好,我是瑞祥老师,那这个视频呢,我们就来给大家详细的去解读一下 h object 类型啊。 呃, h object 呢,它是一个表示图标对象的一个类啊,这个其实特指的是在 c 下五中呢,这个 h object 啊,那么在 hokken 中,它这个图标对象的对应层次的结构建模的话呢,大概是这样的一个建模形式啊,你看这里面呢,它会就是这个 object 下面会 对应的关系呢在,嗯,在这个是在 hokken 里面对应关系呢,在 c 下五里面其实对应的叫就是这个 h object, 那么在 hook 中的话呢,这个 emoji 啊,呃,它是等于什么?等于我们这个像素加上这个定义域啊?包括还有这个图像主要的这个部分其实就是通道啊,例如像我们单通道的灰度值图像,包括了三通道的这个彩色值图像,指就是我们这个 emoji 啊, 然后呢这个 uh resin 啊,这个什么它是定义为叫一组像素啊,或者说叫区的像素,这里其实一般是不需要连接的。这个指定这个像素啊,这意味着,其实呢,呃,这意味着啊,即便任何的像素级呢,也可以作为单个的区域来进行处理。 好吧?比如说来我们去给咱们兄弟们去来个例子啊,来我这里以后呢,来咱们直接去给咱们兄弟们去打开一个呢,呃,我这里给他准备的有这个案例,好吧?啊,应该就是这个啊, 这咱们去把它打开,打开以后呢,在这啊,比如说你看这是我们在前面一组视频里面的话,其实我曾经给咱们兄弟们去呃,讲过这一块的这个 实战的啊,那比如说这里面咱们是读取一个图像,然后这是二者经什么?来,我们先从这里开始吧,先读取了这是一个彩色值的图像,然后这个彩色值图像的话呢,它可以对其进行一个,是吧?进行一个灰度化处理嘛,然后紧接着往后这会咱们再对其做一个什么二值化的处理。 好,那么兄弟们啊,那么此时此刻这会的话来我们做了二值化的处理之后啊,呃,其实呢,我们这里所说的啊,呃,这会二值化处理以后呢,这会咱们 嗯指定啊,再往后这里还有区域砍断啊,那么这个区相当于什么意思?就比如说啊,他把当成里面这个,呃,挡风玻璃的这一块,他把当成一个区啊,这叫独立一块区。 然后呢这里还有什么车牌号的这个是一个区啊,这里面这个孔洞这边这个又把它当成个区的,哎,下面这个呢又把它当成个区域,你看光包括呢中间这里有一个角落的这一块,他要把它当成一个独立区域, 这就指的什么?这其实也是一部分的这个像素啊,这个其实也是一部分的像素,然后区域和区域之间呢相互是独立的关系,这是我们去做了这个区域砍断以后啊,然后呢我们可以去呢了解了,就是这就是我们什么叫区域啊啊?然后呢还有一个叫 x、 l、 d 啊啊?这个叫 extended 啊, nine discovery, 它是一连串的坐标的串列, 相邻的两个点之间呢,可以以直接连线啊,就是可以以呢直线连接啊,包括所有基于轮廓和多边形的这个数据啊,图像均用的像素点保存的这个像素点啊,呃,图像均以像素点进行保存,那么像素点呢?是不连啊?是整形不连续的。 那么大概的这个过程的话呢,就这里啊,它需要去呢读取个图像,然后呢后面呢?这时来下面呢?这时可以获取了什么?这时可以获取到它的这个呃坐标,呃,这可以获取到它的这个 x l、 d 啊, 他这个的话我这里也给咱们兄弟们去准备的,有相关的这样一个案例啊,在这啊这个啊,这不是这个解法啊,我看这个的话是不是这个是好,这里呢?那咱们去重新去打开一个话,这是咱们重新去创建一个啊,来新建一个程序。 呃,那这个程序的话,这会呢我们直接把这个代码呢去给咱们兄弟们去呢。呃,放过去啊,放咱们这啊,放咱们这来啊,然后呢这会呢咱们去把它保存一下吧,嗯,也保存到我们这里吧,这里面咱们保存一个呢这个 x and d, 好 吧,就直接保存这样啊啊,然后这会咱们先保存一下,然后这会咱们再执行。我之所以保存是因为我这里要提取这个图像的时候,我必须要把它把指定到和那个图像相同文件夹,它才读得到。这是二,那个,呃,灰化处理,然后二等化处理, 紧接着往后后面这也其实就是获取到它的这个 x and d 啊,这指的主要是什么呢?主要是指的是啊,呃,相当来说是我们这个轮廓线, 他说基于呢,呃,直线连接的啊,包含我们所有的那个轮廓的一个多边形的一个数据啊,其实指的就是什么?就是轮廓线,你看在这个里面我们执行出来结果的话呢?在这里他执行出来这个结果是不是个轮廓线的 啊?哎,不是这个啊,应该是在跟这个是吧?这是不是轮廓线?这其实呢我们可以看到啊,这其实描述是不是还是一个呢?这个汽车 是吧?只不过这里呢他体现出来这其实是主要是一个轮廓方向的啊,主要是个轮廓,好吧,这个轮廓呢特指的是什么?特指的是区域的轮廓啊。其实来我们可以看这个图啊,我们去前后比较啊,比如说来我们这里截个图放这啊,然后的话呢,咱们放到这来的话,你会发现啊,你看这里的话呢,这块 挡风玻璃的这个位置啊,这个其实是一个蓝色的,这个他是只体现出来轮廓线,然后呢还有就是这边你看大灯的右边大灯这个位置, 这里和上面这里是不是连在一起的,这是不是轮廓线?然后呢右边这里话这是什么?这是我这个这个颜色,这个这是不是也是轮廓线的?包括这里面还有很多非常小的区域,他是不是都把轮廓给我画出来了? 这就是呢,我们所说的叫的 x, l, d 啊,这就是 x, l, d, 好 吧,那么在 h object 里面它将是包含这三种类型的啊,那么在 c 项目里面的话呢, h object 里面其实呢它是包含了有 h e, m, h e, r, e n 和 h 的 x l, d 啊 啊,这个的话后面会给咱们兄弟们在代码中呢给大家去进行演示啊啊,这个视频呢,我们就先说到这 好,呃,大家好,我是瑞强老师啊,那么这个视频呢,我们来开始给大家讲一讲这个 htop 原组类型啊,呃,涉及到它呢,在 htop 中的一个占据的一个这个地位啊, 首先来理解一下啊,这个 htop 呢,它这个原组呢,其实怎么去理解呢?呃,它类似于一个数组,但是又不同于数组啊, 呃,怎么说呢?呃,其实我们使用这个东西的话呢,相当于说把多种税类型呢,像 float 啊, double 啊, int 啊,那个,呃布尔啊, spring 啊等等啊,这类型呢,相当于做了个打包,然后呢统一呢进行一个使用啊, 那么在我们呃呃这里呢,它有一个非常呃重要的特点,这个大家需要记住啊,就是长度可变,数据类型可变啊,像我们啊在如果说啊做 c x 五编程啊,或者说 java 编程,其实我们给 给定某一个变量,指定一个什么属性,它是不是都是要确定你这个是是吧?你是 excel 类型,你就是表示呢只能表示是吧?整数数字的啊, 你是啊那个 flow 类型,哎,你可以表示呢那个数字是吧?那么这个其实表示我明确了你是什么类型以后呢,它就是不变的。而这个啊,这个 top 这个圆组啊,它的特点就是呢长度可变,数据类型可变,也就是它既可以用来存储呢, 那什么数字的啊,也可以用来存储的那个字串的啊,其实都可以啊,都可以好不好?那么这里的话呢,给咱们兄弟们去来了这样一个案例啊,我们直接通过这个案例呢,给咱们兄弟们去 来看一看啊,他的一个效果啊,好。现在的话呢,这会呢我们直接去把这个代码呢直接放过来啊,然后呢放在我们这里呢,咱们去运行走你这,咱们去把它给它 放过来,然后呢这会呢我们去直接去运行一下啊,直执行这个代码啊,左边这个图像呢,咱们不要啊,首先这会的话啊,这会咱们需要去把那个变量窗口给打开啊,变量窗口在这,好吧,这是我们这个变量窗口啊,然后呢我们去把它放到左边啊,放在咱们这 好, ok, 然后呢这会儿呢我们开始去执行啊,当我去店按 f 六的时候它第一个执行,这会儿的话,其实呢我这里其实在指定这个变量的时候,我是不是可以给它来这样一串数字的?你看一二三四五七八九十,其实就是我这个 top 一 嘛,就是这个,是吧? 然后呢,这会其实我除了通过这种啊冒号等于负二的方式呢,给他赋值以外了,我还可以呢去通过这种缩影的方式去修改他的值,比如说我去的指定缩影为一的缩影为一呢,他的缩影下标是从零开始,那么缩影为一的其实是这个二啊,他这会把这二变成零了,这会的话你会发现我这个二这里是不是变成零了? 之前这里咱们在初使画的时候,其实呢他这里是吧?这里是二啊,这是二啊。那当我们执行这个时候,这会这个二是不是变成这里面第二个下标为一的,这个值是不是变成零呢? 然后的话呢,在这里面我们还可以去批量去改原啊,那个原组元素,这个值就是我把一三五的值改成 xd, 一三五啊,比如这里下标为一的啊,这不是里面零啊,然后为三的啊,这里就是这个是为三的啊,五的,是吗?哎,就这个为六的,这个他下标为五啊, 哎,也就是这里零四六会改成什么? xd 啊?我们这执行完毕后,你看这里呢,这个这个是不改了,这个是不改了,这个是不改了。全部改成什么?哎,这块其实它是一个字母串类型, 这就是我们刚刚给咱们兄弟们介绍的,呃,这个 top 的 话,其实,呃他可以去支持所有 machine, 我 们去啊,呃,一开始你看我们写的这是数字,这会你看我改着改着,我把这里面只改成字母块了,他仍然没有任何问题。 好,然后呢?这会你看,我再把二四六啊,二啊,零一二,然后呢?呃,三四,然后六,我把改成什么?改成这个小数啊,这会你又发现了, a 也可以,你看这是,呃,下标为几啊?下标为二的啊,这是下标为四的,这是下标为六的啊,全部改成什么?改成这个, 嗯,享受啊,然后这会咱们又去呢,哎,咱们还可以这样啊,我们再去把这个值来改成什么?比如这种咱们指定 top 二的话呢,呃,咱们可以等于什么呢?就是这里啊,批量把批量给 top 的 那个数值的去进行赋值啊,其值呢?为零到一百的连续值。 你看这里,其实我们这个操作的话,像是说是我们在一开始声明这个 top 的 变量的时候呢,这会就直接给他来个数字,这个数字其实是零到一百的啊,但是这个其实太长了,我们这会的话呢,看的话看不了那么多啊,在这啊,就在这里面这个值啊,这是零到一百的这个值。 然后的话,这咱们也可以去怎么做?批量给 top 数组的去赋值,然后呢其值为零到一百,然后不长值为二啊,指定就什么意思啊?我零到一百之间的话,他连续这个值之间是二的啊,他从零开始,第二个就是什么零二四六八十啊,这样每次加二的这种方式, 然后还有对两个数组进行这个合并操作啊,比如我把这个 top 一 和 top 二进行合并, 后面就得到这个 top 四啊,那么 top 一 top 二这两个合并的话呢?来 top 一 是哪一个?是这个啊? top 二是这个是吧?那咱们这两个进行一个合并以后呢,你会发现在这里其实呢,你看这个一,其实呃,我这里有个一,我 top 二是不是也有个一呢?但这里合并以后呢,它这个只只保留一个啊,就是求并集嘛, 然后呢对数字元素的进行替换,这其实也可以啊,我们指定 top 五,然后呢我们去直接把那个呃七八啊,这是对数字元素进行替换啊,我们可以呢去调用这个函数,然后我使用 top 五呢,把这里面的啊这个值呢,可以把那个替换掉啊,这样替换的话,咱们是把前面这里的这部分咱们给它替换掉了, 把这里指定的啊,这个 top 尾的这这里面这个指定的这个下边尾尾一的这个啊,是不是可以把切换掉了,然后紧接着往后呢,这里面向数字中插入值,这会咱们也可以啊,然后这个咱们可以 insert 啊去插入啊,这也是没有任何问题。好吧, 那么也就说啊,这个其实这个哎 top 的 这个呃类型的话呢,其实它相当于说在我们 hok 中啊,一种应用类型的一个呢,这个通用类啊,当然这些的话呢,其实我们要结合着 capp 来共同给咱们兄弟们讲解的啊啊,这个视频呢,我们先给咱们兄弟们说到这啊, 好呃,大家好,我是瑞夏老师,那么在前面呢给大家讲了关于 h object 类型的一个解读啊,比如说它呢,主要包含的有 imagine 类型啊, reason 还有 x l d 啊, 那么这些的话,其实在呃呃我们啊 hokken 中啊,我们给咱们孙正义去写的有这个案例啊, 那么这些呢类型那么匹配于 c 项目中,那么它又是去什么样类型呢?这里呢,其实我们可以呢把这些案例啊给大家,咱们去探讨一下啊,我们来把这个代码呢,咱们去附着我们这来啊,然后呢我们直接可以导出成我们相关的那个。 嗯,这个 c 项目代码啊,咱们这里做个导出,导出好了以后呢,那么这会呢,我们可以呢去把它打开啊,在这儿呢,在这里的话,这里咱们通过 vs 去把它打开啊, 嗯,在这里话,然后呢在这会的话呢,我也去给咱们兄弟们去打开一个呢,我这里提前准备好的有这样的一个。嗯,解决方案啊,在这里啊,就这个话, 这是跑克宁和赛尔编程的一个基础资料库啊,那么这会的话来我们来给咱们兄弟们去看一下啊,那么对于呢,呃,这会我们重点去探讨的是它的一些数据的类型。呃,现在的话呢,我这会打开了这个代码的话呢,其实你会发现啊, 呃,它的核心代码,其实这呢就是在这里的这一部分啊,我们可以把这个代码的话直接去把它放这呢,呃,比如说我这里其实写的有这样的一个啊,这是啊,这是当前这样的一个。好了,这里面咱们重新创建一个项目啊,咱们来一个控制台应用程序吧,好吧啊,新建一个控制台应用程序, 控制台应用啊,然后在这啊,然后呢咱们这里呢? hock 呢? app select, 然后呢这个 program 啊放这啊,然后呢咱们去来 放这啊,然后呢把这个 demo 呢直接去复制到我们这来话,但是这会复制过来它要能够支持的话,当然我们还是需要去干什么事呢?呃,这个咱们其实是需要去引入一下这个程序集的啊,其实也就是我们这个程序集啊,我们可以直接去把这个程序集呢去把它复制那呢复制到咱们这来啊, 啊,这样的话他才能够识别我们的代码,然后这会我们把那个啊当前这个解决方呢,咱们直接去给他翻译一下啊,此时此刻啊,这会咱们去翻译完成以后呢,嗯,他说我当前这里并不具备这个,这时是需要引入一下这个命名空间啊。 啊?我看一下我这个程序集啊,这个程序集其实并没有去成功的引入过来,看到没有?在这里啊,这种情况的话我们需要等着,你看这里它其实有个警告,看到这里其实有个警告啊,就这句话咱们需要去呢重新去生成一下啊, 就这个程序集引入的不兑换,那么它肯定是识别不了的啊,这里面其实上面这个程序集这个是可以的啊,那咱们这样吧,咱们去把它给先移除,然后呢咱们直接去 look 它安装好吧, 但是咱们这进行 logo 的 程序包呢,咱们去进行一个安装啊,这安装的话咱们把这个 名字呢去把它给复制过来啊,然后呢从这里去做一个搜索,就这个啊搜索出来,那咱们这里选择的版本呢?是什么版本呢?这个版本呢是二十四点零五的这个版本啊,目前呢这里其实我们已经是 浏览一下管理 logo 的 程序包,好,这儿咱们先去把它卸载掉,卸载掉以后,这会儿呢,咱们再重新地去安装二十四点零五的啊,先把它做个卸载, 卸载之后呢,它说不存在这个包啊,然后呢这会儿我们需要重新去对其安装,或者说我们直接去于呢这个解决方案啊,去把它做一个安装管理 logo 的 程序包, 我们要支持这个 hokken 的 那个程序包,然后呢我们才能够去呢,呃,进行使用啊,二十四点零五啊,就在咱们这里啊, 好,现在的话呢,这里是二十四点零五的,就是我们当前这个啊。啊,这个其实已经安装了是吧?啊?已安装以后呢,这会儿话来我来看一下啊,咱们重新打开我们这个截图端 放咱们下面这啊,嗯,那我下面这里控制台的话呢,并没有安装啊,它这也是基于 windows 的。 嗯, 好,那么这会的话呢,可能这个程序其实并不适用于我们这个控制台应用程序啊,那么咱们去怎么玩呢?咱们去把它 form 一 里面放,这的话,就这会的话,咱们直接去把它放到这个空间里面去啊,那也说这会的话呢,我们直接去把这个代码呢直接复制到我们这个 呃函数里面来,好吧,放在咱们这啊,把我们导出的这个代码呢,咱们直接复制到咱们这去,好吧,因为这个它是依赖于呢这个 windows 的 啊,嗯,它是依赖于呢这个呃 windows 的 那个这个窗体程序的啊, 好,现在好了,这会呢我们直接去把它给运行起来啊,走你啊,我们来看一下啊,或者说来在这里的话,我们也大概可以给咱们兄弟去表示一下啊, 比如说啊,你看在这里的话呢,我们指定的,呃,这是读取一个图像,读取图像的,这里面咱们其实呢,这其实只能读取,这其实它是读取是个什么类型?它其实是应该是一个的那个 h image 类型, 它这里其实呢有这里啊 read image, 这里其实它需要去接收的,其实尽管这里面所有接收都是需要一个的那个呃 h object 的 啊,但是实际上这里的话呢,其实它指定是个图像啊, 包括了还有后面那点,它有灰度图的,这些其实全部是不是都是给我们呃通过这个 h object 来进行声明的?还有这里咱们去作为砍断区域的,其实我们都是使用 object 来进行声明, 而这里面咱们这个啊 h o 杠 m h 这个表示其实就是图像,这个指定是我们那个灰度图,这个是我们指定的区域啊,这个是指定的是我们砍断区域嘛。 那么也说在这里面的话呢,其实在 c 下头对应的那个,其实它都可以使用 h opt 接口来进行一个来声明,只不过在这里声明的时候,其实呢我们可以去嗯调整啊,就这里面,比如说呢,我们这里来一个还有叫 h image 啊, 这个其实呢我们也可以去呢直接声明这样一个 image 啊,这个 image 其实它和 h opt 之间的关系的话是什么关系呢?我们可以 f 十二啊,点过去看, 你看它是继承者,是继承者 h o p g 的 啊,那么也就是说我们这里使用 h o p g 的 声明的话呢,其实我们对于图像啊,包括这里面二等化处理的,还有我们那个区域的啊,这其实都可以使用 h o p g 来进行声明,所以呢还有像 h 的 这个 region 啊,就这个啊,啊,比如这里面咱们其实它也是什么,它也是继承自我们这个 h o p g 的 啊, h o 这个呢,其实他是,呃,继承,他是我们这些类的,这个是吧,统一的都是一个复联啊,所以我们使用复联来进行声明的话,这是没有任何问题的,好吧,这可以啊,此外的话,还有呢,像后面这还有对于什么呢?呃,像我们要处理的那个 啊, connect 啊,这里其实呢我们有什么叫 h x l d, 好 吧,这个是不是也是可以的 x l g, 然后呢咱们去溜一个这样的啊?这个是也是 ok, 没问题的,这指的是我们轮廓图,轮廓图,其实这个很显然我们去在 h o p g 里面,它是不是也是继承它的? 就是反正咱们这里所有这三个类型的话都是继承它啊,这其实就是我们相当说前面这里的话呢,我们所说的这个 h o p 下面这都是什么?里面就是零 x x l d 的, 这个其实在私项目里面的话,其实它是一种这样的继承的关系,好吧,它是这样的继承的关系啊,好,这个视频呢,我们给咱们兄弟们就说到这 好,呃,大家好,我是小老师,那么这个视频呢,我们再来给大家去介绍一下关于呢 top 这个 top 啊,它在 嗯 hulk 中啊,呈现出来这个效果,那么在对应的私项目里面它又是呢?呃,如何去进行呢?这个使用的啊,然后这个咱们还是相同玩法,我们直接去把这一个代码呢,去把它给复制到我们现有的这个 hulk 的 这个软件里面来啊,然后这个运行的话,这是没有任何问题的。 然后呢,我们这会就去进行导出呗,我们把它导出成我们对应的那个 c 下面程序啊,直接放这放到咱们这啊,之前导出过啊,他提示我是不是切换,那咱们就切换啊。好,这会咱们就 把导出的这个文件呢给咱们兄弟们去打开啊,其实就是我这个文件啊,我这会儿还是使用 vs 二零二呢,咱们去把它打开,打开的话,这其实就是咱们啊兄弟们可以看到的它的核心代码。其实这儿呢在这个 x 里面嘛,啊,现在的话呢,那么这个代码的话,我们直接去把它给呢复制一下啊,或者呢放到咱们这个, 呃,来,这里有一个绝版啊,然后这是矢图,然后绝版啊,把它给打开 啊,应该在这边啊,这是解法。然后呢咱们放到这个 form 里面的,这里有一个 top 那 些的一个解读啊,放这儿话啊,这会儿的话,咱们直接去把它给它,嗯,扶着过来放咱们这里啊, 啊,这会分数过来以后了,来,兄弟们你们可以看一下啊。呃,我们现在的话呢,嗯,这里来啊,我们这里是不是全部都是使用 h object 来进行声明的,我们可以直接去溜这样一个对象啊,然后呢也可以直接去通过逗号的方式通过它声明,然后是溜这个对象的,基本上这些咱们都是溜出来这个对象啊, 当然其实这个对象的操作的话呢,不仅限于此,我可以给,比如这里面咱们给出这里有啊 h 啊,这个 top 六的,是吧?好了,这边咱们来一个 h v 的 top 七,好吧?比如这个 h v 的 这个 top 七啊, h 有 top 七,然后的话呢,这里面咱们来一个 h 呢 t u p l e 放这啊,然后的话呢,这会呢咱们去啊,可以去来,我在六的时候,其实我们可以直接去给他呢来个值啊,我来个一二三四,行不行?没问题吧?然后呢我这里去啊,来一个啊,我直接去让他等于这个一二三四,这样行不行? 或这里面咱们等于这个这个来个等于八号啊,这边咱们直接搞这样做串,这样是不是也可以的?哎,比如说你看我来一个呢这个 return 的 啊,这样也可以。 然后呢,比如说你看在我们这里去写的时候,我们还可以怎么呢?比如这个咱们叫九啊,这也咱们给出的这一个九啊,我们可以呢给一个数字,这个其实也没问题, 甚至说你看我给一个呢,一二三点四四,这个也没问题,就我给数字给字母圈啊,包括六对象地址都可以。同样的,那么这个咱们六出来以后呢,我们可以通过了这个数组的下标的方式啊,通过这个所有的方式进行访问,修改它的值,没有任何问题。 然后的话呢,这里面咱们也可以去呢,呃,通过的指定的这个啊修,批量修改我们原始的中值,哎,这不也是 ok, 没问题的。然后呢,我们批量给这个 top 数值的赋值啊,去值呢?为零到一百的连续值,这是不也没问题的? 这里面咱们直接去调用这个函数啊,这里它有对应的这个函数 top 呢,这有一个 top 的 这个根 skin 的 这个函数。 然后呢往后呢,这里面还有啊,去指定它的布长值为二的啊,这是免费的。之前这里布长值为一啊,其实这样的函数是同一个, 然后呢咱们两个数字进行合并也没有任何问题。这里面其实我们调用了一个 h d 的 这个,呃,调了这个通过这个 h d 啊,是不是来进行处理呢?我要先创建一个,然后呢咱们指定它呢?呃,这是咱们直接合并,是吧?其实我这个 h d d h 了,这好像并没有去起到什么效,并没有什么作用啊, 然后呢后面的咱们可以去呢指定这是不是缩影去设置值,然后呢这里面咱们去进行的这个值的替换啊,没有问题啊,然后呢这里面咱们指定的话呢,向这里面指定去添加值,这是都没问题的。 好,那么在这里的话,其实啊,呃,我们最重要啊,这里面还有一点,就是我们对于我们创建出来这个靠谱类型的这个变量啊,我们依次往上找 啊,你会发现啊,它是不是继承自一个叫啊,实现自一个 i dispose abber 这样一个接口的? 好,然后除了这个以外啊,我们其实还要去来检查一下啊,在前面我们刚才讲的 h object 啊,我们看这个 image, 它是不是实现自 h object 的 这个接口的, 然后,呃,实现那个继承子 i 扩展的这个内啊,然后再继续往上啊,它找到这里有一个 i 扩展 base 啊,在这儿,然后这里它是不是也是来那个 i disable 地实现那个接口了?好,那么兄弟们啊,在我们啊这个使用的内里面,它只要实现那个 i disable 地这个接口的,那么但务必要记住啊, 要么说我们在使用这个变量的时候呢,我们去通过这个 using 方式啊,通过这个 using 方式咱们把它包裹起来,就是把这个东西呢,我们可以直接去把它放到我们这里面去,它保证只在这个作用域里面有效 这种方式,那么还有一种方式就是什么在我们用完了这个东西以后呢,我们一定要记得最后这里面他一定要对起做个回收啊, daisypos 需要把那个做个回收,因为这种其实表示他是属于资源化的,如果我不去回收的话,他就会一直占据了这个内存空间,这个是对我们这个程序来说是一种他会形成性能的影响。 好吧,这是来啊,我们在前面给咱们兄弟弄了的啊,那么这会儿的话呢,我们提到这个 top 以后呢,其实这个 top 也是同样的啊,它也是实现子了一个接口叫 i dispos 这个接口的啊,所以说我们这个 top, 我 们这个内存啊定义的变量我们全部用完以后呢,我们后面也是需要去给它进行这样一个回收的, 好吧,好,这是来我们所说到的这个 h top 啊,在 cm 里面它的一个呈现 好,呃,大家好,我是瑞祥老师啊,我们这个视频继续来给大家讲解关于的这个 hokken 啊算子在 c r 五中的这个应用啊, 首先呢我们啊要说的常用的算子呢这个应用啊,我们,呃其实呢在前面已经给咱们兄弟们介绍了有关算子以及呢呃算子去, 嗯,处理图像啊等等这些过程。那么今天呢,这里面咱们还是把我们呃之前其实讲过的这个关于的算子在处理图像的这个 blog 的 这个分析流程啊,我们给咱们兄弟俩再来去过一遍啊, 我这里呢其实写好了有相关的各种我们常用的算子啊,这个的话来我们直接去呢把那给扶着过来。然后呢我们去单步执行啊,通过单步执行的方式呢,让咱们兄弟们可以去呢,呃,看到他的这个效果,好吧。呃,这里面咱们看一下啊,这是 tens, 这儿咱们把它给打开一下啊,好,这儿咱们打开以后呢,嗯,那咱们不是这个啊,这会儿的话呢,我们去重新写一个吧,放在咱们这儿 啊,这些的话呢,我前面打开这些的我们都不要了啊,这都搜删掉。然后呢我们重新去打开一个 hack 的 这个软件,然后呢把我们所需要的这个代码呢去给它复制过来啊,放呢放在咱们这儿。 好,然后呢咱们这会儿去把它给扶着过来啊,放咱们这里啊,然后呢这会儿我们也可以去直接保存一下,我们保存哪呢?保存到这个 imagine block 直接放到咱们这里是吧?啊,这会儿的话呢,这个去重新打开啊,在这里啊, 好。然后的话呢在这里其实呢我们是处理一个汽车图像的啊内容啊,首先呢这会咱们直接从这里开始,首先我们就加载了这样一个图像啊,这个算子调呢,是啊,我们读取一个图像的算子啊,这是来我们指定的,这是输入参数,这是我们指定的, 呃,和我当前这个文件所在同一个文件夹里面,咱们加的是这个汽车啊,是这个话。哎,那么这里的话,陈老师呢,如果说我想加载这个粒子七可不可以?当然也可以啊,没问题啊,放咱们这里啊,然后这会的话呢,咱们去执行这个粒子七是不是也可以去加载出来的啊?在这里是不是? 好,那这会的话来我们还是加载这个汽车啊,然后呢咱们去 f 六啊,咱们去加载这个汽车,然后紧接着往后呢,这会咱们第二个,这叫什么?这是我们图像处理中的话,一个非常常见的 一个算子,叫二值化的处理啊,这其实是为了去减少啊,图像中处理的这个对战机造成这个压力啊。那么对于灰度化处理呢,其实他是像把那个三通道图像变成什么,变成了这个单通道的这个图像, 这会就只有黑白灰啊这样的这个颜色的图像。然后紧接着往后呢,这是二指画,二指画呢,其实相当这个图像中的话,他可以去体现出这个图像的这个大概的一个形状,但是这里面他会分为两块区域啊, 然后呢他进一步的去做这个砍断啊,区域的砍断,这会咱们会画成呢,每一个每一块的小块啊,这是来指定区域砍断啊, 紧接着往后,这会咱们就根据区的特征来做区的提取,比如这个其实是我们提取的是什么?这个我们提取的其实是这个车牌的位置啊,这是根据它的面积 area 来进行提取的, 然后紧接着往后呢这个图像,这里其实还有很多的毛刺啊啊,这个不平整,包括还有孔洞啊这些呢,我们可以对起来做一个啊填充啊,把这边那个孔洞去个填充,然后紧接着往后呢后面这个其实去毛刺的啊,这会去了以后呢这里,其实这里啊这个其实去的不是特别的 完整啊,这咱们搞个四环啊,是不是搞个五吧,搞个八啊,这会这个去毛刺才能把它去干净,好吧,然后呢紧接着往后这会呢咱们就可以根据它呢去做那个 啊深沉这个旋转矩形啊,去进行呢,就是根据我们现有的这个 目标图像,然后呢生成我们的矩形,然后呢把这块内容呢咱们可以把它给抠出来,然后紧接着往后呢这款咱们可以去获取他的中心坐标啊,包括呢这里面咱们去呃做这个矩形,做这个放射的变换矩阵, 然后呢根据变换矩阵呢去获取到我们这个图像做旋转啊,然后呢旋转之后呢咱们再去分配这里面数据呢,把这个结果呢是不是这个图像是不可以抠出来的, 那么这些其实用到的啊,这个算子的话呢,其实相对来说都是比较常用的这个相关的算子啊, 那么至于这个算子,其实在前面我们给咱们兄弟们去介绍过啊,专门讲算子这一块,基本上这些算子的都给咱们兄弟们去详细的有专单独介绍,那么这个其实是综合起来的一个应用啊。 好,那么这个的话呢,我们关于这一块呢,我们给大家去来这个案例的去演示一下啊,那么咱们需要关注就是这些算子,我们如何去把它能够呢?写在 ccm 的 蛋白里面,那么在 ccm 的 蛋白里面它又是怎么去呢?呃,这个调用这个算子啊,它具体有哪些渠道啊?那这个我们后面再说 好。呃,大家好,我是肖老师啊,那么在上个视频呢,我们给大家去介绍了关于呢, 呃,这个 hock 的 算子啊,呃,他的一个常用算子的一些介绍啊,我们这里是通过一个案例的方式啊,呃,通过算子去做了一个 blog 分 析,然后呢对于这个图像呢,写了这样的一波的这个处理的这个过程啊, 那么这个其实呢,当前我们这边实现的功能呢?呃,在前面。呃呃,我录制的其实有一个完整的项目中呢,是其实就是把这里面这整个的 block 分 析的那个项目呢,这个 hulk 的 算子执行所做的各种操作呢,匹配 excel 代码呢,其实是这样的一个 桌面程序啊,这个桌面程序呢,我们这里就直接提供给提供给咱们兄弟们啊,这会的话呢,我去把它运行起来,比如说在 hokken 算子中啊,其实我们在前面所说的这个常用算子这个案例啊,我们呈现在 c 项目里面的话呢,我们是通过的这个 桌面程序呢,可以给咱们兄弟把功能给它实现啊,当然这里面的核心代码的实现,其实呢它还是要基于呢我们这个算子来进行转换的啊,待会给他说到这个转换过程啊, 首先来演示一下啊。呃,在好这里面咱们这样啊,我们先去把这个算子来去演示,然后咱们再演示这个啊,前后咱们做一个对比,然后呢去看看这个效果哈。 啊,这里咱们去把我当前这个对的这个算子去把它给打开啊,在这里啊萝卜分析的算子在这呢,就是 啊,就这个哈,就当前这个算子啊,呃,当前这个啊, hokken 的, 呃里面对于一个图像处理的这个全过程啊。 啊?这会咱们去执行啊,这是从我们加载一个彩图,再到这个呃灰度处处理,然后再到二质化处理啊,再做区域的砍断,然后呢做中间这个区域的一个呢?呃处理,然后呢咱们再去做形态学的这个处理啊,做那个去毛刺,去孔洞啊。 呃,然后呢咱们再去呢,呃得到创建这个旋转矩形,然后呢去进行了这个呃中心坐标的一个位置确定,然后呢咱们去求这个角度啊,创建了我们这个放射变换矩阵,然后呢去创建了我们放射变换的一个锁定图像啊,这会的话呢咱们可以把这个图像呢是不是可以获取到的?可以获得这个车牌,是吧? 啊?那么这时呢我们可以的去处理这个全过程啊,呃,这是我们通过这里面常用算子去对一个图像中的这个内容的一个提取啊, 那么这会的话呢对应这一块他在 c 下中呈现的话呢,来我们这里呈现出来效果呢,是目前这个效果,我是通过各个按钮的绑定的去实现单独的这里面每个功能啊。首先我们去加载一个图像 啊,这个图像的话呢,咱们还是去使用 d 盘里面的这一个图像在这里啊,嗯,在这,然后呢这个图像的话就是这个图像啊,就这个咱们直接加载这个汽车,好吧?首先采集图像的话,请着往后咱们去灰度化处理, 这是灰化处理啊,然后呢咱们再去二值化处理啊,二值化处理这里面咱们给个二值化呢,这个咱们要看他给出的值啊,二值化处理的时候,这个咱们其实在处理的时候这里面有零到八十,是吧?好了,咱们这里也给个零到八十啊,最小值是零啊,最大值的其实为八十啊,为八十,好吧?放这啊 啊,然后这会的话这是二十号处理呢啊,然后今天往后呢,这会咱们再对去做一个区域的砍断啊,区域砍断以后,这会咱们再做特征筛选,那么这个特征筛选的时候,这里面咱们筛选给出的值多少?这是根据区域的三十五万到三十六万嘛?啊?那这会咱们也是通过它来进行一个筛选啊,最小值呢是三十五万, 然后这是最小值,最小值这里面咱们是三十五万 啊,然后呢这会的话呢,这会咱们是不是可以把这个内容可以把它抠出来,然后这会的话呢,这是我们进行的什么进行的那个 特征的筛选,然后形态学处理啊,咱们是把处理成去毛刺、填孔洞,然后放射变换,这会咱们可以把这个图像中这个内容呢,是不是可以给它定位出来,然后接着往后咱们这会其实最后呢咱们可以继续目标啊,这目标是不是当前我们这个这个车牌号我们是提取出来的。 好,那么你说现在啊,我们给咱们兄弟们秀的这一个在 ccm 中啊,这个点是 ccm 文档中呈现的这个效果,其实跟我们在 呃这个 hokken 里面啊,我们执行这段 hokken 的 算子去执行的这个动作的,是不是功能是完全一模一样的 啊?这里其实呢,嗯,我们在 ccm 中实现的这一波功能的话呢,其实它就是来源于啊这里面所使用的一些的。 呃,相关的一些调用一些处理的话,其实就是来源于我们这个 hulk 啊,这一堆处理过程呢,呃,然后把划分成每一步啊,然后呢把它给导出成我们对应的那个 c 项目代码,然后放在这里咱们就进行执行的哇, 好了,现在的话呢,咱们就去给咱们兄弟们去导出一下啊,这会呢咱们导出一个工程啊,这里的话我们选择了这里面是 c e n c 加 v b 啊,还有什么啊? c 下铺的啊,当然我们这是匹配 c 下铺的,然后呢我们去做一个导出,导出之后的话呢,这里咱们再放在导出哪呢?导出在我们桌面上啊,这个桌面上已经存在,它会做一个切换 啊,桌面上存在以后呢,这会的话呢,咱们去放手放在咱们这啊,然后呢咱们这会去把它给呢 啊,放在咱们这里啊,放在咱们这啊,然后呢这就是它的中间的这个核心代码的部分啊, action 这里就是它核心代码部分,这其实呢从这里加载一个图像开始啊,这是加载一个汽车图像,然后呢这是二指法处理,然后呢做区域的砍断。 好在这堆图像里面,其实呢我们在处理的过程中话,其实我们可以去把它给它,把这个, 嗯,这样啊,把这这里呢咱们再给它加一个呢,这样啊,咱们在当前这里面咱们再去给它加一个空间吧。 啊,这里面咱们这里再给它加个空间啊,就这个空间的话咱们叫什么?这叫全过程哈,这里面咱们是算子啊,算子这个啊,这是算子导出的这个处理全过程 啊,然后的话呢,这里咱们指定了一个 b t n 啊, b t n o 啊,然后的话这会呢咱们去双击一下啊,呃,当然这个的话呢,其实不应该是这个啊, 啊,这句话呢,咱们去去掉不要。好,然后呢咱们从这个后面咱们再去双击一下啊。好,现在的话这会咱们直接去把这个代码呢给他扶着过来啊,放咱们这,好吧, 好,那么这个过程其实就是呢,我们刚刚啊这里面这个代码,这是我们刚刚通过了。呃, hokken 里面咱们这一堆的算子处理这个图像的所有代码呢,咱们导出 excel 代码。这这啊,咱们这会去呢把断点打起来,然后呢我们去运行一下啊,来,走,你运起来, 然后点击这个算子导出啊,在这里话这是定定了这样一堆变量,然后呢是吧?听着,咱们按 f 十啊,从这开始,是吧?然后在这里的话,你看啊,他这里去做了这堆处理以后呢,从这里这是加载了一个图像吗? 啊?这个图像不论是,你看这,其实这就是我们加的这块这个图像,是因为这个图像他找不到啊,这个其实这里报错了,是因为这个图像他找不到啊,这个其实不怪他啊,因为这个指定这个路径呢,他确实没有这个图像, 那么也就是说在这个里面,其实我们除了加载图像后面那还有什么二质化处理啊,什么这个灰度处理啊,还有像这里通过特征提取 这些,其实你会发现啊,它这里是不是都是直接去调用了来自于 h object 啊?来来自于 h operator 啊,这个 set 的 这个这个类的,而且这里面调的是不是都是它全部的静态函数? 这是不是全部调了它计算函数的这些都是来自哪来自我们这个啊? h operator set 的 这个类的,这个反变异嘛,都在咱们这里是不是, 那么这些的话呢?其实啊,呃,是我们在 c 下铺联合 hulk 进行编程的时候呢,呃,我们匹配的这其实是一种方式,这种方式大家可以理解成这种叫什么叫面向过程式编程,也就是说啊,它这也是直接调用类中的这个函数,然后呢直接去实现就行了, 其实后面的话还会有面向对象的方式啊。呃,除了面向对象的方式,咱们还有一种方式啊,当然我们这里呢会把面向对象的方式也会给咱们兄弟去覆盖到, 那么总之呢,这里面啊,我们想给咱们兄弟们去呃,传啊,这个说到的一个就是呢,我们其实前后啊,就是我们 hock 里面代码和我们 c f 代码这里是有关联的, 只不过我们经常用的啊,呃,咱们是吧最常用的搞法呢,就是直接去把它导出成我们那个 c f 大 码,而这种导出的方式,这种其实是基于什么?这其实是基于呢面向过程的方式呢,去实现了我们这个功能, 好吧,那么在 hock 里面这各种算子其实导出来以后呢,在这里其实对应的其实就是匹配了各种呢这个静态函数,好吧,那么也就是之前这里是调用算子,然后现在的话呢,在 c m 里面才变成了调用函数了,其实就是,这就是什么?这就是呢我们在 c m 中对于我们前面这一个案例的 啊,这个相关功能的一些呢这个实现。好吧,好,这个视频呢,我们就说到这, 好,呃,大家好,我是肖老师,那么咱们这个视频呢,就来给大家去说一说关于呢 hock 联合 seven 编程的其实多种方式啊,在前面呢,我们其实都是基于呢这个呃 h operator set 来进行实现的,这种形式呢,大家可以理解成它是一种呢这个面向过程式编程啊,大家可以理解成呢这是一种呢 啊,这种啊,其实它是一种的这个,呃 pop 啊, pop 啊,要面向过程式过程式的这一个编程,是吧?其实也就是啊,呃,它内部实现的其实都是去调用的,呃,都是去调这个静态函数来进行实现,是吧? 比如说我们前面呢,这里面给咱们兄弟们去演示的啊,这些功能里面的话呢,这些是不是都是全部是基于的这个,呃,调用这个静态函数来进行实现的啊?基本基本上都是啊,都是这里面咱们都是调用的这个静态函数,是吧?都是基于呢,这里面你看 h operator set 来进行实现,是吧?都是基于它来进行实现的,是吧? 好,那么除了这种方式以外的话呢,其实还有一种方式,就是基于什么 o p 面向对象的方式呢来进行实现的是吧?好,那么除了这种方式就是基于什么 o p 面向对象的方式呢来进行实现, 那么这二者的区别的话呢?其实啊就是,呃,一个是调用进来函数,一个是进行对象来进行调用的内对象的这个实例函数,那么在这里话来我们可以直接去打开啊,我们,嗯这个 hok 的 软件,然后呢我们可以查看一下它的帮助文档,这个的话呢,其实,呃,在这里啊,也给咱们兄弟们说一下,其实这里面是很多文档的话,我们都可以从这边去查找一下啊,比如说来我们在经常会用到的一个叫灰度化处理啊,叫 rgb 一,然后呢 two three 啊,我们搜索一下啊啊,比如说这个其实它是一个算子啊,对应的在我们啊给出的那个私下部编程里面的话呢,那么这个其实调用的话,它这里提供的是不是有一个, 是不是有这样一个静态函数的 state 啊?这个 h operator set 的 这个 r g b e two three 啊,这个函数是吧?啊,这个函数这其实是一个静态函数嘛,它这里其实是可以输啊,指定了我们这个输出参数和这个输入参数,然后呢去进行了灰度化的处理, 那么除了这种签名,除了这种方式呢,咱们下面这种就是什么?你看这是指定呢,它是由谁呢?由,哎,我们这个 h e m g 哎,又说具体的这个 e m g 对 象来进行打点进行调用啊,而不是直接去呢,哎,通过我这种就不是静态函数啊,而是我们先创建 h e m g 它的实力,然后呢再去调用它这个绘图画处理啊,然后呢再去实现它的绘图画,好吧? 啊,那么关,这里面是给咱们兄弟举的这个例子啊,当然除了这个呃对应的这个二灰化处理外,还有什么二质化的那些其实他都有这个区分啊。好,那么接下来这会的话呢,咱们就来给咱们说一说啊,关于呢面向过程式编程他的一些实现啊,我们直接给咱们兄弟去上一个案例吧,好不好? 这儿咱们直接去给咱们兄弟们上个案例啊。呃,那这会儿的话来,我们去在我们这个项目里面的话呢,创建一个全新的项目出来,好吧?呃,这个项目的话,来咱们去添加一下。呃,这里还是来一个 windows 窗体啊,然后呢这里面咱们搞一个 how can x, 然后 o o p 啊,放这儿话,然后呢我们这就基于多纳八的啊,当前这一个环境,好吧,好,翻过来以后呢,这会儿的话,来啊,兄弟们,我们再来给呃 设计器发生错误了,下面就这个啊 啊,这样的话,咱们给出的这是 form 一 啊,在这儿话啊,这可能它加载问题啊。首先来我们给这个桌面的话,咱们去给它呢来一个设置一个标题啊,比如这是基于呢,什么基于呢?这个,嗯,拎 a 格兰 hock 联合啊, hock 联合 c 下铺编程,然后呢这是 o p 面向对象啊,或者咱们叫以面向 对象的这个方式来进行实现啊,放到咱们这儿啊,好,然后的话呢,那么对于呢,呃在这个里面来啊,我们首先我们这里面其实实现的话,咱们还是通过一个实战方式来给咱们兄弟群落地啊。 首先呢我们这里需要使用到这个 hokken 的 这个显示,我们这个空间啊,那使用这个空间的话,其实我们是需要给当前这个项目呢,去,咱们可以把它设为启动项,然后呢把这个项目前面我们这几个项目呢,其实引入有这个程序级啊,我们需要把这个程序级呢把它给引入过来啊,放到咱们这是吧?啊?放到咱们这里啊, 好,然后呢这里啊是否空对象?这个咱们直接来一个 dissn 一 本儿话,哎,这里咱们可以把它调整一下啊,好,然后的话呢,这会儿呢我们再来去打开我们这个放密啊,这会儿的话呢,我们就可以去使用它这里面这个工具箱里面这个空间, 这空间的话呢,其实呢,呃,对于前面这两个空间啊, h smart window control 和 h window control 啊,这两个我们都可以用啊,下面这个是用于 wpf 的。 呃,那么在这个里面的话,来,我们直接去给咱们兄弟用一个上面这个话,因为在前面啊,我们基本上主要用的就是下面这个 h window control 啊,那这会的话呢,咱们换一个话,我把这个, 呃空间的话,咱们去换一个啊,我们搞一个新的空间,搞这个话把那个放到这啊,啊,把那个放到咱们这里啊, 好,然后的话呢,那么这会呢,对于我们右边这里的这一部分,咱们去来一个的 group box 啊,这 group box 呢?或者这个咱们 group box 咱们要不要其实无所谓啊,这个咱们不要管,然后这会的话呢,咱们去给他呢,呃,来一波儿的这个 啊,来玩一个处理话,然后呢这里面咱们这个名字的话呢,其实我们最好把它处理一下吧,叫闷,然后呢 phone 啊,也叫闷 phone 啊,就这样话,这名字咱们改的话其实没有任何问题啊,首先这里面咱们去给他来一个 button 公共空间啊,来个 bug 的 话,这个 bug 的 话这边咱们直接去。呃,来个 bug, 然后呢这会咱们去复制几个吧,来四个,好吧。啊?首先这个 bug 的 话,咱们给他来设置一个呢,嗯,这是来我们去加载头像,好吧? 啊?那这是呢,我们去加载我们这个图像的啊,加载图像的话,这边咱们给它取个名字啊,这叫 b t l o e d, 然后编辑啊,然后呢第二个按钮的话呢叫灰度化处理 啊,第二个这个灰度化处理的话呢,这个咱们去先去给它设置一下它的标题, 这是呢叫灰度化,灰度化处理啊,在这儿画,然后这灰度处理呢,这里面咱们给出的这个内幕的话呢,是 买一个 b t n 啊。第三个这里是什么?这里是绘制 r y 啊,这是绘制 r y。 咱们去往后面这吧, 要绘制 r o i。 然后呢这个名字的话咱们来一个 b t n d r r o i。 放咱们这里,然后后面这里咱们来一个,呃,这是咱们去锁定 r o i 图像区域吧, 锁定 r o i 啊,这个图像的区域啊,放咱们这儿啊,好,然后呢咱们这会儿的话给它也来一个,这里也是这个名字吧, 这名字的话咱们叫 b t n 呢锁定区啊,就这个吧。 b t n 啊,咱们这样这边加个 g 啊,写成这样。 呃,那么这会呢来对于左边这个空键的话,我们也去给它设这个名字啊,这里面咱们就 h w m c 啊,写成这样啊,好,现在好呢,咱们这会去对加载图像的哎, 咱们先去给它保存一下啊,关闭所有文档,然后重新打开啊, 编一下, 他说我必须要去起用, 可以生成截屏,然后呢他说我这里呢找不到这个函数啊,这函数是因为我刚刚我们的操作手势有问题啊啊,这会咱们再次去编辑 啊,这儿编辑好呢,咱们这会再次的去把它给打开啊,就是我们这个 inform 就 在这啊啊,这会的话呢,首先我们去加载图像双击一下啊,在这啊啊,这是来我们去加载图像 啊,就咱这里了啊,如果要加载图像的话,这个其实呢对于我们前面来说的话,咱们如果要加载图像的话,咱们是怎么做? 是不是还是去调用的这个 h operator set, 然后呢点一个啊,比如我要去加载一个图像的话呢啊,它应该是读取某一个现有的图像,是吧?这个其实对应的函数的话呢,我们在前面我们是也可以找得到的 啊,在这个里面咱们其实是不是可以找到了?在这啊不是这个啊,这个是下面这个是吧?就是这里面啊,这是我们采集图像,那咱们这个处理的话,咱们这个是不是可以通过?呃哦,这里这个处理,这里我还是浏览一个页面,是吧? 这也是浏览页面啊,其实我们除了这样以外的话呢,还可以去导出一个啊,导出啊, 那么这里的话,其实啊这是啊这这其实是把调用规范处理啊。好了,这里其实跟我们前面是一样的啊,那咱们这个的话其实可以直接去引用一下话,这个咱们可以去引用一下啊,首先这是我们加载图像的啊,这个咱们直接去把它复制过来放在咱们这啊,这个咱们就省事了啊。 然后紧接着往后呢,这会呢咱们在下面这个 o p 的 这里这个位置的话呢,咱们去加载图像这儿咱们换过来,首先呢来一个 d o o 格, 但是这个的话咱们是需要去把它给定义到前面这个变量的啊,就是这句话,哎,就是就是它啊,就是这个啊,然后呢这里还有一个 hwmc 啊,这个是指定的我们这个控件嘛 啊?这个其实就是指定的我们这个控件啊。啊?这是什么意思?这就是来我们指定一个对话框,然后呢我去打开对话框,选择某一个图像,然后呢把它图像展示到我们这个空间里面去,是吧?好,现在的话呢这会呢我们直接把它设为启动项,然后呢我们就直接运行起来,我们试一下啊, 尝试一下啊,首先我这会加载图像,它会弹出这样一个框,然后呢我们去选择一下,呃,比如说呢我们选择地盘下面这里的机器视,呃,视觉 啊,这个图库啊,测试图像话啊,我选择一个离子漆,是吧?啊?在这个里面的话呢,其实你们发现的话呢,这个他是不是可以去?我们是不是可以这样进行拖动的?这里之所以能够拖动啊,是因为我们在使用呢这一个图像的时候呢 啊,这里面啊咱们在使用呢,我们当前的这里的这个图像的时候,其实我们给他设置了一个什么,这叫自动的实现等米效果吗? 是吧?啊?自动去实现那个等比效果啊,那你说这样的话呢,其实在我们这个图形里面的话呢,我们加载图像的时候呢,是吧?你这个图像大小其实他会自动的可以进行这样一个等比,是吧?他不会说只占一边啊,或者这边咱们来一个比较小的这个图像 这块其实你看两边这个宽度其实是没有那么宽的,但是他也可以把全屏粘这里啊,这这里就会空白一部分是不是? 好,那么在这个里面这其实是前面加载图像,这个跟我们前面是差不多的啊,这里面的话呢,你看我那加载图像的时候,这里其实呢我是通过什么通过呢?这里只是把这个图像呢交给我这个控件去展示是不是?这个其实呢没有什么特别的啊,这个没什么特别的啊, 好,那么在这里的话呢,这是如果说啊,我们去使用呢,就是,呃,在这里呢我们去使用呢前面我们用过的这一个控件 啊,我们这里呢去使用呢,如果说我们用的当前这里这个空间啊,这空间是我们这里勾选的这个 h smart 这个空间,那么这样的话其实它是没问题的啊。好,如果说那么这一这里面呢是让咱们把那空间给它换一下呢 啊,如果说这会来兄弟们啊,我们再去把这个空间呢,我来换一下啊,换成什么呢?我去换成呢,呃,这里呢有一个 h window ctrl 啊,这个话我把这个空间呢,咱们还换这个空间啊 啊,这会儿的话,因为我讲到这了以后,我们这里直接把它给呢,也给兄弟们,咱们去演示一下啊。好,这个空间的话,咱们去来个什么呢?比如这个啊,其实我们也给它取一个叫 h w m c 管,咱们也写这样啊,然后这会儿我们直接运行,现在把空间给替换掉了啊 啊,当我们这会儿在运行时候,你看我这会儿在加载图像时,你看这会儿,其实,呃,这会儿我在加载图像的时候,这个它怎么也能够自动识别啊?我们使用了这个空间,目前这里的这个空间的话,其实是哪个空间? 这里这个空间的话它的类型是 h window ctrl 啊,应该是这个啊啊,这会儿我们去把编辑一下吧,整个清理一下,截屏 下面这个项目已除掉啊,暂时不要啊,这个咱们暂时用不上, 然后呢咱们去把这个项目呢去重新编一下。 好,那么也是此时此刻呢,这会我们换了这个控件以后,其实这个函数它是不存在的啊,好,这里给咱们兄弟们来区分一下,其实我就想告诉咱们兄弟这个事, 就是对于呢我们这个显示的空间来说的话呢,我们如果说使用前面这个 h smart 文档 ctrl 的 话,其实它可以我们提供的有一个函数啊,叫什么呢?叫这个空间的函数叫 set to fair image part 啊,这个函数,这个函数它可以让我们这个空间放到这以后呢,我这个随着我可以让这个图像进行了自动的等比缩放, 如果说你这个图像太宽了,那么这里的上下会空白出来,它要把整个图像给我们呈现出来, 而我们此时此刻如果说呢是让咱们去使用呢这个空间啊,下面这个 h 往那 ctrl 这个空间的话,那这里就对不起啊,它其实就不具备这个不具备这个函数的功能。所以说此时此刻呢,兄弟们,我们再次运行的时候啊,你们会发现一件事, 你看啊,我们这会在加载图像的时候呢,我可能加载这个图片,这个图片的话,你看这里其实它没有等比缩放,它只是把我图片中的一部分给我们加载出来,是吧?比如说这里咱们加载这个苹果 啊,这呢咱们再加载这个,这个这个当前这个图片这里其实他并没有等于说他没有去把这个图片进行缩放,因为这个图片太大了,可能这个区域呢他根本展示不了, 所以说面对这种情况的话呢,我们其实是需要怎么去处理一下呢?那咱们怎么处理一下呢?这里呢?来我们给咱们兄弟们去来一个呢, 呃,来一个啊,这个图像处理的一个函数封装。好吧,既然讲到这啊,这会的话,我就来给咱们兄弟们去来一个这里啊,就是来我们去来个注示啊,这是咱们基于呢,呃,基于什么呢?继续当前这一个空间, 这个也就说我们在这个空间里面 h 温度 h 温度 ctrl 啊,基于呢这个 h 温度 ctrl 啊这个空间。呃,然后呢,这个无法 啊,自动拉伸图像啊,自动拉伸的这个展示图像的问题啊,啊,由此呢我们做的这个啊,咱们去封装的这个拉伸图像的函数啊,封装拉伸我们图像的这个 函数,好吧,好了,这会的话这个函数里面咱们去怎么做呢?咱们直接去写一个 private 啊, void 啊, 然后这也咱们第一 mag 啊, mag, 哇,在这儿啊,然后这里面咱们来一个 h mag, 这里面 i m a g e, 然后呢 h window, h window 放这儿话,然后呢咱们这会去回车一下放到咱们这儿来 啊,对于这个函数而言的话呢,这其实呢,我们这里需要有两个参数啊,第一个的指令呢,来我们这里把注视了给咱们兄弟们去描述一下啊,第一个这个其实指的是什么啊?这是用做什么?来这里啊?用做了我们图像的这个,呃,拉伸平铺的方式啊,拉伸平铺的处理 啊,那么第一个函数其实就是我们要处理的这个图像对象, 好,那么第二个参数这个是什么?这是来我们要去呢,呃,要展示的这个控件对象,其实也就是来我们这里指定这个控件是哪?控件其实就是我们这里刚刚给咱们兄弟们去使用的这里这一款 h window ctrl 这个控件就是它。 好完了以后呢,那么这会呢,我们先去呢,呃,进来之后呢,这会咱们要判断一下啊,如果说呢,你这个,呃,这个其实我们一般把它指定为 mag 啊,如果说这个,呃, 如果说我们前面这个展示图像的这个这个对象啊,它它如果为空,如果它等于等于呢?空啊,判断我这个图像是否为空啊?如果我这里为空呢?这个咱们怎么做呢? message box 点呢?秀 啊,来一个啊,比如这里面咱们搞一个未加载图像啊,所以呢咱们无法显示,好吧?呃,然后呢,咱们就直接去 return 啊,这个 return 回去的话 啊,因为我们这里其实是对什么?是对于我们他在让他把这个图像展示到我们空间去了以后呢,然后我们把这个图像呢做等比缩放的这个处理,所以我们首先要保证这个图像的话,他这个空间里面他展示有这个图像,我才去做等比缩放啊,否则的话我是不做的,好吧,这是来我们第一步啊,去处理一下, 好,然后的话呢,紧接往后这会的话呢,咱们就去来获取我们啊,这个,呃传入图像的一个分辨率,好吧? 啊?这一步的话咱们可以获取呢我们传入图像的这个分辨率啊。啊,这里面咱们去可以怎么做呢?啊?这里面咱们去 h image 点一个呢, 那么当然这个获取分数线的话呢,其实我们有多种方式来获取啊,比如说来,我们用我们比较之前一直给咱们兄弟介绍的,咱们这里可以来一个获取我这个图像的一个大小吗?在这里是吧? 然后呢我这里可以去把那个 h o e m g 的 传进去,然后这里它可以有两个呢,呃,参数是吧?啊?就是这里咱们指定的它的宽度啊,以及它的这个高度啊, h e i g h t。 啊,咱们可以通过这种方式来进行获取啊,这是没问题的啊,我们可以获取到它的高度和这个宽度。 好,当然除了这个以外呢,咱们还可以怎么做?哎,这里咱们还可以去呢,来一个 h o 杠 image, 然后底儿呢?直接通过它,它这里也有一个函数叫 get image 的 size, 好 吧,好,那么这个函数其实我们也可以放哪呢?放到咱们这个说明文档里面,咱们去搜索一把,试试看好不好?放这儿啊,咱们搜索一下啊, 这里其实我们一搜索你会明显发现这里其实你看它是不是提供了静态函数,这是我们所说的前面通过 h operator set 来进行处理的这个函数。 好,那下面这个这是什么?这是实例函数吗?这是实例函数。好了,既然如此的话呢,正好呢啊,我们这里其实呢,呃,这两种呢,咱们都给大家去写出来啊,那第二种话,这个咱们其实需要写入的话呢,这里咱们需要来一个 啊 out 的 话,那么在这里我们需要使用的这个,呃,具体宽度、长度这些其实属于的,是吧?数据变量, 而在这个里面啊,数据边上的话的使用话,它是需要使用,是吧?我,我能够实现来一个 float 吗?能搞这个吗?哎,就这里面,你看啊,它是通过这个 h top 啊,这里面咱们去 with 啊,放这,好吧, w i d t h 啊,然后这里咱们再来一个,呃, out 了,然后这里面咱们来一个看一下啊,放这话这样其实也可以得到我们这个结果啊,这也是完全可以得到我们这个结果的,好吧,放咱们这里啊, 好,然后这会儿的话,来啊,我们去获取到这个图像的宽度和这个高度。以后呢,这会儿的话呢,咱们就可以去设置什么呢?设置我们这个窗口的显示部分 啊,那这会儿这个窗口显示部分呢?比如这边咱们就是 hwm c, 然后点一个呢?呃, hulk window, 然后点一个呢? set part 啊啊,这什么意思呢啊?这个函数其实是就是用作设置呢,我们窗口的这个显示部分啊,啊,这会儿的话,咱们给它来第一个参数啊,来,咱们直接去,这,其实它是个数字啊,我们给个负一啊,这道错啊,那这边咱们其实这里要处理的话,其实就是, 呃,都是这种 htop 的 这个项啊,然后的话呢,紧接着往后咱们继续呢来利用一个 htop 啊 啊,放咱们这里,然后呢这会儿的话呢,咱们去把这个 h e i g h t 啊,咱们去整它高度的去减个 e, 然后呢这个 with, 咱们也去减个 e 啊,放这儿吧。 好,那么这会咱们经过了这边处理以后呢,我们再去怎么玩呢?咱们再去显示我们这个图像啊,再去选这个图像啊,让咱们 hwm c 点一个呢? open window, 然后点一个呢 this object, 然后呢把这个图像呢把它给显示过来啊,放这儿,好,这个是来用做我们显示图像的。 好,那么这会儿的话来, ok 啊,兄弟们,那咱们这会儿再写上图像上,这会儿我们就不再是直接调用这个函数了啊,那么下面这个函数呢,这会儿我们需要去把它给调整一下,这会儿呢,咱们把这个给注上,然后呢换成什么呢?换成我们上面这个 this 点儿呢?嗯, 这个函数 dec 面积, 然后呢把这个 h o image 啊,把它传进去,然后呢这里咱们是 z s 点 h w m c 点的 hulk window 啊,把它传进来, ok, 这是没问题的。 好,那么现在的话,来啊,刚刚我们给咱们兄弟们演示,就是我们目前用的这一款这个控件的话呢,它是没有办法去自动缩放我们这个图像的,现在的话呢,这会呢,哎,它是不是可以把这个图像进行一个,这其实是对其做了个拉伸啊? 这是把那个图像其实做了拉伸,这里其实把那个图像是不是相当说他这里这个形状其实是进行,这是形状是变化了的啊,这个这个这个苹果其实他是没有这么长的,是吧?他是个圆的啊,这里是把我们这个图像呢,现在做了一次拉伸。 好,当然在这个里面的话,其实啊我们显示这个效果的话呢,呃,其实我们想告诉咱们兄弟们,其实这里面啊,我们调用函数的时候,我们获取你看对于图像的分辨率, 我们其实都有两种方式啊,我们可以通过这种是面向过程方式直接调用进来函数,也可以直接通过来我们现有这个对象去调用他的什么实力函数,那么实力函数其实就是基于对象来进行调用的啊,那么基于对象来进行调用,这其实就是面向对象的方法。 好,那么这一会的话呢啊,我们加载图像这个的话,基本上给咱们兄弟去完成。好吧,但是我们这里也体现了两种呢实现的风格啊,这是我们在 c 项目联合合并编程的时候呢,他的一个最基本的啊,这个使用方式啊,给咱们兄弟们去演示了。我们如果说啊,对于哪一块有疑惑的,我们可以直接从这里呢去区分一下,看一下这个签名即可。 好,呃,那么这是来我们给咱们兄弟们讲的关于呢?呃,前面这里啊,他的一个去加载图像的这个啊,紧接着往后呢是灰度化的处理。

那我们今天的话来做一个关于微信 master 来做这个测量项目的一个案例啊,那在做这个案例之前呢,我们会使用到这个标定板啊,那大家的话可以选择这种圆形标定板,也可以选择棋盘格的这个标定板啊,那我们来看看具体的一个操作啊,那我这里的话会呃,是使用到了这个工业相机啊,海康的工业相机啊,那我们打开微信 master 通用方案,然后呢,我们拉一个图像源出来啊,拉一个图像源出来,然后呢?由于我这里使用到了相机,是不是我这里就选择使用相机来采集图像啊,然后关联相机,这里我们添加一个设备啊,选择全距相机啊, 然后呢对应的选择上我们的这个相机啊,对应的选择相机,然后出发,在这里我们选择软出发啊,选择软出发,因为我这里没接近出发啊,所以说使用了软出发,选择全景相机啊,我们运行一下看,哎,看到没有?现在图像采集到了,但是它是黑色的,那这个时候怎么办?我们点击这个连续运行啊,然后把它的曝光找到,调一下啊,曝光时间, 哎,这里有曝光时间哎,我们稍微调大一点哎,现在可以了啊, 那这样子的话,我们图像就采集到,当然这个曝光时间你得调小一点,这样这样子是过曝的情况啊,这样子是不太好的啊,我这里的话就无所谓了啊,大家在正正常的这个项目上的话,这个曝光时间不要调这么高, 然后这个图像员拿到了之后呢?拿到了之后呢?哎,我们这个图像你会发现它是一个 rgb 啊,有三通道,它是一张彩色图,所以说这里的话,我们会选用一个输出图像啊,输出图像,然后呢把它输出为摩洛八的一个格式啊, 这样子这张图它就是变成了黑白的图像了,黑白的图像了,那这里的话我们会使用到一个,呃,使用到一个标定板,标定啊,标定板,标定, 在标定这里找到标定板,标定,然后这里的话标定板,标定的话,我们需要把这个标定板给它里面的参数给它存下来,所以说我这里需要去选择一个路径,选择一个路径,比如说我这里起个名字啊,我叫做 test, 哎,路径就设置好了,然后呢我们对应的选择我们的这个,呃,物理尺寸,这个物理尺寸指的是什么?指的是两个 mark 点之间的一个距离啊,距离,那我这里的话,我这个标量版的规格是三点五,规格的是 mark 点, mark 点的大小是三点五毫米,那它两个之间的距离的话是七毫米啊,是七毫米,所以说我这里填七啊,填七。 然后呢这里有一个左手左边,右手左边,这个其实啊不太重要啊,我们做测量的话不太重要啊。然后呢标定版类型选择原标定版啊,点击执行,看到没有,它会以我们的左上角的这个 mark 点作为圆点啊,然后这你们看一下,这个左手跟右手就是这个 y 的 方向不一样而已啊,我们选择左手啊,点击确定,然后我们运行了之后呢,我们看一下我们的这个, 哎,这个这个里面,哎,他没存到啊,没存到,我们看看啊, 标定参数,点击执行, 二零二六零幺零八啊,二零二六零幺零八啊,这里有个生成标定文件啊,没点啊,生成标定文件, 哎,保存成功啊,保存成功啊,那我们来看看啊,这里的话会,哎,你看它生成了一个标定的文件了,那生成这个标定文件了之后,我们这个有用处啊,我们来看看啊,我这里新建一个流程啊,同理的,我们把这个图像圆啊,然后输出图像给它放进来啊,然后这里的话一样的选择相机啊, ctrl 八确定啊,然后全距相机, ok, 输出图像的话,我们选择蒙娜巴黑白的图像,然后我现在假设我要测的是这个,测的是这条边到这条边的一个距离,那在做这个测量的时候呢,我们 你看一下我的这个标定板呢,它是会移动的啊,移动的,那如果说你直接在这个地方使用线测量的话,我标定板一跑了之后,你的这个 roy 还在这个位置的话,那就,哎,你就测不到这条线了。所以说我们会使用一个快速匹配或者是高精度匹配的一个工具啊,我们把快速匹配先停止一下,选择快速匹配, 那快速匹配这里的话,实际上就是我们哈根上面的这个模板匹配啊,我们点击创建,然后呢我们会这个 r o i 来我们看看这个标点板上面,我们找一个特殊的一个特征,我选择这个特征来做我们的这个模板啊,在做模板,然后点击,哎, 点击它确定啊,你看现在轮廓啊,轮廓,你只要发现这个轮廓啊都是比较好的,这个轮廓的话就没问题了啊,然后我们点击确定修改一下这个运行参数啊,那如果说我这个标量版呢,是三百六十度都会旋转的啊,就是他任意随机的放啊,他角度也不固定啊,位置也不固定,那这里的话我们需要把这个角度范围呢更改到负的一百八到一百八啊,一百八。 哎,你看他现在匹配到了,匹配到了,那这个快速匹配之后呢,我们需要有一个位置修正的这么一个工具啊,那这个位置修正呢?他主要的目的就是把我们的这个图像的坐标系呢更改到模板匹配的这个中心点,就是模板匹配到的这个 坐标模板匹配啊,那这个的话不需要去做参数的修改,直接点确定看到没有这个工具执行了之后呢,这个地方会有一个时差,证明他当前的坐标系呢,就是改到这里来了啊,那也就说, 如果说我在这个地方或者一条啊,或者一个 roy, 你 的坐标系是基于这个点,基于模板匹配的这个点他们是一个固定的关系,哎,你下次模板匹配匹配到这边来了,是不是?那么他也是跟这个模板匹配的这个点是一个相对关系,他会对应的跟随过来啊,他是这样子的一个原理啊。 然后呢我们看一看我们这里,哎,我们要测这两个的这条边到这条边的一个距离,我这里啊,我这里的话使用一个线线测量啊,线线测量,那这个线测量的话,我们来看看啊,那这里的话它会有个修正信息啊,那就默认了一个位置修正啊,位置修正。然后呢我们来看看 r o i 的 这个参数啊,我们把它,哎,我要找这条边,这条边, 哎,我们把它更改一下,然后 r o i 的 大小也拖一下,拖一下, 哎,我们是找的这两条边啊,但是这个你画歪一点啊,问题不大啊,问题不大,就这样子啊,就这样子。然后呢这个卡尺啊,他是一共有六个框,看到没有那么六个框的话,他只取了六个点啊,六个点,最终以六个点来做这个直线的礼盒啊,礼盒,那我们这里的话可以把它选多一点啊,选多一点啊, 卡尺数量这里我们填一个,二十个,二十个,三十个啊,都可以啊。然后看一看二卡尺二的,我们同样的把它改成二十,然后点击执行,点击执行他就能够抓住这两条边了。当然这两条边啊, 这里面实际上大家就是尽量的去把这个参数调一下,你比如说看,哎,我的卡尺第一条,哎,第一个卡尺直线一,那么他的这个是有一个箭头的,有一个箭头的,那这里有一个即兴,哎,我们要抓这条边,是不是抓这条边,那么他是 从白到黑,箭头的方向从白到黑啊,我们更改一下,然后边缘的类型,边缘类型是我们箭头方向上面的第一条边,如果说你想要找这条边是怎么办?直线是不是应该是从黑到白了,从黑到白啊,从黑到白,这个大家得注意一下啊,然后直线二,对应的更改一下直线二,我们来看看直线二,直线二的话是是不是, 哎,他的卡尺方向是这样子的,那我们的即兴,哎,是不是这条边的话是黑到白了,黑到白,然后黑到白,黑到白,这也是第一条边的黑到白。 ok, 我 们现在测量到了之后啊,我们找到这条边了之后,点击确定,点击确定, 然后我们点击这个运行啊,我们看看这个绝对距离,它得到的距离是一千四百五十九,那这个呢?它是一个什么像素距离?像素距离,那这个像素距离的话对于我们来说没用啊,那我要的是它的一个实际的一个距离,那这个怎么办?那这个时候呢,我们刚才标定的这个流程,它的作用就来了,哎,我们标定了 他有一个标定文件,那这个时候呢,我们找到我们的这个标定转换啊,哎,在预算这里面啊,我们找到这个标定转换啊,标定转换,那这个标定转换呢?来我们看看,我们把这个现象测量的这个啊,把他这所有的这个找到的这个线段的端点都给它转换成实际的这个,将像素坐标转换到世界坐标里面来啊, 那我们把测量直线一的这个起点转换出来啊。哎,那么这里的话需要加载一下标定文件啊,我们刚刚保存的这个标定放到了这个,哎,这里面我们选择它点击点击执行。哎,你看它会把这个点,哎它找到的这条线的这个点转换成 世界坐标啊,转换到世界坐标转换成了 x 和 y 的 这个坐标啊,点击执行。那这里的话我们复制一下 ctrl c v 啊, 那我们两条线是不是一共是四个端点啊?那我们这里,哎直线移的起点啊,直线移的终点啊,终点,然后这个改成直线二,直线二的起点,这条线改成直线二的 中点,那这样子的话,我们四个点来看,这个点,这个点,这个点,哎,这个点,四个点,我们都把它转换成了这个以毫米为单位的这个坐标系了,然后转换完了之后呢,这几个点我们可以再次使用这个, 呃,在测量这里再次找到我们的这个新鲜测量,哎,新鲜测量,然后呢把这四个点都输入给它,四个点都输入给它, ok, 然后呢我们这个线条测量呢,我们就不需要去绘图它了,我们直接找这四个点,我们点击定域啊,定域啊,然后按点,它的起点呢?是我的这个标定转换一,标定转换二啊,起点终点,起点是标定转换一,标定转换一, 标定转换一的输出点啊,点击执行啊,不用点击执行起点终点看,这是标定转换二啊,标定转换二, 标点转换二的输出点,这是第一条线,第二条线,我们同样的按点,这是标点转换三,输出点,终点,标点转换四,输出点,点击执行。来看一下,现在他输出的这个距离呢,就是五十五啊,这个字体太小了,可能大家看不到啊, 哎,把这个字号稍微改大一点,看到没有?绝对距离是五十五点一九啊,那这样子测出来的话,它就是一个以毫米为单位的了,以毫米为单位的,哎,来我们看一看,我们点击这个连续运行,哎,看到没有?你看这个距离是不是, 那它都是能够测得准的啊?测得准的,那这个它测出来是五十五点六啊,五十五点六,那这里的话我们给大家看一看啊, 我们来看一看啊,我们从三这个位置开始啊,三这个位置开始啊,然后呢?他是八十五点啊,到八三啊,从三这个位置开始啊,到 八十五过一点啊,那证明他测出来的这个值的话是对的啊,测出来的值是对的,如果不对的话,大家可以加对应的这个补偿啊,那这样测量的话就已经可以了,当然这里的话,我是把标点板拿走了啊, 哎,看到没有?然后的话就是针对大家对通讯这一块的话,就是像这个测量,哎,那我怎么把这个测量对接到我的这个生产线上面来,那这里的话,大家可以呃使用这个摩托 boss 啊,使用这个 呃通讯啊,使用通讯啊,比如说你 p r c 是 谁的谁的 p r c, 是 吧?那么可以选择对应的,那这里的话,我以这个呃自由的这个 t c p i p 通讯来给大家演示一遍啊,那这里的话,我呃使用一个呃网口助手啊,网口调试助手,那我 我这这一段呢模拟我们生产线上的 prc, 比如说啊,模拟 prc, 然后呢我的这个端口号是二点五五,二点五五,我把这个服务器打开,然后呢我在这地方呢 通讯管理这里啊,我添加一个通讯啊,添加一个通讯,那这里的话我们使用,你看你,你如果说你产生对应的是这些 prc, 你 是不是可以对应的选的,那我这里的话,刚刚的是服务端,我这里选择 tcp 的 客户端,那么我们更改一下这个 ip 地址, 刚刚是二点五五,是不是?那你是客户端的话,你要匹配这个服务端的这个 ip 地址啊,目标端口是六千啊,六千,然后点击创建,点击创建。那么创建好了之后呢?我们在这个地方啊,在这个地方选择一个大局出发,大局出发,那这个大局出发的话 啊,那这里出发的话,我们使用的是这个,不是事件触发,我们选择自控站出发,我们添加下触发的自控站,哎,比如说我一个,这是自己定的啊,比如说我定一个 start, 哎,他接收到这个 start 之后呢,他就会执行一遍啊,然后呢?匹配模式是需要完全匹配啊,完全匹配。执行流程啊,执行流程啊, 然后呢?你这个 size 呢?是执行流程一还是流程二啊?我这里的话执行流程二啊,执行流程二,然后这样子设置好了之后啊,设置好了之后,我们在这边来测试一下啊,我们发一个 size 给他,发一个 size 给他,哎,你看他发了,发过来了啊发过来了,那这里的话是因为没有找到这条边啊,没找到这条边啊,我们动一下再发送,哎,看一下啊, 是不是现在是可以了啊?现在是可以了啊,那这个时候你看,哎,我虽然能触发它了,但是我比如说我现在我就是需要它,哎,要这个结果,我要这个结果,我要来判断它是到底是哎属于 ok 品还是 n g 品。那,那这个时候的话,我们在这个地方我们再添加一个 数据,发送数据啊,发送数据啊,我们把这个线线测量的结果给它返回去啊,返回去。然后呢?这里的,哎, 输出配置,我们选择我们刚才的这个通讯通信设备啊,然后选择这个 t c p t c p 的 这个客户端啊? t c p 的 客户端要发送谁呢?我要发送这个线线测量二啊,线线测量二,把它的这个线线测量二的这个测量结果啊,测量结果 绝对距离啊,把绝对距离给它发送过去,我们点击确定,然后我们再来看看啊,我们给他发一个,看到没有,他会返收到一个,每发一个 star 给他,他都会 收到一个结果给我啊,那这个结果你就可以作为这个产线的一个对接啊,它是 ok 的 还是 n g 的? 是不是 ok 的 话就通过 n g 的 话,我就把它剔除下来,或者做其他的操作啊?那这就是我们的一个测量的一个项目的一个讲解啊。

hogging 模块是一个支持 hogging 照本的一个选项,它需要安装 hogging 的支持,那么这那么这里有一个下载地址,下载地址,对,先下载安装再用一下,那么这是一个通过 hogging 来来 获取图像拍照的一个是一个翻译,然后我们点击一下运行初始化, 那么右键的话就可以编辑这个画面夹板。那么他在触发过程当中,他首先会 调用打相机,打相机之后呢,然后再出手啊他的脚,然后在打相机中他所涉及到一个好评的教文,就是这样, 然后我们就打打开 home, 那么这段代码就是通过 home 中的,通过 home 中的这一个工具来实现的, 你设置完成之后生成一个代码就可以了,把这个代码在画面中测试 ok 之后复制过去就 ok。 在这里呢我们给他添加了一个输出,也就是相机的距离啊,执行完脚本之后呢,他就会 返回出一个,那么这个脚板就会就会把这个锯片给反过来,然后呢他利用这个相机的 区别不是抓图就可以了,因为方案本身他支持各种各样的相机,就是非常便捷的一种方式,你不需要为每个相机加别的型号来封装驱动,大大减少了一个工作量。然后我们看一下拍照, 然后呢点击拍照,他就有运营量代码,将图片换取出来,他运营完成之后呢获取到一个结果,那这个是可可卖的格式,你可以通过这段语句把它设成为共享英雄来实现多个成语之间的, 就像他这些方法,那么在 hold 中还有大量的历程,你只需要把这个历程在这个 holding 中实现之后将对应的代码复制到 bm 当中或者分模块。嗯,那么这个对象呢?就可以很便捷的方式使用,好吗?

哈喽,大家好。呃,本期可能要水一期视频,有可能。昨天群友给我发了一个截图,我当时非常的惊讶,我们一起来看一下 七 z 居然被这个粉丝找到了一个收费版,我是真的很无语。然后因为是我的粉,所以我就告诉他可以到咱们的群里面来下 我为大家提供的那种包安装包。在我的这个 群文件里面有一个软件工具,我们找到这个解压缩软件,这是当时他问我的时候,我跟他说群里有这个软件,然后我以为这个事就到这里结束了, 接着他给我发了一个我没有想到的问题,就是他直接给这个东西装在了桌面,我也不知道他是怎么装的。 嗯,那我就只能再水洗视频来讲一下这个东西了,毕竟我的教程视频都是以新手为准,可能是我还是低估了什么叫新手 啊,当然他最后是听从我的建议,用这个 iso 卸载了,然后让他正常装。那我们现在来演示一下安装的 整个过程,然后我再讲一下他的基本用法。首先我们还是打开虚拟机,为了证明我这是一个全新的虚拟机,我给大家看一下,我这里面是没有装任何软件的, 就是我最早期的时候做这个虚拟机的镜像的时候 做了一个快照,我直接回到了快照啊,就是刚刚做完系统的样子,还是老样子。从我们的这个群里面下载这个软件,我已经下好了,直接打开 找到这个软件复制,这里面点粘贴,因为这个是 exe 程序,我们直接安装就可以了。 看一下这个东西叫路径,看一下这个东西叫路径。 c 盘 program files 下的 win r r, 如果这个路径的尾巴这个 win r r 这个文件夹不在的时候,它会自动创建的,然后 c 盘 program files 就是 这个路径,你看到没跟这是一样的,然后没有这个 win i r 的 这个文件夹,然后我们继续安装,它一般会自动创建这个文件夹, 点安装,呃,这个 iso 和 j r 可勾可不勾选,它只是可以多识别一个格式而已, 然后我们点确定这就有了对不对?这就是完整的。然后这个东西用法,我顺便还是再讲一下很多人解压不会用的问题啊, 我们找一个小一点的文件进来解压,看一下 复制还是放在桌面。装完解压工具之后,一般的话是压缩包的文件就会变成这种图标,跟这个软件的图标是一样的, 然后我们双这个包,点开这个压缩包之后,我们可以看到这里面有什么东西啊?这里有一个文件夹,里面还有一个压缩包,如果我们在操作的时候, 你点其中的任何一个文件,它解压的时候它就会只解压这一个东西出来,然后再就是你解压的时候看一下这个路径, 路径这个东西有的人能懂,有的人懂不了,但是这个东西我我觉得大家还是有必要了解一下,路径就是你的一个地址,存放东西的一个地址,大家心里要有数,不然每次你装一个程序装到哪里你都不知道在什么地方。 以前我跟他们做清理的时候,就发现很多程序直接都装在了一个,直接装在了个目录下面,没点开啥都有, 你要实在是不确定的时候,这个软件解包他会不会带文件夹,我们其实有的时候就是可以直接你不管他有没有,你都新建一个,点一下新建文件,如果说它里面 没有文件夹,那就刚刚好,如果他有的话,你进去之后你可以把这个 文件夹里面的东西再复制出来,这样的话不会散的到处都是啊,你今天废话有一点多了啊。但是我这个事情我真的是每一次有包的文件我都强调了一下,但是我感觉新手我们要有耐心,还是要多多讲解一下这种问题。 我来看一下,刚写到了 c 盘下面,好像看到没有, 如果我刚才没有去见这一个文件夹,那它解开的应该就直接是这两个文件,在 c 盘的根目录的下面,我会外面套上这一个 cross gate 的 这个文件夹的名称,我们也可以重新再演示一下。解压, 然后因为我们改变了地址,他一开始默认的时候是会有的,但是如果说你改变地址之后他就没有了,你看一下依然是在 c 盘下面,直接点确定看到没有, 他就直接就解压在 c 盘或者其他的文件一样,你解压到 d 盘,他就是比较闪的。这就是路径的作用啊,路径加文件夹起到一个约束的作用, 虽然这个东西很基础,但是我依然在我的群里,还是我跟别人远程修电脑的时候,依然还是有很多人搞不清楚这个东西啊。 我觉得今天应该讲的已经非常详细了,再要是以后遇到解压,不会的呃,粉丝或者朋友就可以直接来看我这个视频了啊。 嗯,那本期的视频就到这里结束了,感谢大家的收看。嗯,如果大家还有类似的问题不懂的,也可以在我的视频下面留言,也可以进我的群,拜拜。

打开安装包,右击以管理员身份运行 next, 然后这里, 这里可以 随意地输入,这里把这个码复制过来, 我们是来这里复制一下,返回上层物,这里在这个文件夹里面有,我们可以复制粘贴到这个位置点下一步点验, 还是等下过来 next 点安装, 这里点确定,确定点是 点下一步, 然后勾选点安装, 这里是安装的一个环境,点完成,这里取消两个勾选点完成,现在就安装好了。安装好之后呢,我们可以把这个放到桌面, 右击打开文件所在位置,把这两个复制粘贴过来, 现在就已经安装好了,可以打开看。
