차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
ko:bs2_scanface [2020/10/22 09:42]
kkshin
ko:bs2_scanface [2022/06/29 08:50] (현재)
mark [샘플코드]
줄 25: 줄 25:
 성공적으로 수행될 경우 ''​BS_SDK_SUCCESS''​를 반환하고,​ 에러가 발생할 경우 상응하는 에러 코드를 반환합니다. ​ 성공적으로 수행될 경우 ''​BS_SDK_SUCCESS''​를 반환하고,​ 에러가 발생할 경우 상응하는 에러 코드를 반환합니다. ​
 \\  ​ \\  ​
 +==== 샘플코드 ====
 +C++
 +<code cpp>
 +if (faceScanSupported)
 +{
 + if (Utility::​isYes("​Do you want to scan face?"​))
 + {
 + uint32_t numFace = Utility::​getInput<​uint32_t>​("​How many face would you like to register?"​);​
 + BS2Face* ptrFace = new BS2Face[numFace];​
 + if (ptrFace)
 + {
 + userBlob.faceObjs = ptrFace;
 + for (uint32_t index = 0; index < numFace;)
 + {
 + sdkResult = BS2_ScanFace(context_,​ id, &​ptrFace[index],​ BS2_FACE_ENROLL_THRESHOLD_DEFAULT, ​
 +                                onReadyToScanFace);​
 + if (BS_SDK_SUCCESS != sdkResult)
 + TRACE("​BS2_ScanFace call failed: %d", sdkResult);
 + else
 + {
 + user.numFaces++;​
 + index++;​
 + }
 + }
 + }
 + }
 +}
 +BS2_ReleaseObject(uidObj);​
 +</​code>​
 +C#
 +<code cpp>
 +if (faceScanSupported)
 +{
 +    Console.WriteLine("​Do you want to scan face? [y/​n]"​);​
 +    Console.Write(">>​ ");
 + if (Util.IsYes())
 +    {
 +        Console.WriteLine("​How many face would you like to register?"​);​
 +        Console.Write(">>​ ");
 +        int numOfFace = Util.GetInput(1);​
 +        if (0 < numOfFace)
 +        {
 +            int structSize = Marshal.SizeOf(typeof(BS2Face));​
 +            BS2Face[] face = Util.AllocateStructureArray<​BS2Face>​(1);​
 +            userBlob[0].faceObjs = Marshal.AllocHGlobal(structSize * numOfFace);
 + IntPtr curFaceObjs = userBlob[0].faceObjs;​
 + cbFaceOnReadyToScan = new API.OnReadyToScan(ReadyToScanForFace);​
  
 +            for (int index = 0; index < numOfFace;)
 + {
 + sdkResult = (BS2ErrorCode)API.BS2_ScanFace(sdkContext,​ deviceID, face, (byte)BS2FaceEnrollThreshold.THRESHOLD_DEFAULT,​ cbFaceOnReadyToScan);​
 + if (BS2ErrorCode.BS_SDK_SUCCESS != sdkResult)
 + Console.WriteLine("​BS2_ScanFace call failed: %d", sdkResult);
 + else
 + {
 +                    userBlob[0].user.numFaces++;​
 + index++;​
 +                    face[0].faceIndex = (byte)index;​
 +                    Marshal.StructureToPtr(face[0],​ curFaceObjs,​ false);
 +                    curFaceObjs += structSize;
 +
 +                    Thread.Sleep(100);​
 + }
 + }
 +
 +            cbFaceOnReadyToScan = null;
 + }
 + }
 +}
 +</​code>​