eyelike的windows版本,VS2010工程,依赖OpenCV2.4.11。
配套博客链接:https://blog.csdn.net/chaipp0607/article/details/79935302
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 136704 2018-04-13 21:09 eyelike1.0Debugmain.exe
文件 2038180 2018-04-13 21:09 eyelike1.0Debugmain.ilk
文件 1936384 2018-04-13 21:09 eyelike1.0Debugmain.pdb
文件 47906816 2018-04-14 14:54 eyelike1.0ipchmain-e69ee443main-62bed6b1.ipch
文件 685 2017-10-17 01:07 eyelike1.0mainconstants.h
文件 10510 2018-04-13 21:09 eyelike1.0mainDebugcl.command.1.tlog
文件 89002 2018-04-13 21:09 eyelike1.0mainDebugCL.read.1.tlog
文件 6528 2018-04-13 21:09 eyelike1.0mainDebugCL.write.1.tlog
文件 267423 2018-04-13 21:09 eyelike1.0mainDebugfindEyeCenter.obj
文件 143049 2018-04-13 21:09 eyelike1.0mainDebugfindEyeCorner.obj
文件 139689 2018-04-13 21:09 eyelike1.0mainDebughelpers.obj
文件 2 2018-04-13 21:09 eyelike1.0mainDebuglink-cvtres.read.1.tlog
文件 2 2018-04-13 21:09 eyelike1.0mainDebuglink-cvtres.write.1.tlog
文件 2 2018-04-13 21:09 eyelike1.0mainDebuglink.3356-cvtres.read.1.tlog
文件 2 2018-04-13 21:09 eyelike1.0mainDebuglink.3356-cvtres.write.1.tlog
文件 2 2018-04-13 21:09 eyelike1.0mainDebuglink.3356.read.1.tlog
文件 2 2018-04-13 21:09 eyelike1.0mainDebuglink.3356.write.1.tlog
文件 9598 2018-04-13 21:09 eyelike1.0mainDebuglink.command.1.tlog
文件 18796 2018-04-13 21:09 eyelike1.0mainDebuglink.read.1.tlog
文件 3542 2018-04-13 21:09 eyelike1.0mainDebuglink.write.1.tlog
文件 406 2018-03-31 14:08 eyelike1.0mainDebugmain.exe.embed.manifest
文件 472 2018-04-13 21:09 eyelike1.0mainDebugmain.exe.embed.manifest.res
文件 381 2018-04-13 21:09 eyelike1.0mainDebugmain.exe.intermediate.manifest
文件 73 2018-04-14 15:45 eyelike1.0mainDebugmain.lastbuildstate
文件 873 2018-04-14 15:45 eyelike1.0mainDebugmain.log
文件 315762 2018-04-13 21:09 eyelike1.0mainDebugmain.obj
文件 713 2018-03-31 13:52 eyelike1.0mainDebugmain.vcxprojResolveAssemblyReference.cache
文件 0 2018-03-31 13:52 eyelike1.0mainDebugmain.write.1.tlog
文件 198 2018-03-31 14:08 eyelike1.0mainDebugmain_manifest.rc
文件 1116 2018-04-13 21:09 eyelike1.0mainDebugmt.command.1.tlog
............此处省略29个文件信息
#include “opencv2/objdetect/objdetect.hpp“
#include “opencv2/highgui/highgui.hpp“
#include “opencv2/imgproc/imgproc.hpp“
//#include
#include
#include
#include
#include
#include “constants.h“
#include “helpers.h“
using namespace std;
using namespace cv;
// Pre-declarations
cv::Mat floodKillEdges(cv::Mat &mat);
#pragma mark Visualization
/*
template mglData *matToData(const cv::Mat &mat) {
mglData *data = new mglData(mat.colsmat.rows);
for (int y = 0; y < mat.rows; ++y) {
const T *Mr = mat.ptr(y);
for (int x = 0; x < mat.cols; ++x) {
data->Put(((mreal)Mr[x])xy);
}
}
return data;
}
void plotVecField(const cv::Mat &gradientX const cv::Mat &gradientY const cv::Mat &img) {
mglData *xData = matToData(gradientX);
mglData *yData = matToData(gradientY);
mglData *imgData = matToData(img);
mglGraph gr(0gradientX.cols * 20 gradientY.rows * 20);
gr.Vect(*xData *yData);
gr.Mesh(*imgData);
gr.Writeframe(“vecField.png“);
delete xData;
delete yData;
delete imgData;
}*/
#pragma mark Helpers
int round(double r)
{
return (r > 0.0) ? floor(r + 0.5) : ceil(r - 0.5);
}
cv::Point unscalePoint(cv::Point p cv::Rect origSize) {
float ratio = (((float)kFastEyeWidth)/origSize.width);
int x = round(p.x / ratio);
int y = round(p.y / ratio);
return cv::Point(xy);
}
void scaleToFastSize(const cv::Mat &srccv::Mat &dst) {
cv::resize(src dst cv::Size(kFastEyeWidth(((float)kFastEyeWidth)/src.cols) * src.rows));
}
cv::Mat computeMatXGradient(const cv::Mat &mat) {
cv::Mat out(mat.rowsmat.colsCV_64F);
for (int y = 0; y < mat.rows; ++y) {
const uchar *Mr = mat.ptr(y);
double *Or = out.ptr(y);
Or[0] = Mr[1] - Mr[0];
for (int x = 1; x < mat.cols - 1; ++x) {
Or[x] = (Mr[x+1] - Mr[x-1])/2.0;
}
Or[mat.cols-1] = Mr[mat.cols-1] - Mr[mat.cols-2];
}
return out;
}
#pragma mark Main Algorithm
void testPossibleCentersFormula(int x int y const cv::Mat &weightdouble gx double gy cv::Mat &out) {
// for all possible centers
for (int cy = 0; cy < out.rows; ++cy) {
double *Or = out.ptr(cy);
const unsigned char *Wr = weight.ptr(cy);
for (int cx = 0; cx < out.cols; ++cx) {
if (x == cx && y == cy) {
continue;
}
// create a vector from the possible center to the gradient origin
double dx = x - cx;
double dy = y - cy;
// normalize d
double magnitude = sqrt((dx * dx) + (dy * dy));
dx = dx / magnitude;
dy = dy / magnitude;
double dotProduct = dx*gx + dy*gy;
dotProduct = std::max(0.0dotProduct);
// square and multiply by the weight
if (kEnableWeight) {
Or[cx] += dotProduct * dotProduct * (Wr[cx]/kWeightDivisor);
} else {
Or[cx] += dotProduct * dotProduct;
}
}
}
}
cv::Point findEyeCenter(cv::Mat face cv::R
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 136704 2018-04-13 21:09 eyelike1.0Debugmain.exe
文件 2038180 2018-04-13 21:09 eyelike1.0Debugmain.ilk
文件 1936384 2018-04-13 21:09 eyelike1.0Debugmain.pdb
文件 47906816 2018-04-14 14:54 eyelike1.0ipchmain-e69ee443main-62bed6b1.ipch
文件 685 2017-10-17 01:07 eyelike1.0mainconstants.h
文件 10510 2018-04-13 21:09 eyelike1.0mainDebugcl.command.1.tlog
文件 89002 2018-04-13 21:09 eyelike1.0mainDebugCL.read.1.tlog
文件 6528 2018-04-13 21:09 eyelike1.0mainDebugCL.write.1.tlog
文件 267423 2018-04-13 21:09 eyelike1.0mainDebugfindEyeCenter.obj
文件 143049 2018-04-13 21:09 eyelike1.0mainDebugfindEyeCorner.obj
文件 139689 2018-04-13 21:09 eyelike1.0mainDebughelpers.obj
文件 2 2018-04-13 21:09 eyelike1.0mainDebugli
文件 2 2018-04-13 21:09 eyelike1.0mainDebugli
文件 2 2018-04-13 21:09 eyelike1.0mainDebugli
文件 2 2018-04-13 21:09 eyelike1.0mainDebugli
文件 2 2018-04-13 21:09 eyelike1.0mainDebugli
文件 2 2018-04-13 21:09 eyelike1.0mainDebugli
文件 9598 2018-04-13 21:09 eyelike1.0mainDebugli
文件 18796 2018-04-13 21:09 eyelike1.0mainDebugli
文件 3542 2018-04-13 21:09 eyelike1.0mainDebugli
文件 406 2018-03-31 14:08 eyelike1.0mainDebugmain.exe.em
文件 472 2018-04-13 21:09 eyelike1.0mainDebugmain.exe.em
文件 381 2018-04-13 21:09 eyelike1.0mainDebugmain.exe.intermediate.manifest
文件 73 2018-04-14 15:45 eyelike1.0mainDebugmain.lastbuildstate
文件 873 2018-04-14 15:45 eyelike1.0mainDebugmain.log
文件 315762 2018-04-13 21:09 eyelike1.0mainDebugmain.obj
文件 713 2018-03-31 13:52 eyelike1.0mainDebugmain.vcxprojResolveAssemblyReference.cache
文件 0 2018-03-31 13:52 eyelike1.0mainDebugmain.write.1.tlog
文件 198 2018-03-31 14:08 eyelike1.0mainDebugmain_manifest.rc
文件 1116 2018-04-13 21:09 eyelike1.0mainDebugmt.command.1.tlog
............此处省略29个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)