博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
人脸对齐
阅读量:2444 次
发布时间:2019-05-10

本文共 1682 字,大约阅读时间需要 5 分钟。

人脸相关应用的重要预处理,very useful!

// find affine transformation between two pointsets (use least square matching)bool computeAffine(const vector
&srcPoints, const vector
&dstPoints, Mat &transf){ // sanity check if ((srcPoints.size() < 3) || (srcPoints.size() != dstPoints.size())) return false; // container for output transf.create(2, 3, CV_32F); // fill the matrices const int n = (int)srcPoints.size(), m = 3; Mat A(n,m,CV_32F), xc(n,1,CV_32F), yc(n,1,CV_32F); for(int i=0; i
(i,0) = dstPoints[i].x; yc.at
(i,0) = dstPoints[i].y; } // solve linear equations (for x and for y) Mat aTa, resX, resY; mulTransposed(A, aTa, true); solve(aTa, A.t()*xc, resX, DECOMP_CHOLESKY); solve(aTa, A.t()*yc, resY, DECOMP_CHOLESKY); // store result memcpy(transf.ptr
(0), resX.data, m*sizeof(float)); memcpy(transf.ptr
(1), resY.data, m*sizeof(float)); return true;}int faceAlign(Mat src, Mat &output, vector
pointSrc){ if(!src.data) { cout << "image not read properly" << endl; return -1; } // Dimensions of output image int w = 200; int h = 200; vector
pointDst; pointDst.push_back(Point2f( 64, 100)); //左眼角 pointDst.push_back(Point2f( 136, 100)); //右眼角 pointDst.push_back(Point2f(100,130)); //鼻尖 pointDst.push_back(Point2f(68,150)); //左嘴角 pointDst.push_back(Point2f(132,150)); //右嘴角 // Calculate similarity transform Mat tform; computeAffine(pointSrc, pointDst, tform); // Apply transform to input image Mat AffineImg = Mat::zeros(h, w, CV_32FC3); warpAffine(src, AffineImg, tform, AffineImg.size()); output = AffineImg; imshow("img", AffineImg); //waitKey(); return 1;}

转载地址:http://pftqb.baihongyu.com/

你可能感兴趣的文章
linux网络知识:TCP/IP设置内容(转)
查看>>
GNOME帮助Linux应用于商业桌面环境(转)
查看>>
linux网络知识:与网络设置有关的几个文件(转)
查看>>
libc.a 文件恢复(转)
查看>>
SCO UNIX上cpio命令详细用法(转)
查看>>
思考-两个大表的关联.txt
查看>>
sql plan baseline(二)
查看>>
第十章 sqlplus的安全性
查看>>
第十三章 sqlplus命令(一)
查看>>
第三章(backup and recovery 笔记)
查看>>
第一章(backup and recovery 笔记)
查看>>
第六章(backup and recovery 笔记)
查看>>
[script]P_CHECK_BLACK.sql 检查当前用户下是否有varchar2字段的末尾包含空格
查看>>
实验-数据分布对执行计划的影响.txt
查看>>
实验-闪回数据库
查看>>
实验-闪回表
查看>>
oracle审计
查看>>
typeof运算符_JavaScript typeof运算子
查看>>
react 前端拆分_React中的代码拆分
查看>>
叶节点到根节点的路径_节点路径模块
查看>>