粉丝81获赞434


今天给大家出一个叫人物皮肤的教程,我们以功夫熊猫这个皮肤为例,如果大家觉得有用请关注我,以后还会出更多的教程。先打开我们的 open iv, 然后依次点击这个路径,想看文字教程的可以去百度搜网咖领导者。 定位了这个文件夹以后,我们打开皮肤文件夹,把皮肤文件直接选中,拖到空白的地方直接拖进去。好了,现在我们检查一下这个文件在不在里面,在这里。 好,下一步我们就是让这一个皮肤文件加生效,依次打开这个文件,点编辑, 我们需要加入这一行,没有的话要自己添加,我们再回到 gta 的跟目录,打开这个一定要点右键,以管理员身份运行。 进到这个界面,我们再复制一下皮肤文件加的文件的名字, 用这个名字来添加这个皮肤,选择添加新模型,把名字粘贴进去,这个选个男性,这个选非组合。 好,然后拉到最下面,点我们刚刚添加的模型,再选编辑,男女就选男的,这个男的就选第二个, 人物性格也就选第一个,因为他是男的,女的就选第二个。好,我们点一下重建, 已经保存了,好了,我们再回到根木路,打开 nt 修改记忆的配置文件,我们查找动漫这个关键字,好, 把第一行的命令复制一条,复制一下,然后再粘贴一条新的。前面这个是人物的名字,我们 这个以井地头为例,打个井地头,后面这个呢就是刷出的代码,就是皮肤文件的名字,替换一下,然后点保存好。现在我们进游戏, 打开我们的 nt 修改器,选玩家外观,找到我们的功夫熊猫,选择好这个皮肤有点意思啊, 跑一下,看完了教程请关注我。都是成年人,取关拉黑下,冒了去百度搜网开领导者。

欢迎大家学习有 buff 的 open cv 小白入门速成系列视频教程学习本教程需要拍成三的基本语言基础, 如果没有拍摄语言基础的话,请先看巴夫老师的拍摄零基础入门系列教程,在上手进行 ok cv 练习前,需要先安装配置好开发环境。在本教程中,操作系统使用温时 拍摄版本,选择三点八及以上开发工具使用拍恰姆社区版, oppo c v 使用当前的最新版本四点五点五作为演示环境。接下来教大家如何安装 opin c v。 在拍恰姆底部的选项中点击终端,英文叫太密脑,在光标闪烁处输入 p i p install open cv gun pattern, 按回车就会自动开始安装,有时候会报错就多执行 几遍,如果还是不行就换成国内的原机型安装。安装完成后还是在终端里出入 pip 内斯特安,回车后如果显示了纳木派和 open cv 干 pass 这两个库,就说明安装完成了。恭喜你能够完成了最艰巨的一步,下个视频我们就开始携带吗?

大家不要对我有什么过高期待,昨天发了个视频,发现挺多人想学 opensv 的教程,信号大干了视频也在录了。这个 opensv 系列教程是面向小白的图像处理入门教学,只是教 怎么去掉包不减算法和原理,但是我会尽量说清楚每个方法是干什么的,各个参数是什么意思,什么情况下可以用来做什么,每个知识点多举点例子来加深理解,帮助大家 快速入门,快点上手,用 open cv 做点小东西,仅此而已。

哈喽,小伙伴们,今天给大家演示一个昨天晚上刚做好的一个项目,就是一个奥喷赛 cv 的一个识别,然后下面我们来进行程序看一下。 好,当我的手指合并的时候,你就可以移动这个框,分开就可以拿出来,然后动下一个 这个手指他的识别,但是他只识别到五根手指, 你再来 他这个手指的识别有时候不太准确,换一只手也是可以。 对对对, 来这边 我们可以把它别动, 是不是就很玄幻? 就现在如果把这个紫色的框给他替换成一些 其他的东西,比如说一个呃 兵器什么的,就感觉像是在御剑飞行。 好的,我们的项目今天就演示到这里,然后我们在演示的时候,左下角这个数值就是我们两个手指之间的距离,他是在变的,现在是一百多, 然后我孙子是让他小于六十的时候,当,当我们的两个手指合拢小于六十的时候,他就 特别愉快。 上面的不太好操作,因为他这个摄像头有时候会识别不到, 有没有发现本来五个框,然后变成了四三个框了,就是当两个框合并在一起的时候,他就会呃,两个框重合的时候他就会合并在一起, 有一点那个消消乐的感觉。 好,今天的项目就是演示到这里,再见。

今天和大家分享一下如何用手势控制电脑音量。首先使用 open cv 获取摄像头采集的这个视频流,再通过 ar 模型将画面中五个手指的像素点关键坐标位置获取出来, 那最后根据勾股定理计算出拇指到食指指间的这个像素坐标距离 l, 那再将这个距离映射到电脑的这个音量范围,那输出给电脑即可控制电脑音量。我是 mc, 关注我,一起学烟。

大家好,本视频主要向大家介绍工业相机镜像功能。视频分为功能介绍和实操也是两部分。 首先镜像功能用于将相机图像左右上下堆掉以适应现场环境。应用要求是注意所有相机均支持水平方向镜像,数值方向镜像功能需以实际设备支持情况为准。 下面是实操演示环节。首先停止相机采集, 找到属性术中的 image for math control 节点下的 reverse 功能, 开启水平镜像功能,使能开始采集确认像。 下面我们开启数据方向镜像,关闭水平镜像功能,使能恢复初始状态并停止采集。 开启数值镜像功能,使能确认效果。

关于开运算,我个人的理解是,嗯,他是能够较好的消除按背景中的量元素,而与腐蚀和膨胀相比的话,他的操作不会使操作对象的面积变大。 然后我们这个是关于呃酿预算的一个一个程序, 我们来看一下他处理后的一个原图与效果图的一个对比,这个是原图在这个按背景中有一个 z, 然后这就是一个效果图,经过一次开运算以后的处理以后的效果图可以看见, 在按背景中较小的区域,较为狭窄的一些呃高亮区域 都被啊开运扇进行了一个消除,变成的一个黑色的区域,而那些较大的呃量区域则是没有被改变的, 可以看见,从而通过开运算可以很清楚的主观的感觉到他的一些菱角被磨平了,使整个呃对象都变得比较的平滑。 那么如果我们进行多次的一个运算会有一个什么样的一个效果? 通过货循环 对刚刚的那个原图进行十二次的一个开运扇, 可以发现与刚刚进行一次的那个 那个开运算以后,他是更加的平滑了,但是整体的大小没有太大的一个改变。 而他的这个被开运算以后,他的这个区域主要的就是白高量区域,比较大的区域是没有很大的一个改变的,但是关于这些呃区域,高量区域比较狭窄的都被进行开运算以后被抹除了,是整个 对象看上去比较的平滑,而他的整个一个大小是没有一个变化的,基本上是没有一个变化的。 然后我们来看一下 关于开运算他的一个定义,开运算,他的定义是什么?开运算其实就是一个先进行腐蚀操作,再进行一个膨胀操作的一个过程, 那么开运算有什么作用呢?开运算可以用来消除小物体,在纤细点处分离物体,并且在平滑 脚大的物体的边界的同时,不明显的改变其面积。意思就是说在一个脚暗的背景中,通过开运算可以去抹除一些脚细小的一些高亮区域, 比如说一张照片中有一些白斑点,可以通过这个操作进行一个抹除,同时他能使一些呃比较比较有棱角的一些图片变得比较平滑, 那么这个是他的一个演示的一个程序。 首先是头文件的声明,然后命名空间,然后就是一个组函数,在组函数中首先定义 啊原始图片的变量,目标图片的变量,然后和呃开运算的和的一个变量,然后一个中间,因为要进行多次图片的一个演示效果对比,所以需要定一个中间变量, 然后就对窗口的性子进行一个呃显呃,一个设置是窗口,使图片的显示窗口可以进行一个大小的拉伸,然后这个是读取图片,获取原图片,然后 由于进行开运算,所以需要获取一个核,然后真正的进行开运算,如果只进行一次的话,那么只需要这两个就可以了。 先获取呃和,然后进行一个开运算。和。这个东西是固定的,基本上是不会改变的,而开运算就是这个函数,然后第一个参数是原图,第二个参数是目的图,第三个参数代表着开运算, 然后这个就是填和的这个对应的函数,呃,变量名即可。这个就是关于一个用货循环去进行多次开运算的一个函数, 下面就是一个显示。

使用 opcv 读取图片后,通过 print 打印出来的都是数字组成的数组,这个看起来很不直观, 所以更多的时候是通过 c v 点 a m 秀方法直接显示出图片窗口会根据图像尺寸自动适应打小。在 c v 点 m 秀方法中,第一个参数类型是字母串,指定要在图片窗口中显示的名字,如果传入中文的话,会显示乱码。 第二个参数传入要显示的图片对线,可以根据需要创建任意多个窗口。使用不同的窗口名字可以显示同一张图片,也可以显示不同的图片。 c v 点 v 的 king 是一个键盘板领函数,传入一个整数,表示等待多少毫秒后继续执行后面的代码。 如果在这段时间内提前按下任意键,程序间继续执行。 如果传入参数零,他将无止境的等待你按下一个键。这里要注意的是,按键的时候至少要保持一个窗口是激活状态,不然按键是无效的。 c v 点 destroy or windows 会销毁我们创建的所有窗口。如果要销毁特定的窗口怎么办呢? 这里我们创建两个窗口,显示同一张图片,过一秒钟后先销毁呵的这个标题的图像窗口,再过两秒销毁所有窗口。运行。可以看到, 通过 cv 点 destroy window 方法传递对应的窗口名称作为参数,可以销毁特定的窗口。

使用欧喷 cv 读取一张图片是通过 im 瑞的方法传入图片的地址,返回读取回来的图像数据,读取回来的图片可以直接打印显示, 可以看到打印显示的结果是数字组成的多维数组。上节视频讲过, c v 二里面使用 num pay 存储图像数据,打印出来的其实就是 num pan 的数组,显示在 im 瑞的方法中 第一个位置参数传入的是图片的路径,这里的路径有两种形式,一,先对路径,二、绝对路径。先对路径是根据程序运行的当前工作目录来写,当前的工作目录下有个 res 的文件夹, 瑞士下有个有 buff 老师的头像,所以可以通过相对路径读取回来图片。绝对路径 是图片文件所在的词盘的完整路径。比如可以这样写, 通过传入完整路径,还可以读取非空城目录下的图片文件。这里特别要注意的是, oppo c v 不支持中文路径和中文图片名称的,在一盘下这张有 buff 点 png 虽然存在, 但是读取后打印的结果是,那 还有一点要注意的是,传入一个全英文的图片路径,但这个图片不存在代码不会报错, 只是读取的结果是烂,所以在操作图像前,要记得对图片进行非空判断。

我深度学习的重建跟这个 mvs 有什么区别?深度学习的重建的话,他是输入,输入都是一样的,目标都是一样的,输入是这个,然后他重建,重,你重建出深度图, 然后后面这一部分是没有的深度后面这部分的话还是我们就用深度学习,得到深度之后用传统算法来做的就是后面这一部分, 然后他们的你可以理解为就是算法不一样而已。那我们重米重建的话是通过比如说像传统的,就刚才我说的就我们直接就用他的回读信息去匹配啊,去算他的匹配代驾,然后去 弹牙聚合什么的,找到一个最优的深度尺。那我们这个过程的话,我们其实是用深度学习,深度学习里面的话也是这个过程,只不过他的学习方式的话,他是通过一系列卷积来实现的, 他不是像我们这样,就是比如说算匹配点的时候,直接算一下他两个点的像素的灰度差,不是他是就是输入 rgb 图像,他会通过一些的,就是比如一些 fp 这些特征提取网络,我们会提取一个,呃,就是比如说一百二十八维的这个特征项链, 然后我们去匹配点的时候,我们直接去匹配他的特征项链,你可以就是你那个 shift 脚点的那个描述子,就这种只管人家是学习的方式,所以他那个特征可能会学的更复杂一点, 不是我们简单意义上理解的直接就绘图差什么的,他可能还会介意到一些语音的信息啊什么的, 所以就是说他是匹配是这样子,然后后面的代价的匹配聚合什么的就是用特征匹配吗?然后代价聚合的话也是用一些卷机去做的,然后通过一系列的卷机 我们回归出一张深度图。那我们我们传统算法的话,其实就是简单就是代价匹配,然后我们对他进行一个聚合,所谓的聚合的话就是我们用他领域的代价对我们当前的像素的代价进行一个优化, 然后呃,那个我们会从里面选出一个代价最小的值,对应的深度就作为我们最优解。我们大概是这样,然后深度学习的话,他都是通过一系列卷期啊什么来操作完成的,但是目标都是一样的,就目的和输入输出都是一样的,只不过中间的算法不一样而已。 然后深度学习的话就是他们本来就是每天论文,其实因为我们传统的精度一定其实算是比较高的啊,所以他深度学习他的目标是说要优化一些,刚才我讲那些局限性啊,比如若文理啊,纤细的结构,什么反光这些,他本来是要解决,目标是解决这个。 当然现在发展的最新的结果来看的话,还没有完全解决啊,就解决一部分就是只在解决这个。

大家好,我是卫生曼团队的主讲老师,主讲卫生 master, 今天我们来讲一下 mvs 的安装和使用啊,首先呢我们先打开海康的官网 啊,在他的服务支持里面,然后下载中心软件,然后我们去找到他当前最新版本的一个下载链接啊,最新版本的话可以看到是三点四点一,好,我们点击下载, 然后由于时间的问题呢,我这边就对于安装的话不做太多的介绍,基本上就是下一步,下一步,然后选择一下安装路径就好了啊, 然后安装完成之后呢,我们的桌面上呢会显示这样一个 mvs 的一个图标啊,我们双击把它打开,打开之后呢手, 首先呢我们先看到的是我鼠标左半边的这个部分啊,他是以网口啊, usb 口和 comengnek 啊,主要是以这三项的接口来选择相机啊,选择相机。然后呢 我们可以看到他的上面啊,上面有他的菜单栏啊,文件,试图设置工具啊, 帮助啊,我们因为手上没有相机,我给大家先介绍一个我个人觉得 mvs 里面特别好用的一个工具啊, 啊,叫虚拟相机的工具,虚拟相机的工具,然后呢啊,我先右键把这个删除掉,这边呢选择工业相机,然后这边呢我们选择一个最常用 的型号啊,叫 mc, 呃, ca 零五零啊,杠幺记杠幺零 gc, 等一下啊,我选一下他, 我们选一个彩色相机啊,我们选择一个彩色相机,然后添加到虚拟相机,添加到虚拟相机,然后这边呢你就会看到 你就会有一个虚拟设备啊,你把它打开,然后 mvs 的虚拟相机呢,他只支持网口和优三的接口啊,其他的接口暂时先不支持啊,但是也够用啊,也够用。然后呢,他的虚拟相机呢,也是支持 啊,二次开发的,就是比如说你用 mvssdk, 你也是能调到这个虚拟相机,并打开它对它内部的属性进行操作的。当你手上没有相机, 但是你又需要去写一个呃二次开发的程序,或者是你需要去了解他某一些参数的话,虚拟相机是一个非常好用的东西啊,是一个非常好用的东西。 现在呢,我们就基于这个虚拟相机,然后跟大家讲解一下啊, mvs 对于相机的一些基本操作 啊。首先呢,我们为什么要选一个彩色相机啊?先跟大家讲彩色相机的优点啊,彩色相机的优点就是你有一个彩色相机的时候,他可以把它 转成黑白,就是彩色相机可以当黑白的用,但是黑白不能当彩色用,当你手上有且只有一个相机的时候,你需要面对多种的测试啊,建议大家还是选择一个彩色相机比较稳妥啊。 然后呢,我们可以先采集一下啊,这是一个彩色相机踩到的图啊,然后呢我们把它采集关闭,然后我们在他的采集控制里面啊,去找一下 图像格式啊,不好意思,图像格式里面去找一下他的像素格式,然后彩色的话默认是 gb 八,然后我们要把它选为黑白的话,就是要选到莫诺八,然后点击, 然后再运行啊, ok, 他就变成一个黑白色的,嗯,然后呢,这个是他的格像素格式的转换啊,然后呢 大家会发现我这个是中文的啊,实际上呢就是他 ms 在安装完之后他默认是英文的,但是这边的话会有 一个中英文的切换啊,中英文的切换这边的话还是看中文比较习习惯一点。然后呢我们呃一个一个讲啊,我们经常会用到的一些属性啊,因为大部分啊,大部分他是还是默认的, 这个我们用到的其实是最基础比较少的一部分。好,现在就是在他的设备控制里面,设备控制里面教大家一个很实用的小技巧,很实用的小技巧,他是有一个功能叫做设备上电时间 啊,这个东西设备上电时间就是用于什么时候呢?就是比如说你的相机会不时的掉线,那你又不确定是你软件的问题还是相机的问题,这个时候你就可以再来查看他的相机的上电时间,到底是你软件崩了呢,还是你 相机掉线了,就可以帮助我们去排查一些原因啊?这个上上电设备上电的时间啊,这个我觉得还是蛮好用的。然后再往下图像格式控制啊,图像格式控制我们 基本上会默认啊,除非是说你有啊呜哎的要求啊,你需要某一个限定的区域啊,来做图像处理啊,然后就是像素格式,像素格式 啊,再往下走啊,采集控制,采集控制采集模式啊,连续单针,我们一般的话是默认连续的啊,默认连续的,然后 再往下走,再往下走的话,呃触发器啊,触发模式啊,触发模式, 触发模式。呃,因为这边常用属性的话会有啊,我们这边先不讲哈,我们先讲就是后面常用属性触发,然后高级属性里面没有的一些东西。好吧,我们有时候会用到的啊,我们再看一下 啊,自动争议,自动争议,他们就是海康的相机,这一点是比较好的,就是说他相机的话默认自动争议和自动曝光都是关闭的。其实有一部分品牌的相机的话,他相机出场的时候自动争议和自动曝光其实是打开的,包括他的自动白平衡 啊,把自动白屏啊,彩色相机的话一定要把自动白屏关掉一定要把自动白屏关掉,因为如果你这边拍混料或者是多个物料 需要转换的时候,你的自动大平衡会影响到你的取图效果啊,这个需要注意一下,然后后面基本上就是默认啊,我们也不会去动他。这个时候我们来看一下常用属性,常用属性啊,针对的话就 是什么意思呢?真绿的话呢就是呃,相机采集的频率, 呃,有一个学术名称叫 fps, 经常打游戏的人应该会知道, fps 呢话是他的每秒刷新率啊 啊,就是比如说啊,真真率是二,那他就每秒刷新两张图片,那真率如果是五那就是每秒刷新五张图片,真率越高呢就代表他这个刷新率越高啊, 然后自动曝光,自动曝光的话就是默认是关闭的。嗯啊,可能有的同学对曝光这个词比较陌生啊,不懂他的原理啊,因为这个虚拟相机的话也没办法, 就是在曝光上面改变值去对这个画面有什么改变,这个虚拟相机的话也不支持这么操作啊。所以呢我就大概就是跟同学们讲一下他的 理论好吗?就是理论啊,然后我跟大家先开一个画图文档啊,画图文档啊,曝光呢,其实也是小孔丞相的原理啊,假假设呢,就是说,呃,有一个 黑黢黢的啊,这么一个密闭的,里面是纯黑的啊,一个密闭的房间,然后呢,我们在房间的 一面墙壁上开了一个孔,开了一个孔,然后呢在墙壁的开孔,这个墙壁的对面的墙壁,然后放上一张感光芯片啊,感光芯片 可以是 ccd 的,也可以是 cmos 的。然后呢光线从小孔而入啊,光线从小孔而入,我给大家 画一下啊,光线从小孔而入,然后经过这个孔,然后照射到另外一张一个墙壁的感光芯片上,好产生光化反应,然后从而得到一张照片 啊,然后呢,这个照片产生的过程啊,我们就叫做曝光,想要获得一个正确的曝光呢,就是说你这个 窗户他的近光量的多少?如果说近光量太大啊,那感光芯片上墙壁上就是白花花的一片,晚上也能排成白天。那如果说近光量太小 啊,对面墙壁感光芯片上就是黑乎乎的,白天也能拍成晚上。所以我们想要取得一张高质量的图片曝光,曝光量一定要控制好。 然后呢,因为工业相机上他的光圈和快门跟 曝光他的他的联系很紧密。光圈是什么意思呢?光圈,你可以把它理解为这个窗户,你要把它开多大? 这窗户你要把它开多大?这个窗户开的越大呢你,你的近光量就越大,近光量越大呢,你的画面就会越亮啊,快门呢,你可以把它想象成这个窗户,你要把它开多久啊?你要把它开多久? 你开的越久呢你的速度就会越快啊你的速度就会越快啊,大概就是这么个意思啊大概是这么个意思。 嗯,然后呢给大家讲一下他的争议啊,争议,争议的意思呢就是呃把 感光芯片接收到的呃光线的亮度进行放大啊,有什么好处呢?就是说呃在一些低光线或者低对比度的 情况下啊,适当的增加一些争议可以提高画面的质量啊。争议呢就是说你如果你的争议值越高,那你这个画面的性照点就会更高,那相对的就是说如果你需要高精度的测量的话 是要高精度的,呃测量或者是定位的话啊,建议是把光圈开到最大啊,争议降到最小,这样的话他的新造点会小,你的图像质量是最好的 啊。下面是触发,触发的话呢就是触发模式的开合关啊,一般的话呢如果说你需要 软触发的话,你一定要把触发模式关闭,然后你再去软触发。你像如果我关闭之后啊我这个画面是可以正常在正常显示的,那如果是说我把触发模式打开啊,触发模式打开,然后这个时候我再去, 哎,你就发现这边图像素变成零了,他已经不再继续彩图了,然后触发模式打开的话,他就是在等待一个外出发的信号过来,然后来 接收到这个信号之后再开始取图啊,然后呃触发模式打开之后可以选择他的触发源啊,什么线路零啊?线路二啊?线路一啊,这个是相机上面的 io 节点, io 节点接线,然后后面会跟大家讲啊如何接线,然后接线,然后通过一个高低电瓶,一个电流电压 啊通和断,然后产生的高低电瓶去对相机啊进行一个外部触发啊,然后这边可以选择他的高电瓶,低电瓶啊,上身炎,下身炎啊, 然后啊高级属性的话基本上大部分都用不到,但是会用到的话就是这个啊歪的功能啊,啊歪的功能啊歪是功能是什么意思呢?比如说你这个图片 啊,你这个图片是二四四八乘二零八四的,那我用不到这么大的一张图片,我觉得这有点浪费,我只可能只需要大概这么一个区域 啊,那其他的都是多余的,我要屏蔽掉它。这个时候呢,我们就可以使用我们的 ios 功能去指获取这个区域的图片, 把剩下的区域全部屏蔽掉。啊,是这样子。好,今天的 mvs 基本功能介绍与安装啊,就先讲到这里,感谢大家的观看啊,再见。

好,这节这节课我们主要是讲一下 open cv 的安装,在呃 vc 六点零下的安装,以及在 vs 二零零五下面的安装。那么首先下载 officev 的话,可以到 呃这个网上上面去下载, 可以到这个论坛上面去下载 opposo。 好,假如说我们现在已经下载完了,然后就直接运行这个 exe 文件, 点那个是接受条件,然后默认是阿杜在西旁的 program fast 下面。 嗯,这个是安卓的王吉明,这个呢是把 oppo ncv 呃的病呢这个目录加到系统环境病的里面去,这个一定要勾选 好点,安装 好,安装完成,我们可以看一下呃 波关翻奥斯下面有一个欧文思维目录,这就是我们刚才呃生成的目录, 这里边就是呃可以看到整个 oppo ncv 的元代码,应该是在这个这个工程上面,打开这个工程的话,就可以看到 opponcev 的所有的元代码。 让我们首先在 vc 六点零平台上面来呃配置 open cv, 呃先创建一个控制台应用程序,呃测试一下我们的安装是否正确。 创建一个简单的 higher world application, 因为之前配置过我,我先把之前配置的一些信息删除,在这里重新配置一遍。 嗯,这就是在呃没有配置之前的一个状态。你说,你说,我们 假设你现在要包好这个 suv, 点 h, 这个是 suv 里边的一个同文件,这样子的话他就找不到,因为我们还没有配置。呃, 像奥彭斯威的一些同文件的路径以及逆步环境的路径,他就找不到那个同文件。 嗯,先我们在这个地方配置这个相应的一些路径,最主要配置三个部分,一个是可自信文件,还有一个是呃 include 文件以及酷文件。这三个部分可知性文件就是在 我们刚才安装的 c 盘下面, program fast 的 open cv 步入下面,并 这个步入下面呢就是这些动态库。这些 dl 文件就是我们呃,你在小区里边调用 oppo ncv 的一些函数的时候,可能呃他就会去找这些动态库,所以我们在这个地方要配置相应的路径。 嗯,在 c 旁下面的 program fast 的 open cv 这个步入下面并,然后点 ok, 呃,我要把这个目录这个录进来,移到最上面去,然后配置这个头文件 也是在这个 open cv 这个路径下面。先配置 cv 下面的 include 路径 好,嗯,然后还有 cvaux include 以及 cxco 下面的 include ml included ml 是温馨 noran 机器学习的手写, 这里边呢有 igy 这个,这是和图像的读入,视频的读入以及图像显示相关的一些同文件好就可以了。然后再配置空文件 库,文件也是在我们安装目录下面的 l i b 这个文件讲点 ok, 然后点 ok, 这样子就配置好了,然后我们重新编译一下,发现他就能找到 cv 点 h 这个 同文件我们有显示一副油枪的话就会用到。 嗯, igy 这个动物界。 呃,一些基础数据结构呢,是放在 cxco 点,而去放在 ccco 这个模块里边, 我们为了验证一下我们的 oppo ncv 是否安装正确,那我们先加载一副图像来测试一下。 在我的 f 旁下面是,呃,有这么一张图像, a 副房下面有一张名字是两千点,应该两千点接笔记有这么一张图像, 然后这里之所以是双斜杠的话,因为斜杠他是需要一个转移字符的,所以第一个斜杠是起到一个转移的作用,然后我们编一下就会发现 他这里说出现了一个链接错误,无法解析的外部符号, cvo 的英明。据说我们刚才仅仅是把 呃点 h y 键因酷路的进来,他要解析这个函数的时候,他还要呃进到那个函数的定义的地方,嗯 嗯,所以呢,我们要在我们的工程里配置相应用到的一些立补文件,在这个工程数字里面的另个这个选项卡里面,这里我们用到了三个 呃空位间 cv 点礼物, cx 扣点礼物,还 gr 点礼物, 这些绿本玩具都是由编译 oppo ncv 那个工程所的生存的就是 oppo 是开原的吗?他所有的原单码都在这里,然后他也有一个工程把所有, 嗯,我们可以打开这个工程看一下, 工程有点大,大概速度比吗? 好,我们先放在这,让他先打开,好跟上我们配置的声音的力波纹线的话,我们重新编译一下,看能否通过。好,他是能够通过的,然后如果我们执行一下呢,他就会, 嗯,提示一个错误,就是因为计算机丢失海基啊,一百点点二这个文件就是他没有找到相应的动态库文件,嗯,他可能默认找的地方就是 他默认会在这个 c 旁上面的 windows 上面这个 cs 蹲十二这个步骤下面去找那些动态控玩具。嗯,所以呢,我们就把一些 第二我一键都考到那个木头下面去,嗯,我们把这些第二都考过去,考背到 c 盘, windows c 四等 三二,这个不是。下面 好,我们来重新呃,执行一下。好,他能够正确的执行过去,我们把它显示出来看一下,看一下效果, 这些函数如,嗯,在后面呢会详细讲他是怎么使用,我们先看一个效果,先不说他怎么用 好,嗯,这就说明了我们这个程序来正常的运行了,说明我们在微信六点零平台上面这个 oppo 是为配置是正确的,这个是 f 房下面的那一张图像, 这个还没打开, 算了,把布打开了。 如果大家想重新编译这个语言代码的话,呃,就直接在这个地方编译这个工程就 ok 了。好,下面我们再。 刚才是在这个六点零平台上面,呃,配置这个 opponsv 一点零,下面我们在 vs 零五下面配置一下, 创建一个新的工程。 呃,我就创建个微三控制台,应用程序就起一个,随便起个名字, tastes are, 我可以不需要与别人同 好,我们看到这个这里啊,跟我们六点零下面这个入口是不太一样,这里是 man, 他这里的是下滑线梯。 man, 其实他这个只是考虑到这个 多字节致富级,致富级的设置是在这个地方 考虑到这个啊,他是考虑到这个一零扣的这个支付机,其实我们这里的话直接把它改过来,嗯, 所有这种下滑线的杠踢开头啊,他都是考虑到优点扣的字母级,我们直接改过来就 ok 了。 嗯,我记得上之前呢配置过这,配置过这个一点零,我先把相关的一些路径把它删除掉看一下,这 好, 我们一样的把它这里的代码可以直接复制过去, 我发现他就说,嗯, 他这里就是找不到这个 h 文件,然后我们就来配置相应的一些路径,这里的可知性文件就是 欧文安装的欧文社会步入下的那个背影文件所在路径这里,背影走路镜。好,我可以把前面这一栋复制一下,然后包含文件, 就是配置相关的一些 h 文件,然后我们把刚才复制的粘贴在这,然后,呃,就直接跳到这个录像下面,然后我们选相应的 include 录进长贴。 cva uis include am i included are you? 海基,这是跟图像显示相关的。嗯,再配置这个酷文键也是在这个安装部落下面。 呃,有一个叫力不,这个文件夹他所在路线,点击打开好,然后点击确定,然后我们来重新编译解决方案。好,我们就发现他能够通过编译,然后我们把主行数这张代码也复制过来, 嗯,这里也是提示无法解析的外部符号,这是因为我们项目还没有配置相应的 动态控为立本文件,它的配置是在这个链接器下面有个输入,在这地方就配置我们需要的一些点。呃,需要的一些立本文件,我们用到 cv 点礼物,七 sq 点礼物,还有九二点礼物,欢迎自信。 呃, codenaboycodenaboy, 就是这些立本文件,它是包含些什么功能的话,我们在那个第二集里边介绍 oppo ncv 的结构和内容的时候,会会详细的介绍到这一部分。 好,然后我们重新编译解决方案,我发现他就能够通过编译。嗯,开始运行 好,能够成功的把这个图像呢显示出来,我们现在运行的是这个,在这个第八个模式下,呃,我们也可以配置约历史,约历史就是说刚才那个他 他他他这里说找不到,无法。呃,他就说无法解析的外部符号是因为于历史这个链接库也也需要配置一下他,我们直接把第八个这边的复制过去就可以了。 呃,其实来说呢,第八个模式下的一些地方文件应该后面,后面呢应该是有一个低的, 我们直接把瑞丽似的好掌握着 啊,瑞丽思想也能够正确的运行。嗯,那即使 open cvr 现在 都出到二点零或者更高版本,他的安装方法和配置方法其实都是一样的,我们只要掌握了一点零的安装和配置方法的话,那其他的都不是问题。好,这一节课就到这里。

那接下来我们到电脑上看一下三三二二的动态域名解析,该如何使用登录软路由,点击服务菜单,找到动态 dns, 找到 ipvs 这一栏,点击修改,在服务商列表里面找一下有没有三三二二, 我这第一个就是的,谁让他是数字呢,赚了便宜了,有的话咱们就可以用了啊。打开三三二二的官网,他改名字叫做什么 恭云了啊,这名字好,哈哈,没有注册的话可以来注册一下,就是填写什么账号密码,手机号,要激活邮箱,还要验证手机号。现在要求越来越严格了,我很早以前注册过,就直接登录 哦,二零一八年注册的,也不是很早以前了,登录进来就能看到我们的域名了,如果 没有的话,如果你的新账号肯定是没有的。点击创建 dns 解析,选中动态域名设置啊,就来到这个页面了,也可以点击左边这个菜单,他也有这个动态域名,然后列表创建,随便创建一个 啊,已经被别人创建了,随便创建无所谓的。 好,这个没有,别创建,那就点击创建域名好吧,一个人可能只能创建一个域名吧。服务套餐免费版只能使用一个 rg 域名,对于大多数人来说一个也够用了, 所以我就不创建了,就使用之前创建过的,实际上方法是一样的,使用方法非常简单,把这个域名复制下来, 回到这个软路由,首先勾选启用,在查询主机这里粘贴一下我们这个域名 ip 地址,选择 ip v 四 服务商就是这个三三二二,有时候默认是别的东西,我们首先要选中一下,然后点击更改服务商,这样才可以使用。再次把这个域名粘贴过来, 这里填写用户名就是这个网站的用户名,密码也是这个网站的密码,都填好之后就保存就可以了。 然后这边可能不是启用,就点一下看一下,这边默认不是启动状态,我们需要点一下启动好了,现在就有一个 p i d, 就是一个进程的意思,假如这个 i p d 是错的,或者说你这边配置失败了,我们怎么去查看错在哪里呢? 点击修改,这里有日志查看器,读取日志往下翻,翻到最底下,这里没有任何错误提示,密码错误,账号错误的话,这边会提示你什么 访问拒绝密码错误之类的提示文字。之前我就遇到过,所以通过这边能看出来是错在哪里,哪里出错了,刚才有点忘记说了啊。就是一定要选择一个有公网 ip 的接口,去哪看呢?网络接口菜单, 虚拟弯口,一二三就有三个官网 ip 的地址,其中任意一个都可以访问我的路由器,比如说我测试一下看到吗?这个可以,这个也可以, 这个也可以,更多的人,他没有多播的话,应该是这个口,就是这个万口,反正你就是看哪个接口上面有 ip 地址就选哪个接口。在高级设置这边接口就是一定要选择一个有 ip 地址的。这个计时器的话尽量选择最短,他最短支持五分钟,咱们就五分钟错误。重试间隔的话,这个无所谓,六十就保持默认吧,因为既然错了,你一秒钟试一次,他还是错,你十分钟试一次也是错,那就错就错吧,错的话肯定是男女出问题了,比如说你的密码错了,或者说他的服务器坏了, 毕竟是免费版本吗?他也说了是经常使用不稳定,对此表示遗憾。但是我认为他不可能出现不稳定的情况呢,免费他也不会说故意去让他不稳定。我们在日志上能看到这个 ip 变了,路由器上也能看到 ip 地址变了, 但是有时候你就是访问不了这个地址。好吧,我的运气好,这个解气生效了。假如现在我重启一下路由器啊,假如我就不演示了,因为之前我演示过了,我重启一次路由器之后,有可能我需要等待一个多 小时才能够再次访问,因为这个 ip 地址变了,他虽然能够在五分钟或者几分钟能够去改变掉,但是这个域名解析到的这个 ip 地址不一定是去更新的,有可能需要一两个小时才能够生效。这个没有办法,没有解决方案。 所以就像我之前说的,你最好是半夜十二点把路由器重启一下,这样的话你每次换 ip 的话都是在半夜十二点,那就算他等个三小时,五小时又怎么样呢?反正那时候我们就睡着了,当我们醒来之后,这个域名指向的 ip 地址一定是对的。 我认为这是一个比较好的方案啊,这是软路由的设置啊。实际上如果使用他的那个客户端的话就更简单了,下载客户端登录他的账号密码就可以了,跟以前的花生壳一样。这个我就不讲了。好了,今天的视频就先到这里了,希望对你有帮助,我们下个视频见。

在学习欧喷 cv 时,我们最初必须要学会怎样去读取图片,然后再怎样去显示图片,这是欧喷 cv 图像处理的最基础的一个部分,然后我们来看一下,首先我给大家演示一下这个程序 运行之后,他会调调调出显示,先读取这幅图片,这个茶杯的图片,然后给他显示出来,便命名为 这个显示窗口,命名为啊 foto one 就是第一张图片, 然后我们现在来看一下他的这个程序, 首先这个头文件 就是下面这些函数,需要在头文件里面可以调用,根据不同的函数他在的头文件不一样,那么需要调用不同的头文件,这是一个命名空间, 然后这个之后再做详细的解释,然后需要运行的函数需要在需要一个内函数, 这是一个组函数,在函数里面 mate 这个 src, 这是定义一个变量,一个图片变量可以储存图片的一个变量, 那么这一行这就是读取图片。瑞迈,这个英英瑞的,英瑞的 就是读取图片,然后将读取的图片复制给这个图片变亮,那么英瑞的是怎样去读取图片的呢?英瑞的里面需要在输入一个双引号,双引号里面输入图片所处的他的一个路径 以及图片的名称,以及他文件的后缀名, 我们可以看一下,嗯,他的路径,他的名称以及他的后缀名。 然后再来看一下影秀,影秀就是显示出你读取的这个图片,然后他的第一个参数就是显示窗口的名称 foto one, 然后 这个就是需要该窗口显示的图片是哪个图片,就是这个图片变亮里面所装的图片,然后最后这个 vsk 就是等待函数, 之所以要加这个是为了让图片显示出来,让肉眼可以看见,如果不加这个函数,那么内函数就会是什么样的,直接执行就结束了,就是他在很快的时间内给 他创建一个变量,变量创建完以后去读取,读取以后立刻给他显示,显示以后立刻结束这个程序,所以你根本就看不见那个图片, 为了让这个图片保持住你能够看见,所以我们要加一个 vsk, 就是相当于,哎,等一等,我先看一下,就是这这样一个作用,然后当你觉得,哦,我看够了, 那么就等待按键出发吗?你再按一个那个 esc 那个键他就退出,然后就是按着那个键以后这个程序就结束了,图片也就自然消失了。然后我们现在再来演示一遍,首先运行, 运行以后他一开始他会读这个茶那个路径里面的这个茶杯的图片,然后把它复制,复制给 复制给这个变量,然后通过引秀函数调用这个变量,然后 显示的窗口的名称 fotw one, 最后等待按键输入,如果有按键输入,程序就结束,图片已经消失,没有按键输入,他就一直显示让你看清楚,好,我现在输入一个按键 ok 就结束了。这就是关于今天 opplecv 的学习分享。

是淘米,今天继续我们 open cv 学习,那么在上一节课当中,我们给大家讲过,通过我们 opencv 的一个哈尔吉呢去进行人脸检测。今天啊我们继续讲这个人脸检测,不过呢是基于我们的这个叫 deliber 这个库,那 deliber 是什么呢?它其实就是一个深度学习开源工具 啊,这个得力不库啊,是基于 c 加加开发的,不过呢也支持 python 啊,所以我们在应用的时候啊,直接调用这个库就可以,非常简单。 那么这个得利本呢,对于人脸特征提取啊,他的支持比较好,那么也有很多这个训练好的人脸特征提取模型,可以直接拿过来使用。 delete 人脸识别开发呢,非常适合用于一些人脸的一些项目。所以啊,如果以后各位朋友做类似的项目呢,可以调用这个库,非常简单。那在这里,在 在这里呢,我也给大家提供了一个官方地址和 github 上的一个源码库啊,待会呢我也会给大家进行一下演示。那么 deliver 这个算法呢?今天我们会用到其中的一个算法,就这个号的算法啊,号的算法呢,一般是用来进行一个行人检测的, 那这这个号的算法呢,是在二零零五年提出来的,当时呢也是比较有影响力,那号的算法是什么呢?他的中文意思叫做方向梯度直方图, 那这个 hulk 呢,它是一种特征描述子啊,通常用于从图像数据中提取特征,它广泛应用于我们计算机视觉任务中的物体检测。 这里啊有一些这个名词啊,比如说特征描述子啊,他的那什么是特征描述子呢?他是图像的简化表示,仅仅包含 有关图像的重要信息,什么意思呢?比如说我们有一张图片,对吧?那么这个图片当中我们想检测里面的人脸,那么这个人脸有关这个人脸的信息就是一些关键信息,那么这些关键信息呢,我们就可以说他就是一种特征描述字 啊,理解起来啊,可以上去比较形象的去理解啊。那么这里呢,我给大家就提供了一个网址啊,你可以下载这篇论文去看一下,这是作者呢在零五年发表的一篇论文,我觉得讲的比较详细。 关于这个 hold 算法呢,我会在接下来的一期视频当中,专门给大家讲一讲这个 hold 算法的原理,包括它的一个运作的一个方式是怎样的,以及它的一个结果。 ok, 那今天呢,我们主要就是通过我们这个 delete 算法来给大家做一个人脸的检测。首先我们可以呢去到 官网看一下,包括他这个源码库看一下,我们还是看一下他的官网,我这里呢已经给大家找好了,比如说这个就是我们得利不酷的一个官网啊,那么在这里呢,他有介绍了很多这个呃库里面的一些算法,比如说像机器学习算法, 还有呢 s v m 算法,对吧?包括像这个呃 hog 算法,也有里面有一个 hog 算法,在这里有个叫 hog 算法,对吧? 包括像什么目标检测啊,人脸识别。所以呢,感兴趣的朋友啊,可以到他的官网来看一下他这个算法的实现是怎样的。 不过有一点啊,它里面这些算法的实现呢,都是用 c 加加写成的,如果你懂 c 加加,那我觉得读起来是比较比较比较顺畅的啊,不过呢你可以了解一下他这个实现的一个过程是怎样的,可以可以参考一下,那我们这边也 看一下它的这个 github 上的源码库,那么这个这个就是它的一个源码库,你可以把它下载下来啊,如果你没有这个 github 的一个这个账号呢,你就在这里啊进行一个, 进行一个注册就可以了,注册注册好之后你就可以啊,有个叫做 download, 你可以点击 download 就可以了。那么下载下来之后啊,你需要把这个文件文件包进行解压,解压之后呢就能够 解压之后啊就能够看到这个 deliber 这个源码库。我给大家看一下这个 deliber 源码库,它里面呢就是有一些文档,一些文件,哎,你可以自己去看一下的。 我这里呢就不给大家详细的介绍了,包括他一些案例,对吧? examples 你都可以去看一下,包括用 python 写的一些案例,它里面都比较丰富,可以去看一下怎么实现的啊?那么今天呢,我们就 通过代码给大家演示一下如何基于 deliber 来进行人脸的检测。首先啊,我们需要呢打开我们上一节视频当中创建的那个项目 hfs recognition, 如果你是第一次啊这个创建项目呢,你就点击这个叫做 create new project, 你就创建一个新的一个项目工程。那这里我就不给大家介绍了,因为上一节视频包括之前的视频我都反复讲过如何通过拍 charm 来创建一个新的工程项目,首先我们还是打开这个 face recognition, 这个是我们上一节课创建的一个工程项目啊,包括这个这边的代码是我们上一节视频当中写的,是基于这个 hard 这个吉年来进行人脸检测。一个是呢检测图片,一个是通过我们的摄像头来进行人脸检测啊,我就不给大家去细讲了, 感兴趣的朋友可以去看一下上一节的视频。那么在这里呢,我们创建一个新的一个 package, 一个包,比如说我这边叫做 face detection, 对吧?人脸检测 detection, 然后呢是基于这个 deliberate, ok, 然后呢在这个呃这个包下面我们再新建一个 pass 文件,我们新建一个 pass 文件,比如说 face detection, 对吧? deliber 或者说 the lab, 对吧?我们今天主要是呃第一个代码呢,我们主要是用它来检测图片的,我们写一个 emi 九 就可以了,这个就是我们一个建行的一个空的一个拍摄文件。那么想一下我们要实现一个人脸检测,他的步骤有哪些?那么我们还是仿照上一节视频当中讲的那个流程,我们先用中文来描述一下这个,像这个 啊,他的流程是怎样的?比如说第一步我们是不是要导入一个库,对吧?那么第二步我们要干嘛呢?是不是你要定一个方法,用它来显示图片,对吧?显示图片,也就是说显示我们最终的一个检测效果,那么我们就通过这个方法去实现。 那么第三一步是什么呢?我们是不是还是跟呃上次讲的一样,我们还是要定一个方法,这个方法主要是用来绘制这个人脸的矩形框,因为我们这个人脸检测出来之后啊,在他的面部会有一个矩形框,所以这个方法呢,主要是绘制 人年矩形框,它主要是起到一个绘制作用。 ok, 这个就是我们需要定义的两个方法。那接下来呢,我们是不是就要实现我们这个主函数了,叫做 man 函数,对吧?那我这里呢,先提前给大家写一下,比如说 man, 然后这 边是一个程序的一个入口,这这个写法是非常固定的,所以这个是非常固定的,我们其他代码呢,会写写在这个卖函数下面就可以了。 ok, 我们看一下第四步要干嘛?第,因为我们是对一张图片进行软件检测,所以呢,你需要读取一张图片,对不对? 读取一张图片,这是第四步。那第五步我们要干嘛?你是不是要把这张图片,因为他是一张彩色图片吗?你要进行一个灰度转换,对吧?这些步骤啊,我觉得我们已经写了很多遍了,我就稍微一笔带过了,一笔带过, 然后呢?你这个,呃,图片转换之后,那么接下来你是不是需要调用我们这个 delete 库,对吧?调用这个 delete 库,所以我这边可以这样写,调用 delete 库啊,库中的检测器,因为我们今天主要是基于 delete 来做人脸检测,所以我们就调用他这个方法,对吧?用他这个检测器来进行人脸检测就可以了。那么接下来我们第七步要干嘛 啊?对吧?第七步,那你是不是当你检通过这个检测器检测出人脸之后,我是不是需要通过这个方法把这个人脸给他绘制出来,就画出一些矩形框,把这个人脸给他框住就可以了,对吧?所以我这里呢,第七步就是说给检测出的人脸, 给检测出的人脸绘制矩形框,对吧?所以我们这边的每一步其实他都是有依据的,都是啊,在上一步完成之后,我们继续下一步, ok, 那么第八步是不是什么呢?我们是不是要创建一个画布,对吧?创建画布,因为我们要把这个结果显示在这个画布上。那第九一步是什么呢? 我们是不是要把整个检测效果给他显示出来,显示,对吧?最终的检测效果,他的每一步我们就是这样这样去去做的,或者说他的依据就是这样的,他的流程是这样,我们我们稍微浏览一下导入库,显示图片, 绘制人脸矩形框,读取一张图片灰度转换,调用这个库,调用库里面的检测器。然后呢,我们把检测出来的人脸呢,给他画上这些矩形框。 最第八步呢,创建一个画布。第九步呢,就显示最终的一个一个结果。那我们用代码来实现一下,比如第一步很简单吧, 首先呢,我们是需要导入我们的 cv 库,还需要导入什么?导入我们的 delibe 库,对吧?因为我们今天主要是通过 delibe 来实现的。然后呢,我们还需要导入我们的 number 派,对吧?南派库还需要导入一个叫做 mud plot leave 库,这这几个库啊,我们之前基本上都要用到这几个库, ok, 这个是南派,不要写错,是南派, ok, 呃,酷。导入好之后就是定一个方法来显示图片,显示这个效果啊,那么你显示图片,所以呢,你需要传进来一张图片,那么你还需要传进来一个抬头,就一个标题,对吧?一个标题,这个图片的标题, 那么图片传进来之后,它是以它的这个读取的,我们 open cv 是里面是一个 bgr 的一个通道的一个图片,所以我们需要把它转换成一个 rgb, 所以这边呢,我们需要对图片进行一个通道的一个顺序转换, 比如说这个,其实在以前我们这个代码当中啊,我们反复讲过了,这边前面的高和宽不变, 后面的通道给它颠,就是,呃,把它的顺序啊,稍微颠倒一下就可以了,把 bgr 的通道转换成 rgb, 也就颠倒一下就可以了。那么接下来呢,我们要把它的标题哎,给它显示一下抬头, 然后我们还需要显示什么?你是不是还需要显示一下这张图片,对吧?你要把这张图图片给它显示出来, i'm show 这个方法,那把这个 imager, 这个 rgb 的图片给它显示,然后呢我们把整个坐标轴关闭,我们不需要这个坐标轴,所以我们就用 off 把它关闭就可以了。 这个就是啊,我们显示图片的方法就这几行,代码非常简单。那么第三一步呢,就是绘制人脸矩形,怎么绘制呢?那跟我们上一节视频当中啊,这个做法一模一样,一模一样直接是一个呃, d f, 对吧?然后呢绘制,我这边用的是 pro 用的这个方法名 rectangle, 那么你绘制这个人脸矩形框,你是不是要把那个图片给我传进来, 同时呢你还需要给我传进,传进来什么呢?你检测到的人脸,对吧?比如说你,你在一张图片当中检测到了两个两啊,两个人脸,那么你这个人脸这个数据,你是不是要给我传进来我才能绘制? 如果你没有检测到,那我肯定不能绘制吗?你,你得到几个人脸了,那我就给你绘制几个,所以你这边肯定要给我传进来一个 faces, 就说你,你的检测器,也就是你在这里 你的检测器,他到底检测到了几个人脸,你必须要给我传进来, ok, 那么传进来之后我们要干嘛?你是不是要在图片上给他绘制出人脸了?很简单,怎么绘制呢?跟上一节视频当中一模一样。我们这边有个叫做 d e t 表示 detect 简写,然后可以也可以用 face 吧?用 face, 比如说 for face 啊, faces, 就说我会把你传进来的几个人脸一个一个的通过循环给它取出来, 于是我取出第一个人脸,我就给你画出来,第二个人脸我再给你画出来,第三个人脸我再给你画出来,就是说我通过循环一个一个的提取。那接下来呢?我们就给他进一个绘制,用我们的 rectangle 这个方法就是绘制一个长方形。首先你要把图片传进来,我是在你这张图片上绘制, 接下来呢,你需要把你的坐标给我传进来,比如说我们上一节,上一节讲这个哈尔纪念的时候啊,比如说像这张图片,对吧?我们上次给大家讲过,你在他这个人脸上画一个矩形框,你是不是要把这个,呃,你是不是要把这个第一个坐标,也就是 这个坐标你给我传进来,对吧?然后是哪一个坐标?就是这个对角线的坐标,这两个坐标你给我传给我之后,我就可以把你这个矩形光给你画出来。所以呢我们接下来也是获取到他的两个局,两个坐标啊,一个坐标是这里,一个坐标是这里, 所以呢我们代码也是这样去实现的。首先我们获取到它第一个坐标啊,也就是通过我们这个 face 能够获取到他这个左边的,我们通过这个方法叫 left, 就能够获取到他左边的这个坐标。然后呢我们再获取到什么呢?他这个上面的这个坐标上面的叫 top, 我们就能够把第一个坐标给他获取得到。因为这个, 呃,人脸检测到之后啊,他给你传返回的数据呢,他是有坐标的,他是有坐标的啊,这个坐标呢,就说一个是 左上角的一个坐标是这样的,一个是右下角的坐标,所以呢这边你一定要把它括起来,这里啊,它是有一个圆括号,把这两个值放在一起的,所以这边一定要注意括号不要少写了。然后我们再把它的这个,呃右下角就那个斜对角形的坐标给它拿到,一个是 right 方法, 一个是 fasten, 然后是 mountain, 一个底部的一个一个值你会拿到,这样呢我们就把第一个坐标给他拿到了, 第二个坐标也给他拿到了,也就是跟我们 pp ppt 上一样,我先把第一个坐标拿到了,再把第二个坐标拿到了,那么这个矩形框我一下子就能画出来了,所以这边我写的这个作用啊,就是说获取它的坐标值, 那么获取到坐标之后,我再画这个矩形框的时候,我就要给这个矩形复制一个 颜色,比如说一个蓝色,对吧? bg 二嘛,我这个 b 呢给了他一个二五五的值,那个 g 和二全部是零,那么他最终显示呢,肯定肯定就是一个蓝色的值,就一个蓝色的线。 然后呢我再给这个矩形框加粗啊,或者他的这个线条吧,我给他一个四号,就是他粗一点,粗一点就行了, 这个就是我们的矩形框,那么一个循环下来啊,就一个负循环下来呢,他就会把你检测到的人脸全部给他画上这个矩形框,最后呢我们需要把这个, 呃这个图片给他返回,返回去。为什么呢?因为我们这个图片啊,你传进来的时候他没有画矩形框,那么你这个复循框运行完之后,他上面呢都把人脸给你画出矩形框了,所以这个图片呢也就变成了一张新的图片,所以你要把这张图片呢再给他返回,返回去,因为我这边, 因为我这里啊要给他显示图片的,对吧?所以你这边这个图片你肯定要给我返回来的。接下来呢我们这个方法就给他写好了。如何绘制人脸的矩形框, 那么第四一步是什么呢?我们是不是要读取一张图片了,对吧?因为我们要在,我们要检测一张图片,所以这里呢我们可以这样写,比如说 imager, 对吧?我们要读取一张图片, 用我们的 imere 的就可以了。然后我这边比如说我读起一个什么呢?比如像这个 family, 我看我这边有没有,哎,我这边还没有素材,对吧?我就把啊上一件视频当中这个 family, 这个这个图片我给他拷贝过来,怎么拷贝呢?很简单,我这边可以这样写,我看看行不行? 这个右击,然后有个叫 copy, 对吧? copy 拷贝,然后在这里啊,右击粘贴就可以了。呃,粘贴一下, 这样呢,我这个图片啊,这个素材就给我拷拷贝过来了,对吧?那接下来呢,我们就检测这张图片,给我这里将写 检测这个人脸就是发明了吗?对,图片呢,我们已经读取进来了,接接下来我们是不是要对他进行一个灰度转换?灰度转换很简单啦,直接是调用这个 cvt 开了,对吧?然后呢,你把图片传进来,我再给他进行一个灰度的转换, 首先是通过我们的 bgr 转换成一个 gra 就可以了,非常简单。然后转换完之后,我们接下来很重要的一点就是要调用 the leave 库中的这个检测器,这个检测检这个检测器的调用非常简单, 直接是 delete, 对吧?然后点,然后是 get 就可以了。然后呢,因为我们是对人脸的一个正面进行检测嘛,所以我们 就选择这个 frontal face, 呃, detector 就可以了,我们回车一下,我们就调用这个方法来进行啊,就说来啊,调用他的一个检测器,比如说我这边给他负一个值叫 detector 吧,对吧?我现在呢已经获取到了这 glib 库中的这个 这个库中的这个检测器了,那接下来呢,我这个检测器获取到了,那我是不是要对这个人脸啊?对,这对这个图片,这个灰度图片进行人脸检测了,对吧?这个太简单了,直接用这个检测器,比如说 detector, 这是我们刚刚获取到的检测器,对吧?把这张灰度图片给他传进去就可以了,传进去就可以了。然后呢,我这边这里呢,会得到一个返回的检测到的一个值,也就是说它里面有几个人脸,他都会一下子给你检测出来。所以我这里啊,我就用一个变量来接收这个检测 的结果,比如说检测的结果 detects result 就行了,对吧?我可以这样,呃,把这个检测的结果呢复制给了这个变量,就说 我获取,我获取到了,你给我检测出来几个人脸,那这里呢,我可以再加一个参数,比如加个一,为什么就说我想把这张图片给他放大一倍, 让我们这个检测器呢去检测,这样呢能够确保它里面所有的人脸都能够被检测到, ok, 这个一的作用啊,就是说放大,我这边给大家备注一下,一,比如说,哎, 我这边给大家做一个备注,一,代表将图片放大一倍。 ok, 这个就是我们通过检测器来检测人脸,对图片进行一个检测。那么接下来呢,我们是不是要获取据说 给我们这个人脸啊,进行一个绘制矩形框,怎么绘制呢?直接通过我们的 plot 这个 rectangle 这个方法,就通过这个方法来绘制矩形,我们直接调用它就可以了。然后呢你要把图片给它传进去,比如说我这边传一个图片,我把它的备份拷贝一份给它传过去,然后还干嘛? 我们是不是要把这个结果给他传过去啊?对吧?因为这个就是我们检测出来的人脸嘛,我就要把这个结果给他返回过去,那么他画好, 给他画好之后,他又给我返回出一张新的图片,所以我这里呢需要接收一下,接收一下这个新的图片,可是我这边叫做 image result 吧,这个就是我接收到的一个啊,新的一个图片了,上面呢 他给我绘制了,绘制出了所有的人脸,然后接下来呢,我们是创建一个画布,怎么创建呢?通过我们的 p o t 这个 figure 来创建画布就可以了,然后里面我们设置一个画布的大小,对吧?然后呢我们还可以设置什么?设置一下画布的一个标题,比如说 super title, 我们这边写一个 fast detection with deliber, 对吧?我们基于 deliber 来做人脸检测,然后给它设置一下字体的大小,比如说我们就设置一个呃,十四,对吧?然后呢再设置一下它的这个 字体的大小粗细,比如说粗一点啊,他这个标题的字体啊,粗一点。 ok。 画布呢,我们已经创建好了,接下来呢 我们就是要把整个结果给他显示出来,怎么显示呢?直接调用这个修 image 方法就可以了,我们传进去一个结果的照片,传进去一个标题,那么他就帮我们把 整个检测的结果给他显示出来了,所以我们这里直接调用他的方法就可以了,比如说修,对吧? amg, 然后呢我们把这个结果给他传进去,就把 这个结果啊,我们这个绘制好的,绘制好软点矩形的结果给他传进去,然后给他加一个标题,我们就加一个叫做 face detection 就可以了, ok, 然后呢我们把整个画布显示一下, p o t show 就可以。 ok, 那么现那么我们现在把整个流程全部通过代码呢进行了实现啊,哎,这好像有问题,我们少了一个括号,不要写错,不然他会报错, 然后其他的我们全部都写好了。那接下来呢,我们就运行一下,看看他能不能得到正确的一个效果或一个一个结果, 我们让一下看看会不会报错,哎,显示出来了,对吧?我们代码没有问题,我们代码编写没有问题,他就呢把这张图片呢进行了一个人脸的一个检测, 他发现有三个人脸,所以呢他全部给你画上了矩形框,对吧?全部画上了矩形框,然后这这个呢黑色字体啊,这个就是我们的这个超级标题,这个就是我们每一张图片显示的那个小标题,比如说我们的超级标题是不是,是不是这个,对吧?他就显示在这里,然后这个呢就是我们 图片上方的这个小标题,对吧?所以呢这个结,这个这个结果是我觉得没有问题,他的这个检测效果还是不错的,但是一定要注意,我们这个算法,他只能针对正脸进行检测,比如说你要是脸特别歪,特别侧,他就无法检测了,所以这个算法呢,他还是 比较低级的一个算法,比较低级的算法,那么以后呢,我们会讲到深度学习,通过深度学习来进行人脸的检测识别,那个准确率是非常非常高的,基本上能够达到百分之九十五以上, ok, 那么目前我们只是啊算是一个人脸检测的一个入门,入门算法, 这个是针对图片的一个检测效果。那接下来呢,我们就通过代码再实现一下,通过我们笔记本自带的摄像头来实现人脸的检测,这个啊也很好写。那么我还是 啊,那这个是因为我担心这个接下来视频比较长,我就先这这个图图片的人脸检测,我们就先到这里,那下一个视频呢,我就再给大家录制一下关于这个通过摄像头来进行人脸的识别。 好了。那这期视频呢,我们就先到这里,如果有任何疑问可以在视频下方啊给我留言。那么欢迎大家继续学习后续的课程,拜拜。

大家好,本视频主要从 mvs 都画面预览操作方法讲解,主要从功能介绍、操作方法、视频介绍三方面说明。 功能介绍,多画面预览功能主要且只能应用于多相机场景时同时观看多个相机的画面,最多支持同时查看十六个相机的画面。操作方法如下,单机画面布局,图标选择多画面布局选项有单画面、四画面、 九画面和自定义布局。选择四画面或者九画面后,显示界面布局会随之改变。连接相机长按选中的相机拖动到一个画面区域中,即可使该相机画面在该区域中显示。 鼠标悬浮到指定位置时,会有开始采集等图标显示出来,点击后可以做开始采集等操作。双击某一画面, 可以将该画面放大至单画面的程度,再次双击或点击复原图标是可以复原自定义画面。操作方法,单击画面布局图标,选择自定义画面,单击添加介入自定义画面布局名称, 单击选择相邻的画面,点击合并,可将相邻画面合并为一个分割,只能将合并的画面分割单击保存即可。把画面布局保存,保存后下次点击画面布局图标时,即可在列表中看到自定义画面布局。接下来是视频演示。 单击画面布局图标选择多画面布局选项有单画面、四画面、九画面和自定义布局。 选择四画面或者九画面后,显示界面布局会随之改变。连接相机长按选中的相机拖动 送到一个画面区域中,即可使该相机画面在该区域中显示。鼠标悬浮到指定位置时,会有开始采集等图标显示出来,点击后可以做开始采集等操作。双击某一画面,可以将该画面放大至单画面的程度。再次双击或点击复原图标是可以复原 自定义画面。操作方法,单击画面布局图标,选择自定义画面,单击添加,介入自定义画面布局名称, 单击选择相邻的画面,点击合并,可将相邻画面合并为一个分割,只能将合并的画面分割。