From 2607f7b315337337099f3f1c690d4fbee13698ff Mon Sep 17 00:00:00 2001 From: Josh Klontz Date: Mon, 11 Feb 2013 11:56:17 -0500 Subject: [PATCH] PP5 works on grayscale images --- sdk/plugins/misc.cpp | 4 +++- sdk/plugins/pp5.cpp | 9 ++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/sdk/plugins/misc.cpp b/sdk/plugins/misc.cpp index cca0f2c..e0a759d 100644 --- a/sdk/plugins/misc.cpp +++ b/sdk/plugins/misc.cpp @@ -100,7 +100,7 @@ class PrintTransform : public UntrainableMetaTransform Q_OBJECT Q_PROPERTY(bool error READ get_error WRITE set_error RESET reset_error) Q_PROPERTY(bool data READ get_data WRITE set_data RESET reset_data) - BR_PROPERTY(bool, error, false) + BR_PROPERTY(bool, error, true) BR_PROPERTY(bool, data, false) void project(const Template &src, Template &dst) const @@ -288,6 +288,8 @@ class RenameTransform : public UntrainableMetaTransform } }; +BR_REGISTER(Transform, RenameTransform) + /*! * \ingroup transforms * \brief Rename first found metadata key diff --git a/sdk/plugins/pp5.cpp b/sdk/plugins/pp5.cpp index 321f2f0..6ca3ea4 100644 --- a/sdk/plugins/pp5.cpp +++ b/sdk/plugins/pp5.cpp @@ -47,6 +47,7 @@ class PP5Initializer : public Initializer { TRY(ppr_initialize_sdk(qPrintable(Globals->sdkPath + "/share/openbr/models/pp5/"), my_license_id, my_license_key)) Globals->abbreviations.insert("PP5","Open+PP5Enroll!Identity:PP5Compare"); + 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"); } void finalize() const @@ -96,9 +97,11 @@ struct PP5Context static void createRawImage(const cv::Mat &src, ppr_raw_image_type &dst) { - ppr_raw_image_create(&dst, src.cols, src.rows, PPR_RAW_IMAGE_BGR24); - assert((src.type() == CV_8UC3) && src.isContinuous()); - memcpy(dst.data, src.data, 3*src.rows*src.cols); + if (!src.isContinuous()) qFatal("PP5Context::createRawImage requires continuous data."); + if (src.channels() == 3) ppr_raw_image_create(&dst, src.cols, src.rows, PPR_RAW_IMAGE_BGR24); + else if (src.channels() == 1) ppr_raw_image_create(&dst, src.cols, src.rows, PPR_RAW_IMAGE_GRAY8); + else qFatal("PP5Context::createRawImage invalid channel count."); + memcpy(dst.data, src.data, src.channels()*src.rows*src.cols); } void createMat(const ppr_face_type &src, cv::Mat &dst) const -- libgit2 0.21.4