차이

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

차이 보기로 링크

양쪽 이전 판 이전 판
ko:bs2_scanface [2022/05/25 17:05]
mark [반환값]
ko:bs2_scanface [2022/06/29 08:50] (현재)
mark [샘플코드]
줄 39: 줄 39:
  for (uint32_t index = 0; index < numFace;)  for (uint32_t index = 0; index < numFace;)
  {  {
- sdkResult = BS2_ScanFace(context_,​ id, &​ptrFace[index],​ BS2_FACE_ENROLL_THRESHOLD_DEFAULT,​ onReadyToScanFace);​+ sdkResult = BS2_ScanFace(context_,​ id, &​ptrFace[index],​ BS2_FACE_ENROLL_THRESHOLD_DEFAULT, ​ 
 +                                ​onReadyToScanFace);​
  if (BS_SDK_SUCCESS != sdkResult)  if (BS_SDK_SUCCESS != sdkResult)
  TRACE("​BS2_ScanFace call failed: %d", sdkResult);  TRACE("​BS2_ScanFace call failed: %d", sdkResult);
줄 55: 줄 56:
 C# C#
 <code cpp> <code cpp>
-private API.OnReadyToScan cbFaceOnReadyToScan = null; 
 if (faceScanSupported) if (faceScanSupported)
 { {
-    ​int numOfFace = 1+    ​Console.WriteLine("​Do you want to scan face? [y/​n]"​)
-    if (0 < numOfFace)+    ​Console.Write(">>​ "); 
 + if (Util.IsYes())
     {     {
-        ​int structSize = Marshal.SizeOf(typeof(BS2FaceExWarped)); +        ​Console.WriteLine("How many face would you like to register?"​); 
-        ​BS2FaceExWarped[] faceEx = Util.AllocateStructureArray<​BS2FaceExWarped>(1); +        ​Console.Write("​>> "); 
-        ​userBlob[0].faceExObjs = Marshal.AllocHGlobal(structSize * numOfFace); +        ​int numOfFace = Util.GetInput(1); 
-        IntPtr curFaceExObjs ​userBlob[0].faceExObjs;​ +        ​if (0 < numOfFace)
-        cbFaceOnReadyToScan = new API.OnReadyToScan(ReadyToScanForFace); +
- +
-        ​for (int index = 0; index < numOfFace;)+
         {         {
-            ​sdkResult ​(BS2ErrorCode)API.BS2_ScanFaceEx(context, deviceId, faceEx, ​(byte)BS2FaceEnrollThreshold.THRESHOLD_DEFAULT,​ cbFaceOnReadyToScan); +            ​int structSize ​Marshal.SizeOf(typeof(BS2Face)); 
-            ​if (BS2ErrorCode.BS_SDK_SUCCESS !sdkResult) +            ​BS2Face[] face Util.AllocateStructureArray<​BS2Face>​(1); 
-                Console.WriteLine("​BS2_ScanFaceEx call failed: %d", sdkResult); +            userBlob[0].faceObjs = Marshal.AllocHGlobal(structSize * numOfFace)
-            ​else + IntPtr curFaceObjs = userBlob[0].faceObjs
-            { + cbFaceOnReadyToScan = new API.OnReadyToScan(ReadyToScanForFace);
-                ​userBlob[0].user.numFaces+++
-                ​index++;​ +
-                faceEx[0].faceIndex = (byte)index+
-                ​Marshal.StructureToPtr(faceEx[0], curFaceExObjs,​ false)+
-                curFaceExObjs += structSize;+
  
-                Thread.Sleep(100); +            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;
  
-        ​cbFaceOnReadyToScan = null; +                    Thread.Sleep(100);​ 
-    }+
 +
 + 
 +            ​cbFaceOnReadyToScan = null; 
 +
 + }
 } }
-BS2_ReleaseObject(uidObj);​ 
 </​code>​ </​code>​