首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OpenCV人脸检测与三角绘制

其基本思想就是对任意多的点,分割为多个三角形,任意一个三角形的外接圆都不应该包含其它顶点,如果包含则继续寻找组合,直到所有点满足此条件,最终得到的多个三角形就是三角三角分在人脸特征迁移、人脸合成与交换...二:OpenCV中相关API支持 Subdiv2D对象是OpenCV中用来生成三角,并且获取三角全部三角形的工具类,主要方法如下: - Subdiv2D subdiv // 定义三角 - initDelaunay... &triangleList); // 获取三角形数据 三:OpenCV基于人脸三角实现 现在很多人脸识别演示场景都支持实时绘制人脸三角分之后的全部三角形,感觉是非常的帅,特别是大屏投影显示...利用OpenCV的HAAR级联检测器实现人脸检测,然后基于人脸检测结果通过LBF人脸Landmark检测器实现人脸68个特征点的拟合,然后根据拟合的68个点调用Subdiv2D类的相关API就可以生成人脸三角...人脸检测结果 ? 三角绘制 ?----

2.7K20

点集合的三角

点集合的三角是指如何将一些离散的点集合组合成不均匀的三角形网格,使得每个点成为三角网中三角面的顶点。...在实际工作中,使用最多的三角是Delaunay三角。通过Delaunay三角算法能够构建一个具有空圆特性和最大化最小角特性的三角网。...空圆特性其实就是对于两个共边的三角形,任意一个三角形的外接圆中都不能包含有另一个三角形的顶点,这种形式的产生的最小角最大。...这些特性可能有些难以理解,但是我们可以先谨记一点:Delaunay三角网是一种特性最优的三角。...比如这里的构建Delaunay三角网,并没有新的点对象生成出来,只是对点集进行了组织,点还是原来哪些点,并没有变化。

28540
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    切呀切披萨——最优三角

    2.什么是凸多边形三角? 凸多边形的三角是指将一个凸多边形分割成互不相交的三角形的弦的集合。...例如图4-56的一个三角是{ v0v4,v1v3,v1v4},另一个三角是{ v0v2,v0v3,v0v4},一个凸多边形的三角有很多种。 ?...三角形上权值之和是指三角形的三条边上权值之和: ? ? 3.什么是凸多边形最优三角? 一个凸多边形的三角有很多种,最优三角就是划分的各三角形上权函数之和最小的三角。...先求只有三个顶点凸多边形三角的最优值,再求四个顶点凸多边形三角的最优值,…,一直到n个顶点凸多边形三角的最优值。 4.构造最优解。...上面得到的最优值只是凸多边形三角三角形权值之和最小值,并不知道是怎样的,我们需要从记录表中还原分次序,找到最优的弦,由这些弦构造出最优解。

    1.6K31

    Voronoi多边形和Delaunay三角

    今天对计算几何中的Voronoi多边形(即泰森多边形)和Delaunay三角分进行了学习,整理资料如下(摘自百度百科)。...在泰森多边形的构建中,首先要将离散点构成三角网。这种三角网称为Delaunay三角网。...定义 Delaunay三角:如果点集V的一个三角T只包含Delaunay边,那么该三角称为Delaunay三角。...要满足Delaunay三角的定义,必须符合两个重要的准则: 1、空圆特性:Delaunay三角网是唯一的(任意四点不能共圆),在Delaunay三角形网中任一三角形的外接圆范围内不会有其它点存在。...如下图所示: 2、最大化最小角特性:在散点集可能形成的三角中,Delaunay三角所形成的三角形的最小角最大。从这个意义上讲,Delaunay三角网是“最接近于规则化的“的三角网。

    2.4K30

    树链详解

    前言 树链是什么? 树链,说白了就是一种让你代码不得不强行增加1k的数据结构-dms 个人理解:+1:joy: 有什么用?...证明出题人非常毒瘤 可以非常友(bao)好(li)的解决一些树上问题:grimacing: (友情提示:学树链分之前请先掌握线段树) 核心思想 树链的思想比较神奇 它的思想是:把一棵树拆成若干个不相交的链...然后就可以在线段树上搞事情啦 像什么区间加区间求和什么的 另外有一个性质:以i为根的子树的树在线段树上的编号为[i,i+子树节点数-1] 接下来结合一道例题,加深一下对于代码的理解 代码 题目链接 树链的裸题...ls].f=(T[ls].f+T[k].f)%MOD; T[rs].f=(T[rs].f+T[k].f)%MOD; T[k].f=0; } 第四步 我们考虑如何实现对于树上的操作 树链的思想是...有了上面两条性质,我们就可以来分析时间复杂度了 由于重路径的数量的上界为 , 线段树中查询/修改的复杂度为 那么总的复杂度就是 例题 洛谷P3379 【模板】最近公共祖先(LCA) 树可以求

    99170

    轻重链练习笔记

    前言 轻重链,常被称为树链,是一种常用的维护树上信息的算法。 它以子树大小为依据,将节点划分为重儿子与轻儿子,从而使整棵树被分成若干条重链。 每个轻儿子都是一条重链的开始。...修改操作使 x 的权值增加 val,使 x 的儿子的权值减少 val,使 x 的儿子的儿子的权值增加 val \ldots 由于只操作子树,并不需要性质,可以直接维护 dfs 序与子树大小。...k \le 50,一个很暴力的想法就是维护 50 棵线段树进行大力树。 然而空间有些不够,考虑深度的特性。...printf("%lld\n", ask(out[a], dep[a]) - ask(in[a] - 1, dep[a])); } return 0; } 结语 虽然说本来要写轻重链的笔记...,但却发现许多树习题都有着更为优秀的ad-hoc解法(

    36620

    【失败也分享】C++ OpenCV人脸Delaunay三角形提取及仿射变换的使用

    Delaunay三角 ? 微卡智享 ? 给定平面中的一组点,三角测量指的是将平面细分为三角形,将点作为顶点。在图1中,我们在左图像上看到一组界标,以及在中间图像中的三角测量。...一组点可以有许多可能的三角,但Delaunay三角分出众,因为它有一些不错的属性。在Delaunay三角中,选择三角形使得没有点在任何三角形的外接圆内。...图2示出了4点A,B,C和D的Delaunay三角。在顶部图像中,为了使三角是有效的Delaunay三角,点C应该在三角形ABD的外接圆外,并且点A应该在三角形BCD的外接圆。...另一方面,在底部图像中,角度BCD太大,并且Delaunay三角产生边缘AC以划分大角度。 有很多算法来找到一组点的Delaunay三角。...OpenCV中实现Delaunay三角可以使用Subdiv2D,先定义一个分析的Rect空间,然后将要的点都insert进去,使用getTriangleList获取Delaunay三角形的列表。

    1.5K30

    多边形三角的最低得分(区间DP)

    假设您将多边形分为 N-2 个三角形。 对于每个三角形,该三角形的值是顶点标记的乘积,三角的分数是进行三角后所有 N-2 个三角形的值之和。 返回多边形进行三角后可以得到的最低分。...示例 1: 输入:[1,2,3] 输出:6 解释:多边形已经三角化,唯一三角形的分数为 6。 示例 2: ?...输入:[3,7,4,5] 输出:144 解释:有两种三角, 可能得分分别为:3*7*5 + 4*5*7 = 245, 或 3*4*5 + 3*4*7 = 144。 最低分数为 144。...示例 3: 输入:[1,3,1,4,1,5] 输出:13 解释:最低分数三角的得分情况为 1*1*3 + 1*1*4 + 1*1*5 + 1*1*1 = 13。...叶值的最小代价生成树(区间DP/单调栈贪心) dp[i][j] 表示区间 [i,j] 所有组成的三角形得分之和的最小值 区间长度从 3 开始往上变大 状态转移方程为dp[i][j]=min(dp[i][

    55020

    光怪陆离的世界之Delaunay三角和Voronoi图

    所以,自然就涉及到三角,所以自然要给出三角的定义(以下定义引自百度百科)....【定义】Delaunay三角:如果 T 只包含Delaunay边,那么T被称为Delaunay三角. 来张图直观体会一下三角 上图左边的离散点集 V 的 三角 就是右边....可以证明 三角 具备以下两个优秀的性质 空圆特性:三角中的每个三角面的外接圆的严格内部不包含任何 V 中其他的点....所以Delaunay三角其实并不是一种算法,它只是给出了一个好的三角的定义 为了方便,除非特别声明,否则下文提及的三角分指的就是 Delaunay三角 三角和其他问题的联系....最后,我们来研究一下 三角 的具体算法. 因为前面说了,三角 并不是一个实际的算法,而仅仅是一个较美的三角的定义而已. 所以历史上有很多 三角 的实现算法.

    4K51

    树链 算法学习

    树链 算法学习 树你应该懂的吧o( ̄︶ ̄)o 学习树链分之前需要先学习:dfs、线段树(当然大佬们用树状数组代替线段树也可以O(∩_∩)O),据说一名普及+的oier应该都会呀 先来了解树链的用处...所以这时候,树链闪亮登场。...什么是树链 一种算法(废话),它通过分轻重边把树分割成很多链,然后利用某种数据结构维护这些链(比如上文提到的线段树、树状数组等)但前提是这种数据结构支持动态修改(你别给我整个RMQ)。...PS:树的复杂度约为O(nlog^2n) 树链的基本概念 名称 概念 重儿子 父亲节点的所有儿子中子节点数目最多(sz最大)的节点 轻儿子 父亲节点除了重儿子以外的儿子 重边 父亲节点和重儿子连成的边...标号在树中所对应的节点的编号 top_x 编号为x的节点所在链的顶端节点编号 id_x 编号为x的节点dfs后的新编号 dep_x 编号为x的节点的深度 sz_x 以编号为x的节点为根的子树的节点个数 树链的实现

    34510

    长链入坑记

    (好像说了跟没说一样~  ̄□ ̄||) 常见的树有两种——重链和长链....重链偏向于选择子树节点更大的节点作为preferred son,国内一般称其为重儿子. 重链一般用于处理和子树大小有关的计数问题....长链的代码和重链一样。只是preferred son选取的条件不同罢了。那么长链的选择条件是什么呢?...长链分登场~ 长链直接继承长儿子处的答案, 类比于重链直接继承重儿子处的答案, 我们有 ? image 写成数组指针的形式就是 ?...image 最后,我们发现,形象的讲长链就是沿着各根长链去搜索(展开触角),根据长链的性质2,就知道长链算法是O(n)的(重链分会再带一个log, 这是重链的性质决定的, 感兴趣的读者可以去看看重链

    46110

    万圣节教你用 OpenCV Remix 一张 n 合1脸

    Delaunay 三角 在获得了68个面部基准点之后,我们结合人脸所在的矩形的四个顶点和每条边的中心点,将人脸所在的矩形分割成如下图所示的三角形的组合。 ? 3....基于Delaunay三角形的仿射变换 得到这些Delaunay三角形后,再分别对齐各个区域,对其中像素值进行平均。...[Code -1 ] 使用dlib来进行人脸识别和人脸特征点的提取 ? [Code-2] 根据特征点获得Delaunay三角 ? [Code-3] 计算仿射变换 ?...[Code-4] 通过仿射变换扭曲Delaunay三角形 ? 区分性别 经过尝试,合成后的脸怎么看都感觉是男的。至于如何训练模型来区分性别,扫描下方二维码来获取答案吧 ? ?...参考资料 【1】 AverageFace 代码、模型及样例图片 【2】 FaceGenderClassification 配置文件及命令 【3】 原始的性别分类模型 【4】Delaunay三角原理

    1.2K20

    每日算法系列【LeetCode 1039】多边形三角的最低得分

    假设您将多边形分为 N-2 个三角形。对于每个三角形,该三角形的值是顶点标记的乘积,三角的分数是进行三角后所有 N-2 个三角形的值之和。 返回多边形进行三角后可以得到的最低分。...示例1 输入: [1,2,3] 输出: 6 解释: 多边形已经三角化,唯一三角形的分数为 6。 示例2 ?...输入: [3,7,4,5] 输出: 144 解释: 有两种三角,可能得分分别为:3*7*5 + 4*5*7 = 245,或 3*4*5 + 3*4*7 = 144。最低分数为 144。...示例3 输入: [1,3,1,4,1,5] 输出: 13 解释: 最低分数三角的得分情况为 1*1*3 + 1*1*4 + 1*1*5 + 1*1*1 = 13。...这样右边多边形就被划分为了 3 块,其中除了 这个三角形外,两外两块多边形仍然满足只有一条内边的性质,所以可以继续用二位状态表示为 和 。 那如果不先找三角形 会怎么样呢。如下图所示: ?

    55410

    自己动手制作“平均脸”【1】

    Delaunay 三角 在获得了68个面部基准点之后,我们结合人脸所在的矩形的四个顶点和每条边的中心点,将人脸所在的矩形分割成如下图所示的三角形的组合。 这一方法又称为Delaunay三角。...www.learnopencv.com/delaunay-triangulation-and-voronoi-diagram-using-opencv-c-python/ 叠加经过仿射变换的Delaunay三角形...Delaunay三角将图像分解成若干三角形后,再分别对齐各个三角形区域,对其中像素值进行平均。...,根据图像I和图像J中已经获得的76个点,在叠加的结果图像M中找到76个点(xm, ym) Step-2: 计算原图到目标图像的仿射变换 现在我们在图像I,J和M中分别得到了76个点,以及由这76个点而成的三组三角形...Step-3:扭曲Delaunay三角形 对于图像I中的一个三角形,使用step-2中计算出的放射变换,将其中每一个像素通过仿射变换对应到M中对应的位置去。

    4.9K80

    网红直播时的瘦脸、磨皮等美颜功能是如何实现的?

    ,对其构建整张脸的三角网格,实现对整个脸部区域的三角(Delaunay Triangulation),三角人脸切分成多个无重叠的三角区域,进而可以使用openGL或者D3D进行绘制渲染处理,从而实现对脸部器官的各种美化处理...,法令纹区域和眼袋区域的遮罩Mask2,脸部高、低光区域的遮罩Mask3,高、低光遮罩的Mask3如下图所示 通过人脸关键点信息结合该遮罩图片,利用三角的方法实时生成与当前人脸所对应的脸部遮罩Mask...我们所采用的图像形变算法主要是局部扭曲算法和三角,局部扭曲算法一般包括局部缩放、局部平移、局部旋转等,如大眼功能即可通过局部缩放来实现。...三角的方法则是通过对三角网顶点进行平移,再将平移后的顶点更新到对应的纹理坐标,通过openGL或者D3D进行绘制渲染,从而实现整个关联三角网的变形。具体的脸部美型效果如下图所示: 4....2)素材模板和当前人脸器官进行对齐。素材的描述文件中存有相应的标定信息,结合当前图像的人脸关键点,采用三角的方式实现对素材模板的变形,达到与当前人脸器官对齐的目的。 3)不同器官的定制化处理。

    4.5K30
    领券