粉丝1162获赞5129

今天为大家带来二程安装,用的是 arcanstow, 打开浏览器,搜索清华园, 找到 arch linux, 选 iso 版本自选,打开 v e m, 新建虚拟机 挂镜像,用 v f 启动 检查网络连接, 输入 arkansas, 将硬盘改为自动检测, 接入密码后进入桌面。

今天教大家如何让知识自动进入脑子里,首先第不是你真学啊,真以为知识会自己进你脑子吗?好了,我已经赶走那些不是很想学的人了,好,那接下来我们来学习这个 vmware 虚拟机的详细安装教程啊。 首先我们来说一下什么是这个 vmware 虚拟机啊?那么这个 vmware 全称呢?叫做这个 vmware workstation 啊,啊,它是一个功能强大的桌面虚拟机计算软件啊。那有人说李哥,什么叫做 啊桌面虚拟计算软件呢啊,很简单啊啊,就说平时呢,我们有一些需求,比如说你想安装一个 win 十,或者 win 十一,或者凯丽啊,或者乌班图等一些操作系统的时候,你不可能把你的电脑直接换成啊对应的系统啊,比如说你现在电脑是 win 十一 啊,你想用一个 win 七电脑,你不可能把你的电脑直接装成 win 七,或者说你不可能把你的电脑直接装成什么开的呀,无版图啊,那这样的话就没有办法玩游戏,没有办法工作,对不对?那这时候怎么办呢啊?就说我们可以将这些操作系统直接安装在 vmware 这个软件里面, 那么安装在这个软件里面之后呢?哎,你就不需要额外再去啊,把你的电脑变成对应的操作系统了,所以说呢,它就是这个开发测试部署新应用程序的一个最佳方案啊,就是因为它 可以把不同的操作系统装在这个 vmware 中。那么 vmware 经过这么多年的一个发展啊,它是有很多版本的啊,比如说有这个 vmware 十四,十五、十六、十七,对吧?现在还有什么二零二五,二零二六这种版本啊, 那么我们用哪个版本呢啊?我目前啊用的最多的是这个 vm 十七啊,那么这里要给大家说一下啊,就自这个啊,二零应该是在二零二四年十一月之后吧,啊,这个 vm 这个软件呢 啊,就已经免费的公开了啊,就开源了,也就说你以后安装些啊, 以后的版本你是不需要去再去激活的,对吧?那之前的版本,比如说 vm 十六, vm 十四, vm 十五的时候, 它还是需要激活啊,那么你有的人还需要购买,对不对啊?还是需要这种一些正版正规途径的正版的,那么现在自从它开源之后,等于说它已经公开免费了啊,那如果说你在网上看到一些教程啊,还让你去激活的话,那肯定这个东西就比较老了,对吧?我们现在这些版本都是不需要激活, 大家直接双击直接安装,直接下一步就可以直接完成了啊,不需要做额外任何操作啊。好,那么这个 vm 呢,我刚才给大家讲过,对吧?它就类似于一个操作系统的套娃工具,我们可以将啊我们的各种系统直接装在 vm 中,对不对?提高我们的测试能力, 那么下面这张截图呢,就是它装安装好之后的样子啊,到时候呢我们就可以有了这款软件,我们就可以把自己的 kylie win 十 win 十仪等等一些操作系统直接装在这个软件里面去, 就可以正常使用这些操作系统了,对不对啊?好,那么接下来百里老师就带着大家去安装一遍啊,我们这种新版的 vm 啊,看看跟你学的是否一致啊?好,首先呢我们先打开 啊,电脑对吧?啊,我们本次课程呢,用到这个版本是这个 v m 五个十七点六点四二四八三 啊,那么这个版本好,那么这个版本它是一个啊,就是开源的,对吧?啊,你也,你以为它是什么啊?是这个免费版本,对吧?它这也是免费了啊,已经开源了啊,你如果装其他版本啊,那可能啊,就对吧,可能就还需要激活啊。 好,那现在呢,我们去怎么安装呢啊?非常简单,就跟你装啊这个其他软件一样,双击运行就可以了啊,因为他也是中文版啊。好,我们双击微 m 之后呢,他会给我们啊啊,弹个框啊,我们选择这个是就可以了啊, 好,我们稍等待啊选择是啊,选择是之后呢,他会进入到这个安装界面啊,这个时候呢,我们就稍作等待,根据他的这个提示一步一步操作就可以了啊。 啊,那么在课程里面呢,我也写了截图,对吧?啊,因为它里面呢就都是中文对吧?啊,就是我们点击下一步下一步啊,唯一有区别的就是啊,你在安装的时候呢,它这里会有一个安装了路径,对吧, 那么在安装路径的时候呢,安装目录尽量不要有中文啊,你说你给我装在 d 盘下的啊,什么软件对吧? 啊,装一个什么啊中文目录啊,软件这个文件夹里面的 vm 啊,到时候你有中文可能会导致这些问题啊,如果说你想省麻烦就直接安装在 c 盘的默认路径下啊,没有任何关系,对不对啊,好,好,那么这就可以了,对吧,我们点击下一步, 我接受下一步。好,这个路径啊,一定不要有中文好不好啊?好,那么我们这里就选择默认路径 c 盘,下一步好把这个体验计划跟这个产品更新,我们去掉啊,点击下一步,好,点击下一步安装。 哎,那么这个时候呢,它就会自动安装,那么在安装的时候呢,哎,我们就稍作等待就可以了啊,那么在这里呢,有一个小提示啊,要给大家讲,就是很多人可能自己的电脑 之前安装过 vm, 对 吧?你可能不是第一次安装,你之前安装过,安装过之后呢,你可能卸载的时候没有卸载干净,他会导致什么啊?导致你第二次安装的时候,这个网卡驱动安装不成功,导致你会在这个安装界面卡特别久啊,有些人开始卡十分钟二十分钟都安装不好啊,这就是 有问题的啊,那正常情况啊,这安装是非常快的对吧?啊,很多人卡就卡在这一步了啊,就是这个安装 啊,网络虚拟程序啊,你可以看看是不是啊,这是为什么?就是我刚刚讲的对吧,因为他多次安装啊,因为他之前的没有卸载干净导致的这个驱动装不好啊,你看我这里是不是很快这个就过去了啊?啊,马上就完成了, 所以在这我们就稍等一下啊,这个呢,一定要根据自己的情况去判断,如果说你出现这样的情况卡了很久啊,那你需要去啊,把这个 vm 之前的 vm 卸载干净,把注册表清理干净才可以啊,否则这 vm 是 坏的哈,就算你安装好了它也用不了,对不对? 好,那在这里呢,我们就稍作等待,等它安装好之后就可以了啊,我们就耐心的等一下就可以了。 好了,我们可以看到这个应该安装完成了,对吧?好,我们来点击完成。 好,然后双击啊,桌面这个安装的图标啊, vmware station 就 可以了啊,就可以打开这个 vmware 这个软件了。好,那么这个就是安装好之后的样子啊。 好,那么为了让大家进一步的查看自己的 vm 到底是否能使用啊,我们还需要做一些最后一步的排查,就是我刚刚讲的啊,因为很多人这个啊,之前安装过,卸载不干净,导致他的网卡的问题啊,所以说这里呢,我们再去检查一下自己的电脑的这个虚拟网卡有没有装好,因为这个虚拟网卡是决定着 你后面的讯息机里的系统能不能上网的问题啊,如果这个网卡装不好,是没有办法上网的啊。好,我们在 c m d 中输入这个什么啊, ip config, 空格,斜杠杠二,查看是否有 vm。 net 八跟。 net, 一 的网卡如果有就代表是正常的,如果没有,那就是不行啊。好,我们来试一下,查看一下。 好,怎么查看呢?好,在你的搜索栏里面搜索 cmd 啊,叫这个命令提示符,我们打开,打开之后在这里面输入啊, ip config 空格斜杠 a r l, 对 吧?回车, 好,那这里呢,我们能看到这个 vmware。 net 八,对吧,还有这个 vm。 net 一 啊,那这就代表是对的 啊,就没有问题啊,如果说你没有这张一,没有这个八就代表是不行的啊,那不行,那你的虚拟机就上不了网,因为这个 vmware 一 跟 vmware 八,它这个虚拟网卡是用你的虚拟机啊,里面的虚拟机上网用的啊,如果没有这两张网卡,它是没有办法上网的,所以说 安装 vmware 之后一定要去检查自己的电脑的网卡是否啊装好了,装好了才可以用啊。那么这个时候呢,我们可以装好了啊,那么你这个虚拟软件是可以正常用的,我们到时候就可以把自己的 kylie, 把自己的 win 十,把自己想要的操作系统导入到这个 vmware 中,就可以正常使用该操作系 统了。好,那么这个呢,就是这个 vmware 的 完整的安装教程,是非常简单的啊,好。

微信 master 零基础到实战前教程,从基础采集到项目实战讲透,零基础的同学千万不能错过。视频耗时一千五百分钟,核心知识点,图像采集配置、图像预处理,几何变换工具特征定位算法形状检测工具,从入门到进阶,解决项目甲壳检测不准难题, 四五六教程原码素材都给大家安排上。大家好,我是 gary, 那 么接下来咱们这一次的这个专题内容呢,准备呢,给大家讲一讲 vm, 其实就是我们的微星 master 啊,这个采集图像的三种方式详细的讲解一下, 第一种呢就是本地图像,第二种呢就是我们的相机,第三种呢就是 sdk 方式。好的,接下来呢,咱们一步一步地来完成整个的这个讲解。 好,那么在在整个的啊,咱们的这一个,呃,学习当中呢,咱们先来讲第一种,首先呢,我们先打开我们对应的这个微信 master 软件, 好,这里呢,咱们选择本机模式。 好,在这个地方的话可以看得到啊,咱们整个的选直接选择啊,咱们对应的通用方案, ok 啊,就可以了。呃,然后呢,我们在这个地方呢,呃,到时候呢,我们会给大家进行对应的一个分享,对吧?录制的啊,对应的这个叫什么?对应的短视频啊,短视频,我们到时候呢会给大家进行对应的分享,所以在这里呢,咱们先来搞起啊,零零, 这个叫做啊零零五,对吧? women 的 这个图像采集方式相近, 好,我们把我们所需要的这个原图给它放进去吧,啊,就是我们对应的图像,那么这里的图像的话可以随便找,是吧?比如说我们就找,呃,找这个里面的图像吧, 这一张,这一张,这一张就搞三张图像, 好,返回去放到这里。好,这其实呢就是我们对应的叫啥素材 放进去,好,然后呢在这里面呢大家可以看一下啊,咱们的 wechatmaster 的 这个视觉工具的话啊,视觉对吧,叫做框架的话,其实用起来还是比较方便的。 哎,咱们这里呢可以看到在这边有很多的菜单,对吧?很多的模块,那么这里呢咱们其实呢采集图像只需要以它对应的这个采集模块下的这个图像源工具就可以了。 好,那么有了这个图像工具呢,我们点开之后呢,你会发现整个的图像源的来源,它有三种方式啊,第一种方式呢就是我们的本地图像,第二种方式呢就是我们的相机,第三种方式呢就是我们对应的 s、 d、 k。 好,那么在整个的这个过程当中呢,咱们是怎么一步一步的来进行对应的处理和实现的呢?先来说本地图像好,当你打开这里的时候呢,首先呢第一个我们的图像源就是本地来,从本地来。第二个呢像素格式这里呢要看你加载出来的这一个 图像啊,它是什么格式,如果是彩色图像,那么就用彩色,对吧?就选 rgb 四就可以了,如果你是我们对应的 啊,你是我们对应的这个叫灰度图的话,就选这个 model 八啊,就可以了,是不是?所以呢,根据你的实际情况去进行对应的选择 好,然后在这里呢可以看到啊,其实呢当我们选择的是这个像素格式,如果是彩色图像,我们这里呢也可以选择啊,输出 model 什么意思呢?就是比如说我们这地方选择进来的这个图像, 对吧?他是什么图?对,他是我们对应的,你看这里就有两种了,一种叫输出图,一种叫我们对应的回读图数据,其实这个地方呢就只有一种。 好,接下来呢我们在这个地方呢啊,点击它之后呢,在我们的右边啊,有这个东西,看到没有?这里呢,其实呢我们初学的话,只需要掌握的是哎这个添加图像,然后呢添加文件夹,然后删除我们对应的图像就可以了, 是吧?所以呢你可以看到在我们的这个地方呢,咱们找到我们录制的这个短视频,对吧?下面的素材啊,这个地方把这个文件选中,你看他就过来了,然后呢我们点击上面的这个执行啊,他就会把我们的图像输出来,显示到我们对应的这个公屏上, 对吧?没有任何啊,没有任何的一个问题,是 ok 的。 好,那么大家可以看到它输出的时候我们对应的灰度图,对吧?你会发现啊,这里呢就会输出我们对应的灰度图像。 注意好,如果在这个地方咱们没有把这个地方齿轮啊,输出的这个 model 八齿轮的话,我们在这个地方选择,我们去执行一下,对吧?去选择它,你会发现它是没有图像的 啊,所以呢,我们要告诉大家啊,本地图像的这个地方的,是吧?输出,你把这个输出单通道啊,就是我们的绘图图像死人,那么这个地方呢,咱们就可以看到他输出的这个图像原一当中的这个绘图图,对吧?可以看到就变成了灰色的,灰色的,如果你要看原图,那就看我们对应的输出原图就可以, 这样的话我们就是彩色图像是不挺简单的好。然后呢在这边呢,咱们比如说有的数据呢,咱们加载进来, 把加载进来啊,加载进来,加载进来以后呢就会发现啊,这个问题呢就可以解决,有的小伙伴说啊,会思考一个问题,对吧?假如说我现在加载的图像,包括我们的彩色图像,又包含我们的这个黑白图像,这种情况下怎么办呢? 这种情况下的话,咱们就选选择它的图像格式为彩色图像就可以了,然后把这个地方输出 model 八十人就可以了,因为这样的话我们就可以啊得到,对吧?不管你是彩色图还是灰度图啊,咱们都可以得到它所对应到的灰度图像, 对不对?因为呢我们在视觉当中处理的时候,其实灰度图像用的是比较多的好,然后再往下看呢,就是我们的自动切换,自动切换是啥意思呢?你可以看到就如果我们关闭了, 我们往前点,他是不会自动切换到下一张的,但是我们把它打开,你看我们往前点,当他到达最后一张的时候,他就会跳到第一张,然后去执行, 对不对?哎,这个地方呢可以看得到,然后呢最后一张停止是啥意思呢?就说当我们运行到最后一张的时候,是吧?哎,就是运行到最后一张的时候,他就停止了,所以这个地方我们的自动切换, 对吧?整个啊,这个自动切换,你看一定要勾上啊,他们俩是联合,主要是联合到一起的,所以呢,我们当我们执行到这个地方的时候, 对吧?比如说执行到这个地方的时候,你看当我们这样单次去执行的时候,他不会停啊,因为他是自动切换的,但是当我们连续啊去执行的时候,你会发现他执行到最后一张就停止了, 假如说我们这个地方没有勾选啊,执行最后一张,最后一张停止,你会发现他会一直,对吧?不停的啊,执行到最后面再往前执行,再往再从第一张开始执行, 是这个意思。好,这里呢有对应的制服,对吧?过滤啊,这个东西呢,我们后面涉及到触发器的时候再给大家去讲。 还有一个就是我们的订阅文件夹啊,这个地方,所以订阅文件夹是啥意思呢?就是啊,不管,对吧?你是从文件夹里面添加图像,还是从这文件夹里面删除图像,他都会啊,触发咱们的这个订阅逻辑, 所以在这个地方呢,你会发现,当我们点了订阅的时候,你看当我们点完了,对吧?这个订阅的时候,订阅文件夹的时候,你会发现这个地方就没有办法正常的去选手动的啊,去选择其他文件夹下的图像, 比如说我们现在呢,去找一下我们对应的这个图像,对吧?找到它啊,你看这样的话我们就订阅完成了啊,订阅完成了,订阅完成之后呢?哎,这个里面没有图像吗? 执行一下 图像文件夹没问题啊,但这个地方我们记得我们是有的,没关系,咱们找到这里来,电脑 按选短视频,这里面素材里面有吧,是吧?素材里面是不是有没问题吧?你看我们这样去执行没有问题。好,接下来呢,我们找到这个文件夹,就找到我们刚刚的这个文件夹,然后我们对这里面呢给他比如说 点一张图像出去放这里来,然后呢我们再执行一下,就会发现啊,这个文件夹下,对吧?就只有,只有什么,对吧?就相当于呢只有两张了,只有两张哎,但是大家可以看到这里还有三张, 哎,这个地方呢,咱们把更新缩写图啊勾上,这样的话,就这样的话可以看到就正常了,对吧?哎,因为这个地方缩写图它还是要变化啊,要更新的,如果不更新的话,咱们这个地方就发生变化了,然后接下来我们再往 往往这边放,放完之后你看我们再去更新,你会发现啊,它会自动的,对吧?去更新这个文件里面的东西 好了,这个拼接死人的话,基本上我们用不上啊,基本上用不上。 然后除此以外的话,这个地方还有个东西叫做什么?叫做方案存图,方案存图,大家可以看到勾选方案保存图像的数据小于两百兆,且少于一千二百张,对吧?否则啊保存路径, 也就是说他会把你的一百二十张图像啊存储到他对应的内存的内存当中,一旦他大于他之后,他就会把我们的这个路径呢,给他什么,给他进行对应的存储起来, 对不对?还有这地方可以看到缓缓存图像啊,缓存图像呢,也就是说当我们在执行的过程当中,对吧?他会把我们的图像呢进行对应的一个缓存,缓存 缓存到啊,我们对应的一个指定的位置上,然后呢我们通过这个指定的位置呢,能找到我缓存的图像,可以追溯啊,咱们处理前后之间的啊,这样一个图像的对比, 这个东西呢,我们到后面呢再带领带领大家啊,一步一步的去查看。其实呢我们真正的这个图像源的话,要用到的基本上就是这些啊,就这些啊,好的,那行,那咱们的这个图像源的内容呢就可以先给大家分享到这里。 大家好,我是 gary 啊,欢迎大家来进行学习啊。 vscoast 这个视觉工具当中的图像采集, 呃的第二种方式就是我们的相机采集,那么相机采集呢,咱们今天讲的内容呢,可能稍稍稍的多一些啊,来,我们首先呢第一个呢我们要用到相机,咱们先把我们的相机上电,然后把光源打开 啊,打开之后呢在这个地方呢我们就还是用这个图像源,但是我们选择的时候呢,可以看到选择的是相机, 一旦选择相机的话啊,你会发现啊,这个地方会关联我们的相机,对吧?我们这地方有没有关联?没有,所以呢在这个地方我们可以点这里相机管理,也可以点这个地方也是相机管理,看你点哪里啊,所以呢我们点这里呢,它就会弹住 相机管理的这个界面,在这个界面里面呢咱们就可以选择添加我们对应的设备列表,这设备列表呢包括我们的全区相机啊,采集卡,对吧?还有一系列的其他的这里呢,咱们点击全区相机, 点击全区相机之后呢,在这个地方可以看到我们有对应的设备控制, i o 控制,光源控制等等, 好在这里呢有我们对应的常用的参数,对吧?常用参数,呃,在这里面呢,其实呢我们要不要选这个相机呢?不用,那我们的选类型 就直接美举就可以了啊,不用 ip, 所以呢我们在这个地方可以看到有没有相机出来,没有,因为我们相机呢还没有上电啊,我们把相机上一下电 好,上电的话这里可能稍稍的要等一会儿。 好,你看这样的话,你看我们就刷出来了啊,注意不要勾这里啊,勾这个地方直接选择我们的海康 c a 零六零啊这款相机,然后图像的缓存数量的话,这里是五十,咱们给它改成 一张。到这里呢就是我们的实时取流,对吧?这个地方呢你就需要 怎么呢?你这地方呢就需要验证一下到底能不能实时的取到我们对应的这个图像数据,可以看到是没有任何问题的,对吧?是可以正常取到的。好了,然后我们关闭一下,然后接下来呢就是断断线重连, 对吧?还有我们对应的相机参数啊,相机参数呢,打开之后会发现啊,咱们采集的时候图像格式采集, 对吧?采取控制就是我们的曝光啊等等。然后我们这个地方呢它的触发模模式呢?是真触发,然后呢它的触发模式还是打开的,我这里呢把它进行关闭一下,就是我们这里呢触发模模式打开,然后触发源呢?选择我们对应的 叫什么?选择我们对应的触发模式打开 好,出发点呢,选择我们的软触翻啊,选择我们的软触翻啊,这个时候呢,我们基本上就选好了,选好以后呢继续往下走, 可以看到这里呢,有触发模式的,对吧?选项设置没问题。好,下面呢就是一些图像的格式参数,帧意,对吧?等等等等, ok, 然后相机的类型低电频有效啊,这个东西呢,涉及到我们的相机呢就已经配置好了, 配置好以后,那么在这里呢,我们就选择我们刚刚配置的这一款相机,全局相机嘛,对不对?好,这个时候呢,哎,你会发现,哎,咱们就选好了,选好了以后,那我们的图像能不能采集到呢?点一下,他会触发一下, 可以看到这个时候的图像呢,他一定啊,是从相机下面采集到的图像,你看这样的话,我们的相机采集的图像源啊,这一部分内容呢,基本上就搞定了, 是不是啊?这就是呢,通过相机的方式呢,去采集我们对应的图像, 哎,所以呢,你会发现,当我们点一下呢,它就相当于触发一次拍照啊,点一下触发一次拍照,对吧?但是很多情况下呢,咱们的这个触发拍照的话,希望这是基于咱们远端,对吧?或者远程端来进行完成。 这种情况下,在我们的这个软件当中怎么去进行对应的实现呢?其实啊,整整个实现的话还是比较简单的,也比较方便的,来看一下怎么做啊?首先呢我们这个地方需要配置一个, 一个叫什么一个服务器啊,这个服务器呢用来接收啊,客户端发过来的指令,然后通过这个指令呢去判断要不要触发咱们的 这个相机拍照。所以呢在这个地方呢,有一个东西叫做通讯管理,在通信管理里面呢,就会有一个东西叫做设备看,没有管设备管理啊,这里呢我们直接添加设备,这里我们添加一个什么呢?添加一个对应的 tcp 的 浮端, 然后这个地方呢,咱们就给它改成二幺啊,然后这里呢改成,改成什么呢?哎,标 不要太高,哎,也不要太低,我们就改成幺二幺零二零八就可以了。好,这里呢咱们就自动重连,你说这个啊,弧端,对吧?断掉之后 啊,咱们这里呢会自动的去进行对应的重新连接好到这里呢,我们这个地方基本上就配置完成了,配置完成了以后呢,那我们还需要借助于 我们对应的一个客户端工具看一下,就这个工具,这个呢就是我们用来专门做呃, tcp 的,是吧?就是我们的 tcp 的 啊,这样一个工具。 哦,那我们在这个地方简单配置一下这个工具,其实也蛮简单的啊,选择我们当前 ip 地址,然后这个地方改成我们刚刚的幺零二零八, 对吧?然后进行连接一下,可以看到能成功连接吧。好,连接成功之后呢,我们在这个地方呢给他发一条信息, 发一个什么啊?发一个一啊,或就发一个啊,发一个没问题,你看这里是不是就会收到啊? 对吧?那么我们现在的问题是,哎,客户端啊,发了一个信息过来,服务端接收,接收到了,然后呢我们接收到的这个结果我们要怎么去使用它呢?所以呢在这个地方呢,你会发现啊,有个东西叫接收时间添加一个接收 事件,这里呢咱们处理的方式呢,就是我们的文本,对吧?然后处理的类型呢?是类型是什么?是协议解析吗?不是, 我们是要协议对比,什么意思呢?就是我发过来的这个内容,对吧?和我这边啊认为接收到的这个内容你是否保持一致?如果一致咱们就出发对应的这个事件, 对不对?那么触发这个事件啊,他怎么去做斜对比呢?就是你当前对吧要解析的这个东西和你的 哪一个设备上传过来的数据对比呢?所以呢我们要知道啊,就是从我们的客户端发给服务端,服务端收到的这个数据之后,对吧?做一个对比,然后这里呢需要去解析 啊,这里呢它是一个时钟类型,对吧?然后比较的话,咱们这里呢规则就写成 on 就 可以了, 哎,然后在这个地方呢我们可以验证一下,到底他能不能正常的,是吧?接收到我们的信息啊,并且触发我们对应的啊,这样的一个流程,对不对?哎,所以呢,我们在这个地方可以看得到打开消息, 等于啊,咱们的这个按协议对比啊,协议对比没问题啊,但这个地方的状态是一个没通过的状态。 好,可以看到这个时候是不是就通过了啊?就通过了,也就是说我们整个的这个结果咱们就发过去了, 是吧?并且触发了这个事件了没有?你看触发了整理状态就是 ok, ok 的, 这个状态 我们需要先把这里清空了啊,然后再返,对吧?发送一次啊,重返一次。好,那么这里呢?我们这个地方也就是 说客户端啊,连接到我们的服务端,然后给服务端发送的这样的一个呃,数据,对吧?咱们已经接收到啊,并且我们通过这个接收事件对我们的整个的内容进行了对应的一个对比,并且已经能够成功啊解析到咱们对应的这个数据。 那么接下来我们怎么让我们的这个工具被触发,然后去做拍照呢?在这个地方有一个叫触发配置,触发配置呢,我们就选择事件触发或者字母串出发都可以,对吧?也可以选择我们对应的 i o 出发啊,这里呢,咱们就是啊,刚刚配置的这个 这个事件,也是当这个事件啊触发的时候,咱们呢就要去执行一个命令。什么命令呢?执行模块的动作命令。去执行什么模块呢?呃,执行我们对应的啊,执行模块啊,执行什么模块呢?流程一下的图像原一的,对吧?这个对应的 这个对应的工具就可以了,你看这样的话我们就配置完成了。好,配置完成以后我们把这里关闭一下,然后我们再来看这里呢,我们发送消息,他会不会触发拍照来,我们随便啊放个位置可以看,对吧?当我们这里呢发消息, 你看当我们这里发消息呢,他会触发我们对应的拍照逻辑,是不是说明什么意思?说明咱们的这个客户端啊发送的消息被服务端接收了,并且服务端还去执行了啊,这个相配置的相应的动作, 对不对?好了,这呢就是我们基于图像源,然后通过图像源工具当中的相机,是吧?方式呢?去采集图像,即如何使, 如何实现通过远程的这种连接到我们所配置的这个服务端,然后去触发我们对应的这个,这个叫什么?这个流程当中的这个工具执行并执行相关的拍照动作。好吧,好了,这一部分呢,咱们就先给大家分析到这里, 大家好,我是 gary, 接下来咱们来讲下一个啊,这个图像源当中的叫做相机的 s d k, 是 吧?这个取值的啊,这个内容。 好了,那么 s d k 的 话,其实呢,就是说,哎,我们不能在这个工具上啊,在这个工具上进行操作了,相当于呢,我们就要把这个方案的话给它导出来啊,就是存储起来,然后在我们的程序的编程当中呢,去使用到它。 所以呢,我们在这个地方呢,先把我们的设置了,设置好啊,设置好 sdk 没问题。好,接下来我们在这里呢,给它方案另存为,对吧?给它提存为到这里呢, sdk sdk 去图, 这样的话就 ok 了。好,那么这个地方写完了以后呢,那么接下来在我们的啊,在我们的项目当中,对吧?咱们怎么一步一步去做呢?看这里啊,首先呢我们在这里呢,给它创建一个,呃,文件夹扣的,然后呢在这个下面呢,去创建一个对应的解决方案。 dot let 溜一个 s o n, 然后杠杠 name, 是 吧?然后等于 v m s o n。 好, 这样的话我们就创建了一个解决方案嘛,然后呢我们把这个解决方案给它打开 啊,好,打开之后呢,注意这个地方呢,咱们就需要呃快速地去构建一下咱们的,是吧这样的一个 vm 啊,联合 c 下编程的环境。首先呢,第一步注意它只符合于比如说它的这个,它所提供的联合编程的话,只能使用 download from work, 不 能使用 download call, 有 时候它是不支持 download call 的, 哎,然后呢,这里呢,选择创建应用的时候一定是 download phone work 好, 然后呢,我们在这个地方选择 demo sdk 啊,点击创建 好,这个地方创建完了以后呢啊,先不着急啊,咱们这个地方呢,要把环境构建起来,它其实比我们的微信 pro 啊要简单的多,因为它内部呢,帮我们提供了一个啊基础包和环境的,对吧这样的一个导入的工具。 那么在导入之前呢,我们先来简单的对我们的项目环境呢进行一个配置,所以默认情况下,当你去创建一个 s d k 啊不对,创建一个 delimeter work 程序的时候,它默认呢,这个地方的目标平台是 adcpu, 但是它是会勾选 这个首选三十二位,对吧?这里千万不能勾啊,勾了的话这个地方我们编辑是要报错的,哎,这是我们的第一小步啊,搞定啊,搞定了之后呢,那么第二个步骤咱们就开始呢,把这个路径啊,就它的跟路径呢给它复制一下, 哎,复制一下好,复制完以后呢,咱们就要开始呢,去找我们安装的啊,就是我们安装,对吧这个 vm 的 这个,这个叫什么?这个目录找到它这里呢,可以看到有个对应的 vm, 四点四的啊,然后二点零,在这个下面的话来看啊,在这里面有个叫做什么 development 进来好,进来以后呢,哎,在这里面呢,大家可以看到,哎,它有个对应的叫 common tools, 对 不对?然后在这里呢,哎,有我们对应的一个 tool 啊,叫做 com 啊 com, 对 吧? controls, 在 这里呢有个 tool, 我 们找到这个 tool 工具啊,直接双击打开,打开之后你会发现啊,它其实就是一个 set up 的 程序, 在这里呢你可以看到你到底需要对哪些引用呢?其实我们现在的话,仅对我们的图像源,是吧?进行对应的一个引用是不就可以了?这第一个,第二个呢,还有一个就是我们的基础库,就是说我们只要想做这个连二次开发,那么就要把基础库呢也要给它加入进来。 好,这个地方我们给它导入到哪里呢?肯定是导入我们的项目当中去,是不是?所以呢,我们就要找到我们当前所对应到的这个项目啊,就是我们刚刚创建的这个项目 啊,找到它所对应的这个位子,位子 s、 d、 k 去处扣的,是吧?这就是它的项目的根路径,然后呢我们在这个根路径下呢,找到这个根路径之后,咱们这里呢点击确定 好,这个时候呢,你会发现啊,当这里呢全部啊出现绿色的时候,说明没有任何问题,咱们就可以把这个工具给它关闭了,关完以后你看再回到这个文风界面的时候,它就要求重新加载了,我们重新加载一下, 好,你看这样的话我们就重新加载了一下,你看加载完成以后呢,我们输入 vm 呢,它这个就是当前二次开发,对吧?所提供的这个用户控件全部都在这里了, 我们一般比较常见的用户空间就两种吧,用的比较多,一种就是这个空间 啊,这个叫叫,叫什么? vm procedure, 对 吧? configure, ctrl, 就 它,我们往这里拖,它实际上是一个什么东西呢啊?实际上就是一个流程空间啊,就是一个流程空间。好,你看我们给它拖过来,拖到这里。 好,然后在这里呢,我们再拖出一个 render 空间,这个 render 空间其实就是我们的渲染空间, 专门,对吧?做对应的数据渲染的啊,这样的一个空间,其实说白了啊,就是我们看到的那个窗口的视图空间, 对吧?好,你看我们这里呢,总共就拖了两个空间出来,两个空间出来, ok, 好, 那么下面呢,我们在这个地方想做二次开发的话,那我们怎么做呢?首先呢,第一个啊,你把它拖出来,代表你的环境基本上是 ok 的, 就没什么问题了,不信呢?我们这地方可以对它进行翻译,然后运行一下, ok, 然后呢我们翻译啊,去运行。 好,可以看到这是流程空间吧,没错,对吧?这是我们的那一个矢图空间啊,就是专门用来显示采集的图像或者本地,对吧?图像源啊,所对应的图像的,没有任何问题。 好,那么这里呢,我们说明什么?说明咱们整个的联合编程环境呢,就是 ok 的, 就没有什么毛病。好,接下来呢,咱们在这个地方呢,就开始呢搞两个按钮 button。 好, 这里呢咱们就搞一个叫加载方。 好,这地方呢咱们搞一个叫执行方案。 好,那么接下来呢,我们怎么去加载咱们的这个方案的呢?双击一下,这里呢就是加载方案。 好,在这里面呢,我们是怎么加载方案的呢?其实啊,直接出来开启一下, 稍等写一下啊,这地方呢,咱们最好写的时候呢啊,最好是吧,把它的对应的具体错误信息给它打印出来呗。 嗯,这个叫做加载,呃,加载方案一查,对吧?信息为 x 点 message 就 可以了。好,如果这个地方呢,咱们是加载成功的啊,就没有什么问题,对吧?所以这个地方呢,就是加载方案成功。 好,然后这个地方呢,我们只是写了基本提示,那么要加载的话其实也挺简单的,在这里呢,直接采用这个 weam solution 对应的这个类,在这个类里面呢,有一个方法叫 load 方法,对吧?这个 load 方法呢,就是需要你指定一个加载的路径,所以呢,在这个地方呢,咱们可以通过一个对话框 叫 open file dialog, 对 吧?这样一个对话框对象得到啊,一个对话框得到这个对话框之后呢,哎,咱们就可以简单地设置一下咱们对话框的 类型,是吧?能打开的这个类型啊,方案类型发文件其实就是 s o l, 然后呢,哎,就是我们对应的标题,对吧?然后呢,哎,就是做一个对应的判定啊,是否打开,是不是?如果它打开了啊,这个地方可以看到,如果它没有正确打开,咱们就略退,如果它已经正确打开了,咱们这里呢就可以获取到 获取,是吧?方案文件的路径我们就可以给它拿出来了,看到没就拿出来了。 好,拿出来以后呢,我们就在这个地方把这个代码放进去,把它的这个解决啊,就是我们的方案路径,对吧?传进去就可以了,这个地方其实就是加载 方案,是不是好,大家看到这样的话,我们基本上呢就给它写好了,写好了以后呢,我们来运行看一下, 看一看。好,然后接下来我们点击一下添加流程啊,不是叫加载方案啊,什么添加流程加载方案 e v e 啊,然后呢到我们对应的这个目录下,这个目录下, 对吧?这里面啊找到我们刚刚保存的这个方案,打开可以看到我们的方案是可以正常加载进来的,加载进来以后你会发现它的图像源选择的就是 s、 d、 k, 有 没有问题,对吧?就没有问题了, 所以呢我们整个的方案加载的话就这么简单。好,方案加载完成以后呢,我们要去执行整个的这个方案,那怎么执行呢? 就叫执行试卷发, 其实整体来说啊,应该都差不多,是吧,所以那我们在这个地方 给它稍微的啊复制一下。 好,这里呢我们呃叫执行啊,怎么变成直线了?执行 视觉方案,那么执行视觉方案的话,那这里呢,首先哈,第一个咱们先要来获取,因为我们加载完成以后啊,就可以获取到,呃,叫做什么呢?流程对象 是不是这个流程对象?咱们怎么拿呢?一样的 vm 啊, source 点儿 instance 啊,在这里面,这里呢,咱们根据所对应的流程名称呢,就可以得到这个流程对象了,流程对象的类型呢叫做 vm procedure。 好,然后呢我们来看一下这个名字叫啥?这个名字就叫流程一是吧,所以呢我们就给它搞成流程一好,然后呢这里呢我们就可以得到一个流程对象 for object, 对 吧?然后呢得到这个流程对象有什么用呢?好像没什么太大的用处是不是?所以呢,我们这地方还需要获取啊,获取叫获取需要执行的工具 工具对象,这里呢,我们要需要去执行的 yf 就 只有一个节点,那就是我们的图像采集当中的,是吧?这一种啊,这个节点啊,就是这一个叫什么?这个啊,就是我们所对应到的,哎,这样的一个工具。 ok, 那 我们这里呢就可以这里叫做 source source tool, 它等于什么呢?等于 from, 呃,这个 object。 然后呢,我们在这个地方呢,要注意一下它一样的套路啊,这个地方呢,就是我们对应的,对吧?这个实体下所对应到的什么?看一下啊,所对应到的图像原一 对不对?然后呢把这个呢给它转换成 image source, 看到没有 module tool 就转换成了对应的一个元码啊,就是我们对应的这叫做元模块工具,图像元模块工具。那有了这个工具之后呢?哎,咱们就可以把是吧执行, 呃,执行该工具的结果,对吧?显示到我们的图像空间当中。 好,首先呢这里我们判断一下它是否为空,如果为空就没找到图像源工具,是吧?就 return 了,如果不为空咱们就绑定呗。 所以呢,我们这个地方呢就绑定啊,看到没有图像源啊,空间给他们做一个绑定就可以了。这个绑定 buf 就是 我们的这个叫做。 呃, vm 是 吧?呃, vm, 它有一个东西叫 render 啊, vm render, ctrl 点儿, 哎,不叫 emg 设置啊,叫 module 设置,对吧?就是模块的圆啊,等于什么?等于我们当前的这个工具对象就可以了。好,然后这个地方绑定完了以后啊,最后呢,是肯定是肯定要执行啊,执行什么?哎,执行 整体流程,那么这里呢,我们要执行整体流程的话,直接使用刚刚的这个 flow object 点 wrong 是 不是就可以了?你看整体呢,咱们的这一个执行解决方案的代码呢?基本上写好了,写好了以后呢,我们这个地方呢可以 来简单看一看效果 好。然后呢,我们这地方还是加载它没问题吧?加载进来了啊,加载进来了,加载进来以后呢,我们在这个地方点击一下执行,你会发现啊,这个地方呢,数据是有了,但是没有图像输出,是不是这里的原因是什么?对,我们没有给他任何的图像数据 好,所以呢,我们怎么给它图像数据呢?这个时候呢,看一下,在这里不是可以找到它圆工具吗?在这个圆工具里面我们来设置图像圆,对吧?图像圆就用 source to 点,它里面有个叫做啊图像圆, 它里面呢有个叫 set image pass 了,就它吧, 比如说我们现在要让它显示哪张图像,你就把哪张图像给到它就可以了,比如说我们让它显示这一个啊大红色的玫瑰图像。 好,我们这样的话就把它路径找下来,然后在这个地方, 由于啊路径的这个东西呢,他肯定是最后呢,对吧?会去做对应的转移的,所以呢,我们这个地方直接写就可以了,你看这图像呢,就加载进来了吧,对吧?好,加载进来以后我们再让他来执行整体的效果。 好,然后呢我们来点击一下下载 s t 图,没问题,然后直行,是吧?可以看到绘图出来了,原图是不是也来了? ok, 那 这样的话我们就可以基于 s d k 实现 啊,咱们在前面啊讲解的这个叫什么取图?对,叫做本地文件夹取图,那它有能不能通过相机取图哦?当然可以,那这个内容呢,咱们在下节呢继续给大家做分享。 好的,行,那咱们今天到这里, 大家好,我是 gary 啊,接下来咱们来讲一讲图像处理模块啊,下面的这个二次化工具 图像二次化工具,二次化的主要目的呢,其实非常简单啊,就是把一个图像,是吧,把它啊将原图转换为啊,就是一个包含零到二五五啊和这两个灰度值的图像,就这两个灰度值的图像,也就是说要不是全白啊,要不就是全黑啊,就这个意思 啊,目的呢,很简单啊,就是突出目标的轮廓,然后方便后续的整个的图像处理好。举个例子啊,大家可以看到我们这里呢,哎,先是搞了一个图像圆,是吧,我们先把我们需要的图像呢圆给他加载进来 啊,这里呢我们随便啊找一个图像啊,我们这里呢就找我们经常举例的这个图像啊,方便我们后续的讲解。 可以看到我们这里呢是一个彩色图像,但是呢,我们最终啊,这个地方的像素格式呢,咱们选择的是 r g b r 四,也就说它会输出我们对应的,是吧,这一个叫做什么对应的图像 好,但是这个地方的话,注意我们格式正常情况下应该是 r g b r 四,应该是彩色的输出为,对吧?单通道的图像就可以了,所以呢在这个地方我们去执行一下就会发现啊,它有原图和我们的灰度图,对不对?没有任何问题。 好,我们现在的目的要干嘛呢?我们要把这个车牌啊这块区域呢给他搞出来,那么搞出来之前呢,我们肯定先要简单的做二次化的一个处理,对吧?因为他有黑色,有白色啊,咱们这里呢就尽量的使用二次化的这个处理工具, 把我们的车牌啊相关的这些区域呢,先给他可以做一个简单粗略的啊,这样的一个筛选和处理啊,这时候呢我们要使用到的图像呢,就用他的灰度图像啊,灰度图像 是吧,执行一下可以看到这里呢其实没有太大的一个变化。好,那么接下来呢,我们这个地方呢,就可以在这个地方运行的时候选择硬域域值,对吧?二值化,这里呢它是黑色的啊,所以呢我们这地方把低域值给他调成一个二十 啊,高域值呢给他调成一个一个九十,对吧?我们执行一下看一下这个地方的二值化图像啊,他的一个输出结果。 好,可以看到在这个地方呢,咱们二字画输出的这个结果呢,还是比较明显的,对吧?哎,我们可以调整一下这个数值降为一十啊,可以看到更清晰了,对不对?我们的这个也就说我们现在的整个的这个车牌呢,它包含到了我们对应的哎,这个二字画图像当中, 对不对?然后呢可以看到我们如果用这个二值啊,这个玉值的话,很明显,那这个地方连到了一起,是吧?连到了一起啊,所以呢我们要给他肯定不能连到一起,所以我们要给他调整一个合理的玉值,比如说九十八啊,执行一下还是连到了一起,那这里呢,我们就给他调成一个八十三, 对吧?哎,这个过程呢还是比较 ok 的 好。其实呢可以看到这个呢,就称之为二指画,也就是说他留下的只是我们所需要的那一部分区域,对吧?可以看一下原图啊,执行一下。 呃,可以看到咱们的这个啊,输出图像的这个叫什么?对应的啊,对应的这个结果,输图像和二字画图像可以看到,对吧?这些部分都是被选中的,找回读数据啊,回读图 可以看到,是吧?这些部分啊,白色的部分就是黑色的部分啊,基本上都是被选中的好,那么这个时候呢,其实就是我们的二字画类型呢,是一种硬币值二字画 啊,有的时候呢,我不想,对吧?有的时候呢,我发现啊,我们这地方不想把我们的这部分选中,而想选中没有被选中的这部分,怎么办呢啊?一般正常情况下,咱们就是交换一下 两个域值就可以了,这样的话他就可以实现反选择,可以看到我们刚刚选择的部分,对吧?被干掉了,然后选择到了我们刚刚没有被选择剩下的那一部分数据。 这个地方呢,我们可以硬域值二次化呢,可以通过低域值和高域值的一个交换,实现一个反选择的啊这样的一个功能, 然后再往下呢,我们这地方还是显示为黑色啊,然后这个地方的域值呢?他的类型呢?有硬值法均域值,均域值的话很明显他有一个啊,剥核,是吧?也说他会按照这一个 就类似于像我们对应的,呃,一个叫什么呢?哎,就是我们所对应的一个绿波的效果一样,是吧?去做一个对应的剥核的啊,这样的一个处理,是不是?哎,这个地方呢有点搞的有点大了,搞小一点点 好,可以看到,是吧?大概就这么一个效果好,当我们的这个域值啊滤波变得大一些的情况下了,你会发现啊,是不是他整个的这个背景啊和我们整个的这个原图呢?就变成这个这个造型, 变这个造型了,用等于还好一些,是吧?不等于啊,就这么一个结果吧。所以呢我们这地方有比较类型还有叫高斯二字化。高斯二字化的意思是什么意思呢?就是使用高斯滤波和的方式呢, 对吧?去进行对应的啊,一个叫什么一个对应的处理啊,这个东西呢啊?自行呢,对吧?下去调整,然后再往下呢,就是我们的这种二字画,你可以看到这种二字画的话,就有点类似于像我们提取我们所需要的这样一个轮廓,对不对啊?还有对应的一个矫正系数,我们可以矫正一下, 很明显啊,这个矫正出来的效果不是特别好,是吧?我们发现啊,他给到我们的这个特征还是比较 ok 的, 你看我们用一的话就太过了, 所以呢我们刚刚给到的是一个零点二几,是吧?还比较 ok, 然后呢这里有个动态域值,给的是幺二八,我们给个九十,看一下有什么样的区别吗?你会发现啊? 呃,对吧?被我们干掉的这个地方的这些区域呢,他就逐渐的清晰起来了啊,逐渐的清晰起来,比如说搞个二五五,是吧?是不是这样一个效果? 然后呢这里呢分割的类型呢?有亮于背景和,这就是亮于背景的,那就说分割出来的这个区域呢,是亮于背景的,还有暗于我们的背景颜色的,哎,还有绿薄荷的这个宽度是吧?宽度可以看到哎,如果你的加宽了之后呢,它就是这么一个造型, 是吧?他就会加粗一些,比如说他筛选的东西呢就要多一些,比如说你滤薄盒啊,变得越小啊,他整个的细节是吧?就要多一些,但是你会发现当我们这个滤薄盒给到的是一个不合理的数据的时候呢,他就会出现啊,我们刚看到的这样一个效果, 对吧?就有点类似于像我们提取边缘的啊,这样的一个操作,还有一种叫自动,自动的话点一下会发现 它是这么一个效果,对吧?它这么一个效果啊,然后原图啊显示出来会发现它是怎么样一个效果?是这么一个效果啊?自动的话它默认呢,会去根据我们的实际需求啊,去提取到白色的啊这块区域部分, 对不对?白色的这块区域部分,你看我们用的是自动,如果我们用硬一指二指画的话,你会发现啊,它筛选到的就是我们自己指定的这部分, 所以呢在二字化的这个处理当中,工具当中其实我们常用的呢,基本上还是我们的硬玉子二字化和我们对应的啊,这个自动二字化,对吧?君子二字化这东西呢,其实我们用的都比较少啊,不是特别的多, 看到没有?好到这个地方呢?我们的二字画图像呢?就正常啊,就可以正常的,是吧?看到咱们对应的啊,这个数据了,就没有什么 啊,就没有什么,对吧?就没有什么大的问题了。 ok, 好 的,行,那咱们的这个工具呢,先给大家啊,说到这个地方,哎,说到这个地方,呃。

这一节给大家讲解海康 vm 环境的搭建,搭建这个环境之前首先要安装相机软件,相机软件安装完成之后再安装 vm, vm 要运行的时候需要买一个硬件加密狗。好,现在我们开始安装环境,打开海康相机安装这个软件,开始安装直接默认就可以了。 好,安装完成。接下来我们安装 vm 开发软件,这里有一二三四五,我们只需要暂时只需要安装前面三个就可以了,第一个是它的 vm 软件,第二个是它的 vm 软件里面的例子,编程例子里面有 c 下铺 c 加载的源代码,然后这个的话是一个补丁包,下面是深度学习,我们暂时用不上, 这个是我们做二次开发算子的时候会用的。好,我们现在安装第一个,一次全部安装就可以了,点下一步。 好,安装完成,我们接下来安装第二个私立代码。好,开始安装。好,点击安装完成,接下来我们安装这个补丁包, 点击安装即可。好,安装完成。好,我们要验证一下我们的开发环境是否搭建成功。打开这个 mvs 海康相机采集软件,然后你要看一下你的这个软件里面有没有识别到相机, 你看我这个有个 mv c 零六零,他这一个就识别到相机了,然后双击他打开,如果是你没有的话,你就看你的连线连接是否准确。开始采集,你看这个图像采集出来了,好,停止采集,这个时候关闭相机软件,我们打开 vm 这个开发环境, 随便创建一个通用方案,他这个打开的话是需要一个加密狗的,这个在某宝上几百块钱就可以买到这里能够看到的相机,只是不限制剩余时间永久。然后我们随便拖一个图片进去,然后双击它,点击相机,创建一个全景相机, 选选择我们的这个相机,然后触发设置一定要和我设置一样,否则采集不了图像,然后点击确定,选择全景相机关闭,那这个时候点这个采集,到了这单张采集,这个点连续采集这图片,好,说明我们的开发环境搭建成功。

如何把海康 vm 软件嵌入到我们的上位机?今天使用支持固高雷赛制运动的通用上位机原码来搭建环境,这个就是我们非常熟悉的海康 vr 软件。然后我们这节课教大家怎么把这个 vm 嵌入到这个上位机里面,这是实际效果,现在在采集图像。 好,我们接下来开始讲解,带着大家一步一步完成怎么把这个 vm 嵌入进去,嵌入到这个上位机里面。我们现在开始在工具箱这里出一个 table, 来一个 table 空间, 然后通过拖动的方式改变这个空间的大小,让后面这个 vm 这个流程图可以嵌入进去。好,这个时候完成了,我们删掉这个,点击右键删除,然后可以改下名字,点击属性, 在这里找到 text, 改为流程图,这个名字可以任意取啊,可以改过来了,这时候最关键的步骤来了,点击解决方案,现在我们点击引用, 把海康的 vm 那 个集成控件导入进来,点击引用,点击右键添加引用,点击浏览, 找到 c 盘。我们上一节不是安装了一个 vm 开发环境平台吗?它是我们默认安装在这个文件夹下面的,点双击进去,然后找到 vm master, 四点四双击进去,找到环境,双击进去,找到公共空间, 找到主键,双击进去往下拖,找到这个 vmwinform 这个发布版本,双击, 然后点击确定。这个时候最关键的来了,一定要完成这一步,否则你到时候会出现一些莫名其妙的问题,就说在你这个局的控件上面, v m 有 一个局控件,他到时候是不会显示的,然后我们这里要额外处理一下,点击 右键属性复制到本地,把不要复制到本地,把它改为 force, ok, 好, 这个时候我们在这里输一个 v m, 如果输入 vm 有 如图所示控件,大家可以快进三十秒左右,如果没有,请按视频步骤进行。为什么在这里输入这个 vm 没有还看到控件,这里的话,如果要是没有,我们需要在这里空白处点击一下,点击选择项, 然后他会加载一个工具箱出来,我们往下拉,找到 vm 开头的,你看这里,这个这个 vm 控件,你看是不是和这个是一样的。这里,然后我们把勾选起来,他有的都把勾选起来, 都是这一个海康自定义空间里面的勾选起来。好,我们这个时候点击确定, 这个时候我们在这里搜这个 vm 就 有了,好,到主显示控件。好,我们在这里拖,然后选择全局工具,就这里这个工具如果要是我们选择复制到本地的话,会就会出现,到时候不会显示的,在这上面什么什么都没有, 它是个空的。好,这个时候我们拖动把它布局完成,我们布局完成了,它有时候可能会变为白色,但是它这里其实是有的,它这个应该是一个 winform 的 一个小 bug 吧,它不影响的,这里是有的,然后我们点击运行,看一下效果, 等待打开,这个就表示我们已经创建好了,那这个时候我们要验证一下,是否这一个流程图是否像海康的那个 vm 软件一样是可以使用的呢?好,我们点一个添加流程,点一下这个图像源,我们把相机搞进来,看能不能实时采集数据, 双击选择相机,然后点这个相机管理,选择全局相机, 选择海康。这里大家一定要特别注意,我们这里一定要选择软触发,否则你在软件上点击采集图像,它是没有效果的,然后点确定, 然后再关联相机,选择全景相机,然后点关闭,这时候采集单次执行一下,图像出来了,然后连续采集,你看这数据来了,他一直一直在采集,然后点这个可以放大。 好,那说明我们的环境搭建成功了。想要视频中的原码,并且想和我有更多交流的,可以在吴大佬那里搞个 jamigo。

连海康 vm 都没搞定的视觉定位究竟难在哪里?先看效果,再看原码,这种不同高度的产品怎么进行精准定位?今天用这运动的板卡加这个通用的上一级原码,加海康 vm, 再加 open cv 来给大家看一下这个效果。然后我们现在就打这个,先打这个产品,这个轨迹的话我已经做好了,我们进去看一下, 这里可以在这上面任意引导轨迹的。那我现在还在这里面再画一画,一个有三点元, 把这个中间我们先把它放大,这个海康威猛他是没有的,这个得自己用 okc 来手搓啊,这个三点圆圈,然后你再保存一下点,保存好,我们现在随便摆放一下,然后看一下这个运行效果, 这个放在灯的镜上面可以做到零点一毫秒。那我现在把这三个不同高度的产品放进去随意摆放好,因为这里我已经做了这个产品了。好,我们转换一下这个轨迹,然后我们点运行, 其实这里的话,你直接用海康威猛做这种多平面的不同高度的产品肯定是搞不定的,你这个只有用 o、 b、 c、 d 来辅助做,做多个平面的首眼标定, 你看一下它这个对应的原码,看一下这个测量高度,你看它是在每个平面,它是标定了的,然后它会去获取这个物体, 他这个高度,这高度怎么来一用这个油标嘎尺去量,还有的话你就用这个针头去测一下这个物体的高度,然后他在这里面把对应的手眼矩阵给抓出来, 因为这个手眼矩阵我们在做手眼标定的时候是标定的,每个平面的零点一个毫米标定一次,然后他找到对应的手眼矩阵之后就把它给提取出来。 所以这部分代码是用 open cv 来写的,你如果要是纯粹用海康的话是不行的,你这里要用 open cv 来辅助一下。想要这个通用上位机原码的,可以在吴道老那里搞个加密狗,这个通用的上位机原码,它是支持固高雷赛制运动的。

海康 vm 最大的硬伤就是不同高度产品不能精准定位和轨迹的亚像素引导。海康 vm 是 一款优秀的国产之光软件, 但同时也要客观看待它的短板。那我是如何搞定的?这次来上海带着客户搞军机产品,这个是核心精密部件,需要保密的,然后天天被关小黑屋,一天到晚都见不到太阳。现场需要把海康 sky 机器人与四轴模组结合到一起,通过任意插路指令,让机器人和模组按着指令运行。 这个是通用的上回机原码,大视野全景点胶机定位精度要求在零点一毫米,并且对应压电阀喷胶重量有严格要求,误差在零点零一克。如何解决的?就是我给大家分享的这套通用的上回机原码。首先进行多平面首眼标定,这个直接用海康是搞不定的,必须用 open cv 来辅助。标定完成后,然后 进行亚像素点轨迹引导。大家用我们这套通用的上位机原码,可以弥补海康对于不同高度产品精准定位和轨迹的亚像素引导这个硬伤。这套通用的上位机原码可以用于固高雷赛最运动的运动卡,想要原码的可以在吴大大那里搞个加密狗。

海康 v m 加正运动版卡进行轨迹纠篇,先看效果再看原码,这是海康的 v m, 很多粉丝朋友说,你怎么用一个模板匹配就可以进行轨迹纠篇了?这个我待会和会和大家说一下。来,我们看一下这个里面预存的这个轨迹,双击它进去啊,这里是拍照高度,然后我们进去看一下,然后我们点一下这个 放大的图标,把它放大看一下这个效果,这是我刚刚预存的,然后我们点一下这个效果,待会再讲一下这个原码, 然后我们退出来。好,我现在在上面任意丢丢一下它,然后我们点一下这个轨迹转换,你看它是偏了,偏了之后我们点这个运行看效果, 很准的,真正的机器上它是零点一毫米的精度啊,放在这个位置,然后我们再再进行轨迹转换。好,我们点运行看效果。 好,我们来看一下这个元宝, 嗯,这些元宝我后面都会把它拆成一张一张的章节来讲的,这个元宝太庞大了,你看这就是转换轨迹的函数,我们进去看一下, 转到第一,你看就拿到一个记准点和一个匹配点就可以了。之前的话我也被海康的技术人员带进去了,他说这里面要进行位置修正,其实不需要的,其实就这两个模块就可以了,一个叫图像员拿到数据,然后另一个就是高精度匹配,然后就可以进行 旋转轨迹的偏移,到这里的话你肯定拿到,这个是单独是不够的,我要拿到它的匹配点和旋转 角度,然后用 open cv 来写一些算法才可以的,你直接用它肯定是用不起来的,那我接下来我就要把这整个这运动的这部分和海康微梦的全部拆成一个章节,一个章节成连在贴的形式,成体系的方式把它弄出来。想要视频中的原码,并且想和我有更多交流的,可以在吴大拿那里搞个加密狗。

两百小时精心录制 visitmaster 顺丰条码识别实战二零二六最新版本,一共两百分钟已完结,你将得到从零到一企业即实战落地复原码。楚包已经整理好了, 七百五十八原码教程全部爆走。大家好,我是 gary 啊,咱们今天来给大家讲一个微信 master 的 实战,主要呢去做一个顺丰快递单号的这样的一个识别的项目, 那么整个的识别项目呢,咱们其实根据啊用户所提供的啊这个快递单号,然后逐一的把我们所对应的这个快递单啊对应的这个号码其实给他识别出来就可以了, 对不对?好了啊,咱们这里呢只需要对顺丰的这个快递单呢进行对应的一个识别,哎, 也就说把它放到我们的啊,这个叫什么呢?放到我们对应的去把这个扫描扫描的啊,这个台上面,它会自动的把这个单号扫描出来,然后呢把这个单号统计到我们的程序当中去啊,就这么一个结果, 好,可以看到在这里面的话,其实下面是有数字的,对不对?下面的这个数字呢,其实就是这个条码啊所对应到的啊,这个这个内容好,所以呢我们等会呢要做的事情就是把这个条码当中的,对吧?这个根据条码啊把这个结果识别出来, 识别出来以后,然后呢将这个结果给他进行对应的汇总,然后发送到我们对应的口端, 是吧?去进行对应的这个统计和我们对应的交验就可以了。好了,那么这个过程当中咱们怎么一步一步来实现呢? 首先呢我们来看到整个的项目当中他整个的,对吧?这样的一个需求咱们已经知道了,那么有了这个需求之后呢,咱们怎么来进行对应的分析呢?首先啊,第一个了解需求之后,那我们就要开始去分析整个项目该如何去进行实现呢? 好,那么在这里呢,咱们可以看到他的整个的,对吧?这个快递单啊,整个的看到没有?这个所贴贴的这个条码他不是同一个位置的,也就是说我们需要给他进行先做定位, 定位之后,然后再把我们需要的这部分条码给他,是吧找出来,然后呢再使用我们的条码识别去进行对应的识别,最后再把识别后的结果给到咱们对应的客户端,那客户端的话,那我们就需要去做一个对应的通信 是不是?所以呢可以看到当我们看到这个呃样品的时候,那我们要想到的就是下一步啊,我们如果用微信 master 这个工具啊去进行实现,那我们应该一步一步的该怎么分成几步,对吧?去进行操作。所以总结起来我们刚刚的分析,第一步啊,就是 先去什么呢啊?先去做定位对吧?定位到我们要去识别的这个条码区域 是不是?那么第二步呢,再使用我们的条码工具啊,对这个条码进行对应的识别。第三步呢,再把我们 所对应识别的这个结果转发送给我们对应的客户端啊,就可以了,所以呢只需要这样三步就操作完成了。但这三步,但是这三步说的很简单,但实际上有这么简单, 好,所以呢这里呢咱们就先给大家介绍了业务,然后呢给大家做了一个对应的业务相关的这样的一个分析,接下来呢咱们就即将啊去实现整个项目的全体啊,整体的这样一个功能。 好的,行,那咱们的这个业务和整个的项目的需求,对吧?分析就给大家聊到这里, 大家好,我是 gary, 那 么我们刚刚呢已经完成了,是吧?整个的哎,这个快递单号的啊,这样的一个叫素材的一个介绍,然后呢也找到了咱们整个,对吧要去解决的整个的这样的一个叫什么整个的啊这样的一个思路, 那么接下来我们就基于这个思路呢,一步一步的先去完成它的操作。首先啊咱们要做的第一个事情就是要先去做快递单号的一个定位, 那么定位的话自然我们就会想到肯定要使用什么,对,要使用咱们所对应到的啊处理逻辑,对吧?去一步一步的去进行对应的处理,我先把这个方案保存一下啊, 好,我们在这里呢重新啊新建一个方案,重新开始。呃,首先啊第一步呢,咱们要做的第一件事情肯定是先把我们的图像采集过来, 对吧?然后呢整个的这个图像呢,咱们采集的时候呢啊,我们说了统一的他是什么颜色,我们就给什么颜色就可以了,他是彩色的,那咱们就给他彩色的,然后在我们的这里面把我们所需要用到的这个素材给他加载进去。 好,加载进去之后我们简单的观察一下,看有没有什么问题啊,如果没有问题的情况下,咱们就可以进行下一步的操作,可以看到没什么问题,对吧?既没有缺失啊,又没有显示不全的这类的问题。 好,那么有了这个问题之后呢,那么接下来我们要完成定位,凡事啊,我们只要听到了定位,我们一定会想到的是要去找我们要定位的,对吧?在整个的这个快捷单号识别过程当中需要去定位的, 哎,这样的一个什么?对,这样的一个共同啊,共同的这样的一个特征区,是不是我们可以看到这个顺丰速递啊,属于啊,它算是一个共同的吗?我们来简单的看,观察观察啊,发现,对吧?是的,没问题, 或者是上面的这个 logo, 顺丰是不是也可以,也可以啊?好,所以呢,接下来咱们这个地方,首先啊,第一件事情,咱们先把整个图像做一个转换, 就是把它的颜色啊,请对应的一个转换,因为它是一个什么图像?彩色图像,我们要给它转换成黑白的图像,所以呢,我们选择颜色处理当中的颜色转换工具, 这个颜色转换工具呢,可以根据啊需求把它转换成一个对应的灰度图像,我们点开会发现,是吧,刚刚的这个带什么彩色的图像已经变成了黑白图像。 好,你可以看到这就是我们定位前的第一步操作,为什么呢?因为我们后面的定位的这个工具的话,必须要依赖于我们的黑白的这样的一个图像。好吧,好的啊,咱们定位前的这个图像转换过程就先给大家讲到这里, 大家好,我是 gary, 刚刚呢咱们已经完成了这个图像的通道转换,也说从一个颜色通道啊,就是一个彩色通道转换成了一个单通道的黑白图像,那么整个的这个图像呢,我们看的比较清楚,是吧?大概呢就是这么啊, 看到没有,下面呢看到是彩色的,但是呢在这里呢显示出来的结果就是黑白的,注意啊,这个地方不要一直点到这里,一定要选择当前这个工具下所对应的输出图像数据 啊,才可以看到这个工具,对吧?处理之后的一个效果好,当我们有了这个灰度图之后,那我们就可以开始使用定位这个模块下有一个叫快速匹配的这样的一个工具, 那么这个工具的主要作用是干嘛呢?就是为了,对吧?根据我们所选定的这个特征一步一步的啊去完成,是吧整个图像上的我们所选定的这个特征部分的匹配,所以呢,我们接下来在这个地方就需要 点开咱们的这个工具,在这个工具里面呢,首先要确认一下你输入的元是不是转换后的输出图像, 如果你选择的是它,大家会发现我们一直行看到没有这个地方呢会有一个模块的状态,这个状态说的是图像的格式不正确或者不支持,很明显当我们看到这一个警告的时候,说明我们选择的图像数据有问题, 对吧?如果我们选择的是输出的这个图像,可以看到这个时候他就不会,对吧存在这个问题,他只说了模型数据为空而已这个错误,但是他并没有说我们这个工具是吧的格式,图像的格式有问题。 好了,那么到了这个工具呢,我们就需要点开特征模板,而特征模板呢大家一看就明白,他就是根据我们的特征,是吧?建立一个对应的模板,然后呢对我们的图像上某个对应的特征 和他模板的区域匹配的特征进行对应的一个匹配,所以呢接下来我们就需要呢把这个给他创建起来, 好,我们在这个地方选择以,比如说这个顺风,对吧?两个字母为我们对应的特征区, 嗯,好,来运行一下,会发现啊,这个时候这个地方被包含到特征,所以呢我们需要调整一下啊,调整一下它的域值,看一下把域值调小一点有没有什么效果,这个调个三十, 好,会发现当我们调成三十之后呢,你看啊,整体的是吧?这个,呃,特征呢,基本上就被覆盖到了,好像也没有什么干扰的特征了啊,基本上是全部覆盖了,对吧?那既然是全部覆盖了,咱们就点击确定 好,确定完成以后可以看到这个时候呢,咱们的这个模板主要的特征呢,对吧?这两个字母特征 我们执行一下,哎,会发现它能匹配到,是吧?没有什么问题,那我们这里呢,是不是每一张我们的检测图像它都能匹配到呢?咱们这里呢可以快速的验证一下, ok, 可以 看到没有什么问题,是吧?基本上都能全部匹配到, ok, 好, 到这里呢,其实呢我们已经完成了模板的这个匹配,也就说我们找到了,我们要去进行, 嗯,进行啊,定位的这样的一个相对的位置,对吧?也是说当你这里定位了之后,由于整个的这个图像的整个大小是不发生变化的,所以呢这个位置相对于这个条码的位置,是不是一个相对固定的位置, 对不对?好了,这个时候呢,我们这样有了这个位置之后,我们要做什么?其实我们需要,对吧?去 去找到咱们每一次啊,这个图像,就是说我们这个特征点在变化的时候对应到的那一个,是吧?对应的这个叫什么呢?对应的 p 就是 要去识别的这个区域位置。 好的,咱们的这个定位就是我们的这个叫什么?区域定位当中的第二个小操作就是快速啊,我们匹配的这个工具的使用 啊,及我们整个的特征区域的,是吧?识别啊的这个过程呢,就先给大家分享到这里。大家好,我是 gary 啊,刚刚呢咱们已经完成了 这个快速匹配到了,对吧?我们所创建的特征,每张图像呢都能够成功的匹配到,那么接下来咱们要做的事情就是要 根据咱们匹配的这个位置逐一的去修正啊,咱们所对应到的,对吧?这个图像的角度啊,图像的角度也好啊,图像的对吧?这个方向也好,是一样的, 也就说那你想象一下我们怎么去修正它啊?其实整个的这个修正过程是不是就比较简单,也就是说当我们这个匹配的时候,其实它的这个框是有对应的一个角度的,你可以看到它是有对应的一个 角度的,是不是有对应的一个角度的啊?在这个地方,所以呢一旦啊咱们这个地方发生了变化,比如说我们的这个图像,对吧?它偏移了,那比如说你看我们这地方有偏移,你会发现这个角度呢,就变成了负的, 对不对?好,再往下走,你会发现这个角度呢也是负的,刚是负的二点几,现在是负的五点几, 对吧?所以呢,你看啊,这个效果咱们就可以看到它的角度始终在发生变化的,那么在这个过程当中,它的角度啊是发生变化的, 那么我们说明什么?它的角度变化也就说明咱们整个的,对吧?这个识别区域呢的角度呢,也在发生对应的变化, 那这个时候我们怎么保证我们的这个匹配区域和识别啊?咱们所对应到的这个区域的角度是一致的呢?一般啊,正常情况下,咱们都喜欢用一个工具去修正我们的这样的一个位置, 修正位置呢,就是说不管你怎么去进行匹配,在这个在我们什么,在我们对应的哎,这个图像区域当中,它始终对吧?都相对固定在这个位置上。 好,这个时候呢,大家可能听起来都比较模糊,对不对?概念啊?听不太清楚,没关系,我们在这里呢直接选择一个位置修正工具 好,在位置修正工具里面呢,大家可以看一下。首先我们这个地方,嗯,你看啊,如果我们不去做修正的话,你看我们这个地方整个的这个过程当中,你看这个匹配的时值差始终在这里,对不对 啊?也可以看到我们这里呢,其实有两个点,一个叫积分点,一个叫运动点,我们把积分点看到没有,给它屏蔽掉,只看运动点,你会发现这个运动点, 是吧?正常情况下啊,这个运动点应该和这就是和我们当前的这个匹配到的,嗯,模板中心位置是一致的,就是不管你怎么变啊,他始终都在模板的中心位置,但是这个修正这个精准点是肯定不变的吧, 对不对?如果精准点和我们的运动点是同时动的话,那这个就没有什么精准了,对吧?所以你会发现这个精准点也是在这个位置的。说明什么?当我们看到这个的时候,说明 看这里有个十字叉,对吧?说明什么啊?说明咱们这个地方的这个工具没有使用成功,那么这个工具如何使用呢?分三步啊,第一步,先执行, 第二步,创建击转。创建击转的时候一定要看见啊,它是以什么为击转?你可以看到是以快速匹配的点和角度为击转,创建击转点 好,创建成功之后再执行好。执行完毕以后我们怎么验证它是否成功?你会发现这个,呃,绿色十字叉它会固定在咱们对应的这个图像区域 当中,就是这个位置会不变,但是红色的时差会根据绿色的这个时差来修正他对应的位置,也说让他一直处于啊,不管你图像运行到哪里去啊,他的红色时差始终保持在咱们匹配到的这个模板中心, 你看啊,现在我们执行一下是吧?执行一下,把两个都打开,你会发现这个时候呢?你看绿色的时差,他在我们整个的看到没有?在我们整个的这一个 这个可塑化区当中,你会发现啊,他是不会有任何的变化的,他始终都固定在这个位置上, 看到没有?始终固定在这个位置上,对吧?当我们的这个地方红色十三和绿色十三重叠的时候,说明我们刚刚就是以这个地方作为的记准点进行创建的, 对吧?你看,当我们稍微有一点点小小的呃,这个偏移啊,这个红色的十字叉就会和荔枝绿色的十字叉分开。好,当你看到这个结果之后,说明啥?说明咱们的这个工具应用成功了,也就说我们的位置得到了真正的修正。 好吧,那么有了修正的这个工具的位置触发成功之后,那么后面呢,我们再通过咱们修正的这个位置和我们对应的这个位置进行对应的定位是不就 ok 了?这样的话它就是一种相对定位啊的一个结果。 好,那么咱们的这个位置修正的啊这一部分呢,就先给大家分享到这里。

很多学习过编程开发的小伙伴们会发现,不管你现在做的是家务的编程开发,还是拍森的编程开发,实际上他所有的程序都是基于虚拟机的方式运行的。那么为什么要有虚拟机呢? 实际上,虚拟机是我们现代程序设计的一种新型理念,他最大的特点是防止某一个程序特定的操作系统存绑在一起。 例如在早期的温斗思平台下写的游戏只能够在温斗词下进行,而如果切换到了另一个系统, 将无法执行。但是有了虚拟机之后,所有的程序面向虚拟机开发,而后由虚拟机去适配不同的操作系统。这样程序编写出来更加的容易,同时 更加的方便移植,最重要的是节约了我们开发人员的时间。想了解更多编程知识,请点。