Commit 2607f7b315337337099f3f1c690d4fbee13698ff
1 parent
66001a71
PP5 works on grayscale images
Showing
2 changed files
with
9 additions
and
4 deletions
sdk/plugins/misc.cpp
| ... | ... | @@ -100,7 +100,7 @@ class PrintTransform : public UntrainableMetaTransform |
| 100 | 100 | Q_OBJECT |
| 101 | 101 | Q_PROPERTY(bool error READ get_error WRITE set_error RESET reset_error) |
| 102 | 102 | Q_PROPERTY(bool data READ get_data WRITE set_data RESET reset_data) |
| 103 | - BR_PROPERTY(bool, error, false) | |
| 103 | + BR_PROPERTY(bool, error, true) | |
| 104 | 104 | BR_PROPERTY(bool, data, false) |
| 105 | 105 | |
| 106 | 106 | void project(const Template &src, Template &dst) const |
| ... | ... | @@ -288,6 +288,8 @@ class RenameTransform : public UntrainableMetaTransform |
| 288 | 288 | } |
| 289 | 289 | }; |
| 290 | 290 | |
| 291 | +BR_REGISTER(Transform, RenameTransform) | |
| 292 | + | |
| 291 | 293 | /*! |
| 292 | 294 | * \ingroup transforms |
| 293 | 295 | * \brief Rename first found metadata key | ... | ... |
sdk/plugins/pp5.cpp
| ... | ... | @@ -47,6 +47,7 @@ class PP5Initializer : public Initializer |
| 47 | 47 | { |
| 48 | 48 | TRY(ppr_initialize_sdk(qPrintable(Globals->sdkPath + "/share/openbr/models/pp5/"), my_license_id, my_license_key)) |
| 49 | 49 | Globals->abbreviations.insert("PP5","Open+PP5Enroll!Identity:PP5Compare"); |
| 50 | + Globals->abbreviations.insert("CropFace", "Open+Cvt(Gray)+PP5Enroll(true)+Rename(PP5_Landmark0_Right_Eye_X,Affine_0_X)+Rename(PP5_Landmark0_Right_Eye_Y,Affine_0_Y)+Rename(PP5_Landmark1_Left_Eye_X,Affine_1_X)+Rename(PP5_Landmark1_Left_Eye_Y,Affine_1_Y)+Affine(96,128,0.28,0.45)+Show"); | |
| 50 | 51 | } |
| 51 | 52 | |
| 52 | 53 | void finalize() const |
| ... | ... | @@ -96,9 +97,11 @@ struct PP5Context |
| 96 | 97 | |
| 97 | 98 | static void createRawImage(const cv::Mat &src, ppr_raw_image_type &dst) |
| 98 | 99 | { |
| 99 | - ppr_raw_image_create(&dst, src.cols, src.rows, PPR_RAW_IMAGE_BGR24); | |
| 100 | - assert((src.type() == CV_8UC3) && src.isContinuous()); | |
| 101 | - memcpy(dst.data, src.data, 3*src.rows*src.cols); | |
| 100 | + if (!src.isContinuous()) qFatal("PP5Context::createRawImage requires continuous data."); | |
| 101 | + if (src.channels() == 3) ppr_raw_image_create(&dst, src.cols, src.rows, PPR_RAW_IMAGE_BGR24); | |
| 102 | + else if (src.channels() == 1) ppr_raw_image_create(&dst, src.cols, src.rows, PPR_RAW_IMAGE_GRAY8); | |
| 103 | + else qFatal("PP5Context::createRawImage invalid channel count."); | |
| 104 | + memcpy(dst.data, src.data, src.channels()*src.rows*src.cols); | |
| 102 | 105 | } |
| 103 | 106 | |
| 104 | 107 | void createMat(const ppr_face_type &src, cv::Mat &dst) const | ... | ... |