차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
ko:bs2_extracetemplatefaceex [2020/10/22 09:45]
kkshin
ko:bs2_extracetemplatefaceex [2022/06/30 07:21]
mark [샘플코드]
줄 4: 줄 4:
 ---- ----
  
-===== BS2_ExtraceTemplateFaceEx ​=====+===== BS2_ExtractTemplateFaceEx ​=====
 [+ 2.7.1] ''​FaceStation F2''​ 얼굴이 포함된 이미지를 가지고, template을 추출합니다. \\ [+ 2.7.1] ''​FaceStation F2''​ 얼굴이 포함된 이미지를 가지고, template을 추출합니다. \\
 AOC 카드에 template을 담기 위해 사용합니다. AOC 카드에 template을 담기 위해 사용합니다.
줄 11: 줄 11:
 #include "​BS_API.h"​ #include "​BS_API.h"​
  
-int BS2_ExtraceTemplateFaceEx(void* context, uint32_t deviceId, const uint8_t* imageData, uint32_t imageDataLen,​ bool isWarped, BS2TemplateEx* templateEx);​+int BS2_ExtractTemplateFaceEx(void* context, uint32_t deviceId, const uint8_t* imageData, uint32_t imageDataLen,​ bool isWarped, BS2TemplateEx* templateEx);​
 </​code>​ </​code>​
  
줄 27: 줄 27:
 성공적으로 수행될 경우 ''​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>​