차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
|
ko:bs2_extracetemplatefaceex [2022/06/30 07:21] mark [샘플코드] |
ko:bs2_extracetemplatefaceex [2024/05/28 19:47] (현재) kkshin |
||
|---|---|---|---|
| 줄 5: | 줄 5: | ||
| ===== BS2_ExtractTemplateFaceEx ===== | ===== BS2_ExtractTemplateFaceEx ===== | ||
| - | [+ 2.7.1] ''FaceStation F2'' 얼굴이 포함된 이미지를 가지고, template을 추출합니다. \\ | + | [+ 2.7.1] ''Visual Face 기반'' 얼굴이 포함된 이미지를 가지고, template을 추출합니다. \\ |
| AOC 카드에 template을 담기 위해 사용합니다. | AOC 카드에 template을 담기 위해 사용합니다. | ||
| + | <callout type="warning" icon="true"> | ||
| + | **주의 사항** \\ | ||
| + | [[BS2_GetNormalizedImageFaceEx]]를 통해 추출된 이미지를 전달하여야 합니다. | ||
| + | </callout> | ||
| + | |||
| ==== 함수 ==== | ==== 함수 ==== | ||
| <code cpp> | <code cpp> | ||
| 줄 27: | 줄 32: | ||
| 성공적으로 수행될 경우 ''BS_SDK_SUCCESS''를 반환하고, 에러가 발생할 경우 상응하는 에러 코드를 반환합니다. | 성공적으로 수행될 경우 ''BS_SDK_SUCCESS''를 반환하고, 에러가 발생할 경우 상응하는 에러 코드를 반환합니다. | ||
| \\ | \\ | ||
| - | ==== 샘플코드 ==== | ||
| - | C++ | ||
| - | <code cpp> | ||
| - | int UserControl::extractTemplateFaceEx(BS2_DEVICE_ID id, BS2TemplateEx& templateEx) | ||
| - | { | ||
| - | BS2SimpleDeviceInfoEx deviceInfoEx = { 0, }; | ||
| - | |||
| - | int sdkResult = BS2_GetDeviceInfoEx(context_, id, NULL, &deviceInfoEx); | ||
| - | if (BS_SDK_SUCCESS != sdkResult) | ||
| - | { | ||
| - | TRACE("BS2_GetDeviceInfoEx call failed: %d", sdkResult); | ||
| - | return sdkResult; | ||
| - | } | ||
| - | |||
| - | bool faceExScanSupported = (deviceInfoEx.supported & BS2SimpleDeviceInfoEx::BS2_SUPPORT_FACE_EX_SCAN) == | ||
| - | BS2SimpleDeviceInfoEx::BS2_SUPPORT_FACE_EX_SCAN; | ||
| - | if (faceExScanSupported) | ||
| - | { | ||
| - | try | ||
| - | { | ||
| - | if (Utility::isYes("Do you want to extract faceEx template from image?")) | ||
| - | { | ||
| - | string imagePath = Utility::getInput<string>("Enter the face image path and name:");//C:\88withphone.jpg | ||
| - | uint32_t size = Utility::getResourceSize(imagePath); | ||
| - | shared_ptr<uint8_t> buffer(new uint8_t[size], ArrayDeleter<uint8_t>()); | ||
| - | |||
| - | size_t dataOffset = offsetof(BS2FaceEx, rawImageData); | ||
| - | size_t faceSize = dataOffset + size; | ||
| - | if (Utility::getResourceFromFile(imagePath, buffer, size)) | ||
| - | { | ||
| - | sdkResult = BS2_ExtractTemplateFaceEx(context_, id, buffer.get(), size, 0, &templateEx); | ||
| - | if (BS_SDK_SUCCESS != sdkResult) | ||
| - | { | ||
| - | TRACE("BS2_ExtractTemplateFaceEx call failed: %d", sdkResult); | ||
| - | return sdkResult; | ||
| - | } | ||
| - | print(templateEx); | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | catch (const std::exception&) | ||
| - | { | ||
| - | |||
| - | } | ||
| - | } | ||
| - | |||
| - | return sdkResult; | ||
| - | } | ||
| - | BS2_ReleaseObject(uidObj); | ||
| - | </code> | ||