@@ -28,8 +28,8 @@ cv::Scalar generateColor(int id) {
2828 int maxID = 100 ;
2929 id = id % maxID;
3030
31- int hue = (id * 360 / maxID) % 360 ;
32- int saturation = 255 ;
31+ int hue = (id * 360 / maxID) % 360 ;
32+ int saturation = 255 ;
3333 int value = 200 ;
3434
3535 cv::Mat hsv (1 , 1 , CV_8UC3, cv::Scalar (hue, saturation, value));
@@ -40,7 +40,6 @@ cv::Scalar generateColor(int id) {
4040 return cv::Scalar (rgbColor[0 ], rgbColor[1 ], rgbColor[2 ]);
4141}
4242
43-
4443int main (int argc, char * argv[]) {
4544 // Check whether the number of parameters is correct
4645 if (argc != 3 ) {
@@ -107,11 +106,11 @@ int main(int argc, char* argv[]) {
107106 while (cap.read (frame)) {
108107 // Prepare an image parameter structure for configuration
109108 HFImageData imageParam = {0 };
110- imageParam.data = frame.data ; // Data buffer
111- imageParam.width = frame.cols ; // Target view width
112- imageParam.height = frame.rows ; // Target view width
113- imageParam.rotation = HF_CAMERA_ROTATION_0; // Data source rotate
114- imageParam.format = HF_STREAM_BGR; // Data source format
109+ imageParam.data = frame.data ; // Data buffer
110+ imageParam.width = frame.cols ; // Target view width
111+ imageParam.height = frame.rows ; // Target view width
112+ imageParam.rotation = HF_CAMERA_ROTATION_0; // Data source rotate
113+ imageParam.format = HF_STREAM_BGR; // Data source format
115114
116115 // Create an image data stream
117116 HFImageStream imageHandle = {0 };
@@ -122,11 +121,11 @@ int main(int argc, char* argv[]) {
122121 }
123122
124123 // Execute HF_FaceContextRunFaceTrack captures face information in an image
125- double time = (double ) cv::getTickCount ();
124+ double time = (double )cv::getTickCount ();
126125 HFMultipleFaceData multipleFaceData = {0 };
127126 ret = HFExecuteFaceTrack (session, imageHandle, &multipleFaceData);
128- time = ((double ) cv::getTickCount () - time) / cv::getTickFrequency ();
129- std::cout << " use time:" << time << " 秒 \n " ;
127+ time = ((double )cv::getTickCount () - time) / cv::getTickFrequency ();
128+ std::cout << " use time:" << time << " s \n " ;
130129 if (ret != HSUCCEED) {
131130 std::cout << " Execute HFExecuteFaceTrack error: " << ret << std::endl;
132131 return ret;
@@ -143,32 +142,29 @@ int main(int argc, char* argv[]) {
143142 drawMode (draw, detMode);
144143 if (faceNum > 0 ) {
145144 ret = HFMultipleFacePipelineProcessOptional (session, imageHandle, &multipleFaceData, option);
146- if (ret != HSUCCEED)
147- {
145+ if (ret != HSUCCEED) {
148146 std::cout << " HFMultipleFacePipelineProcessOptional error: " << ret << std::endl;
149147 return ret;
150148 }
151149 HFFaceIntereactionState result;
152150 ret = HFGetFaceIntereactionStateResult (session, &result);
153- if (ret != HSUCCEED)
154- {
151+ if (ret != HSUCCEED) {
155152 std::cout << " HFGetFaceIntereactionStateResult error: " << ret << std::endl;
156153 return ret;
157154 }
158155 std::cout << " Left eye status: " << result.leftEyeStatusConfidence [0 ] << std::endl;
159156 std::cout << " Righ eye status: " << result.rightEyeStatusConfidence [0 ] << std::endl;
160-
161157 }
162-
158+
163159 for (int index = 0 ; index < faceNum; ++index) {
164160 // std::cout << "========================================" << std::endl;
165161 // std::cout << "Process face index: " << index << std::endl;
166162 // Print FaceID, In VIDEO-MODE it is fixed, but it may be lost
167163 auto trackId = multipleFaceData.trackIds [index];
168164
169165 // Use OpenCV's Rect to receive face bounding boxes
170- auto rect = cv::Rect (multipleFaceData.rects [index].x , multipleFaceData.rects [index].y ,
171- multipleFaceData.rects [index].width , multipleFaceData. rects [index]. height );
166+ auto rect = cv::Rect (multipleFaceData.rects [index].x , multipleFaceData.rects [index].y , multipleFaceData. rects [index]. width ,
167+ multipleFaceData.rects [index].height );
172168 cv::rectangle (draw, rect, generateColor (trackId), 3 );
173169
174170 // std::cout << "FaceID: " << trackId << std::endl;
@@ -179,8 +175,8 @@ int main(int argc, char* argv[]) {
179175 // << ", Pitch: " << multipleFaceData.angles.pitch[index] << std::endl;
180176
181177 // Add TrackID to the drawing
182- cv::putText (draw, " ID: " + std::to_string (trackId), cv::Point (rect.x , rect.y - 10 ),
183- cv::FONT_HERSHEY_SIMPLEX, 0.5 , generateColor (trackId), 2 );
178+ cv::putText (draw, " ID: " + std::to_string (trackId), cv::Point (rect.x , rect.y - 10 ), cv::FONT_HERSHEY_SIMPLEX, 0.5 , generateColor (trackId),
179+ 2 );
184180
185181 HInt32 numOfLmk;
186182 HFGetNumOfFaceDenseLandmark (&numOfLmk);
@@ -195,7 +191,7 @@ int main(int argc, char* argv[]) {
195191 cv::circle (draw, p, 0 , generateColor (trackId), 2 );
196192 }
197193 }
198-
194+
199195 cv::imshow (" w" , draw);
200196 cv::waitKey (1 );
201197
0 commit comments