pansen
2019-04-10 ecb47d89dcb2b1d8e4be9b6cb0a84d8b49e2e3cc
QiaoJiaSystem/VptServer/VptDetectWrapper.h
@@ -63,12 +63,53 @@
};
struct CarDetectRes {
    CarDetectRes() :
        vehicle_brand(""),
        vehicle_subbrand(""),
        vehicle_issue_year(""),
        vehicle_type(""), freight_ton(""),
        vehicle_score(0), colorLabel(static_cast<ColorLabel>(-1)),
        colorLabelProb(0), carPlateRect(0, 0, 0, 0),
        carPlateRectScore(0), carPlate(""),
        carPlateScore(0), carPlatetype(-1) {}
    virtual ~CarDetectRes() {
    }
    CarDetectRes(const CarDetectRes &rhs) {
        this->vehicle_brand = rhs.vehicle_brand;              //车辆品牌
        this->vehicle_subbrand = rhs.vehicle_subbrand;           //车辆子品牌
        this->vehicle_issue_year = rhs.vehicle_issue_year;         //车辆年款
        this->vehicle_type = rhs.vehicle_type;               //车辆类型
        this->freight_ton = rhs.freight_ton;                //货车吨级
        this->vehicle_score = rhs.vehicle_score;                    //车型识别置信度
        //车颜色识别结果
        this->colorLabel = rhs.colorLabel;                  //车颜色
        this->colorLabelProb = rhs.colorLabelProb;                   //车颜色置信度
        //车牌检测结果
        this->carPlateRect = rhs.carPlateRect;                   //车牌区域
        this->carPlateRectScore = rhs.carPlateRectScore;                //车牌区域置信度
        this->carPlate = rhs.carPlate;                   //车牌
        this->carPlateScore = rhs.carPlateScore;                    //车牌置信度
        this->carPlatetype = rhs.carPlatetype;
    }
//    //车型识别结果
//    std::string vehicle_brand;              //车辆品牌
//    std::string vehicle_subbrand;           //车辆子品牌
//    std::string vehicle_issue_year;         //车辆年款
//    std::string vehicle_type;               //车辆类型
//    std::string freight_ton;                //货车吨级
    //车型识别结果
    std::string vehicle_brand;              //车辆品牌
    std::string vehicle_subbrand;           //车辆子品牌
    std::string vehicle_issue_year;         //车辆年款
    std::string vehicle_type;               //车辆类型
    std::string freight_ton;                //货车吨级
    char *vehicle_brand;              //车辆品牌
    char *vehicle_subbrand;           //车辆子品牌
    char *vehicle_issue_year;         //车辆年款
    char *vehicle_type;               //车辆类型
    char *freight_ton;                //货车吨级
    float vehicle_score;                    //车型识别置信度
    //车颜色识别结果
@@ -78,29 +119,43 @@
    //车牌检测结果
    BskRect carPlateRect;                   //车牌区域
    float carPlateRectScore;                //车牌区域置信度
    std::string carPlate;                   //车牌
//    std::string carPlate;                   //车牌
    char *carPlate;                   //车牌
    float carPlateScore;                    //车牌置信度
    int carPlatetype;
};
union VPTDetectRes {
    struct TestVPTDetectRes {
        int i;
    };
    VPTDetectRes() {
    VPTDetectRes() : testVPTDetectRes(TestVPTDetectRes()) {
    }
    VPTDetectRes(int i) {
        switch (i) {
            case 0 :
                personDetectRes.res_objs;
                break;
            case 1:
            case 2 :
                perRideCarDetectRes.res_objs;
                break;
            case 4 :
            case 5 :
            case 6 :
            case 8 :
                carDetectRes.carPlatetype = -1;
                break;
        }
    }
    ~VPTDetectRes() {
    }
    TestVPTDetectRes testVPTDetectRes;
    CarDetectRes carDetectRes;
    PersonDetectRes personDetectRes;
    PerRideCarDetectRes perRideCarDetectRes;
    CarDetectRes carDetectRes;
};
enum class SDKDetectType {
@@ -119,6 +174,8 @@
struct VptDetectResults {
public:
    VptDetectResults() {}
    VptDetectResults(int _idx) : vptDetectRes(_idx) {}
    virtual ~VptDetectResults() {}
@@ -144,8 +201,8 @@
        }
    }
    SDKDetectType sdkDetectType;
    VPTDetectRes vptDetectRes;
    SDKDetectType sdkDetectType;
    BskRect bskRect;
};
@@ -157,8 +214,7 @@
    virtual ~VptDetectWrapper();
    void process_image(cv::Mat &_img);
    list<VptDetectResults> process_image(cv::Mat &_img);
private: