| | |
| | | delete[] param; |
| | | } |
| | | THFP_Create(threadMax); |
| | | m_ampleSize = |
| | | appPref.getIntData("FaceDetectionSampleSize") > 0 ? appPref.getIntData("FaceDetectionSampleSize") : 640; |
| | | } |
| | | |
| | | FaceDetectServerI::~FaceDetectServerI() { |
| | |
| | | FaceDetect::Faces FaceDetectServerI::faceDetect(Ice::Int width, Ice::Int height, const std::string &shareMemoryName, |
| | | const Ice::Current &) { |
| | | ClockTimer ct("FaceDetectServerI::faceDetect"); |
| | | INFO("Face Detect"); |
| | | FaceDetect::Faces faces; |
| | | QSharedMemory shareMemory(QString(shareMemoryName.c_str())); |
| | | if (shareMemory.attach()) { |
| | | auto data = shareMemory.constData(); |
| | | THFI_FacePos facesPos[30]; |
| | | int channel = detectResourcesManager.getAvilableChannel(shareMemoryName); |
| | | int faceNum = THFI_DetectFace(channel, (BYTE *) data, 24, width, height, facesPos, 30); |
| | | int faceNum = THFI_DetectFace(channel, (BYTE *) data, 24, width, height, facesPos, 30, m_ampleSize); |
| | | if (faceNum > 0) { |
| | | for (int i = 0; i < faceNum; i++) { |
| | | FaceDetect::FacePos face; |
| | |
| | | |
| | | FaceDetect::ThftResult FaceDetectServerI::faceProperty(Ice::Int width, Ice::Int height, const FaceDetect::FacePos &pos, |
| | | const std::string &shareMemoryName, const Ice::Current &) { |
| | | INFO("faceProperty"); |
| | | QSharedMemory shareMemory(QString(shareMemoryName.c_str())); |
| | | if (shareMemory.attach()) { |
| | | FaceDetect::ThftResult thftResult; |
| | |
| | | } |
| | | return thftResult; |
| | | } else { |
| | | throw std::runtime_error("shareMemory attach faild"); |
| | | ERR("shareMemory error " << shareMemoryName); |
| | | // throw std::runtime_error("shareMemory attach faild"); |
| | | } |
| | | } |