| 3 | #include <inspireface/inspireface.hpp> |
| 4 | |
| 5 | int main() { |
| 6 | INSPIREFACE_CONTEXT->Reload("test_res/pack/Pikachu"); |
| 7 | // Create session |
| 8 | inspire::CustomPipelineParameter param; |
| 9 | param.enable_recognition = true; |
| 10 | param.enable_liveness = true; |
| 11 | param.enable_mask_detect = true; |
| 12 | param.enable_face_attribute = true; |
| 13 | param.enable_face_quality = true; |
| 14 | std::shared_ptr<inspire::Session> session(inspire::Session::CreatePtr(inspire::DETECT_MODE_ALWAYS_DETECT, 1, param, 320)); |
| 15 | // Prepare image |
| 16 | inspirecv::Image img = inspirecv::Image::Create("data.jpg", 3); |
| 17 | inspirecv::Image gray_img = img.ToGray(); |
| 18 | |
| 19 | // Create image and frame process |
| 20 | inspirecv::FrameProcess process = |
| 21 | inspirecv::FrameProcess::Create(gray_img.Data(), gray_img.Height(), gray_img.Width(), inspirecv::GRAY, inspirecv::ROTATION_0); |
| 22 | auto decode = process.ExecutePreviewImageProcessing(true); |
| 23 | decode.Write("decode.jpg"); |
| 24 | |
| 25 | // Detect |
| 26 | std::vector<inspire::FaceTrackWrap> results; |
| 27 | int32_t ret; |
| 28 | ret = session->FaceDetectAndTrack(process, results); |
| 29 | std::cout << "Face size: " << results.size() << std::endl; |
| 30 | for (const auto& result : results) { |
| 31 | // Draw face |
| 32 | inspirecv::Rect2i rect = inspirecv::Rect2i::Create(result.rect.x, result.rect.y, result.rect.width, result.rect.height); |
| 33 | img.DrawRect(rect, inspirecv::Color::Red); |
| 34 | } |
| 35 | img.Write("result.jpg"); |
| 36 | |
| 37 | return 0; |
| 38 | } |
nothing calls this directly
no test coverage detected