怎么使用Seetaface6中一些数据结构
Closed this issue · 0 comments
github2016-yuan commented
你好,在用你的封装,效果很好,就是活体检测假脸判断很多时候都是错的。
我现在主要的问题是:如何在python中使用Seetaface6中的一些数据结构:
例如下面一段代码(C++)
double eyeSpan = sqrt(pow((points[1].x - points[0].x), 2) + pow((points[1].y - points[0].y), 2));
//seeta::Size eyeSize(99, 99);
seeta::Size eyeSize(102, 102);
//·ÀÖ¹±ß½çÒç³ö
int leftEyePointX = std::max(int(points[0].x - eyeSpan / 2), 0);
int leftEyePointY = std::max(int(points[0].y - eyeSpan / 2), 0);
leftEyePointX = std::min(int(image.width - eyeSpan / 2), leftEyePointX);
leftEyePointY = std::min(int(image.height - eyeSpan / 2), leftEyePointY);
double leftEyeSpanTemp = std::max(int(eyeSpan) , 1);
int leftEyeSpanX = (leftEyePointX + leftEyeSpanTemp > image.width - 1) ? image.width - 1 - leftEyePointX: leftEyeSpanTemp;
int leftEyeSpanY = (leftEyePointY + leftEyeSpanTemp > image.height - 1) ? image.height - 1 - leftEyePointY : leftEyeSpanTemp;
leftEyeSpanTemp = std::min(int(leftEyeSpanX), int(leftEyeSpanY));
int rightEyePointX = std::max(int(points[1].x - eyeSpan / 2), 0);
int rightEyePointY = std::max(int(points[1].y - eyeSpan / 2), 0);
rightEyePointX = std::min(int(image.width - eyeSpan / 2), rightEyePointX);
rightEyePointY = std::min(int(image.height - eyeSpan / 2), rightEyePointY);
double rightEyeSpanTemp = std::max(int(eyeSpan) , 1);
int rightEyeSpanX = (rightEyePointX + rightEyeSpanTemp > image.width - 1) ? image.width - 1 - rightEyePointX: rightEyeSpanTemp;
int rightEyeSpanY = (rightEyePointY + rightEyeSpanTemp > image.height - 1) ? image.height - 1 - rightEyePointY : rightEyeSpanTemp;
rightEyeSpanTemp = std::min(int(rightEyeSpanX), int(rightEyeSpanY));
//std::cout << "----x:" << leftEyePointX << ", y:" << leftEyePointY << ",width:" << leftEyeSpanTemp;
//std::cout << " x:" << rightEyePointX << ", y:" << rightEyePointY << ",width:" << rightEyeSpanTemp << std::endl << std::endl;
seeta::Image leftEye = seeta::crop_resize(simage, seeta::Rect(leftEyePointX, leftEyePointY, leftEyeSpanTemp, leftEyeSpanTemp), eyeSize);
seeta::Image rightEye = seeta::crop_resize(simage, seeta::Rect(rightEyePointX, rightEyePointY, rightEyeSpanTemp, rightEyeSpanTemp), eyeSize);
leftstate = (EYE_STATE) m_impl->detect(leftEye);
rightstate = (EYE_STATE) m_impl->detect(rightEye);
我在改写成python的时候,基本的数学计算还好改,但是涉及到数据结构的时候,一直没找到python下对应的
seeta::Image
seeta::crop_resize
可以给点建议吗?