派生自 development/c++

xuxiuxi
2019-03-08 9a0afe1ccce6fd3a6882b4c19b72cee579a54dd1
QiaoJiaSystem/FaceDetectServer/FaceDetectServerI.cpp
@@ -32,6 +32,8 @@
        delete[] param;
    }
    THFP_Create(threadMax);
    m_ampleSize =
        appPref.getIntData("FaceDetectionSampleSize") > 0 ? appPref.getIntData("FaceDetectionSampleSize") : 640;
}
FaceDetectServerI::~FaceDetectServerI() {
@@ -42,13 +44,14 @@
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;
@@ -70,6 +73,7 @@
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;
@@ -86,6 +90,7 @@
        }
        return thftResult;
    } else {
        throw std::runtime_error("shareMemory attach faild");
        ERR("shareMemory error  " << shareMemoryName);
//        throw std::runtime_error("shareMemory attach faild");
    }
}