Browse Source

add callback for analyzer and change init args.

lyc8503 4 years ago
parent
commit
3e011219a5
1 changed files with 16 additions and 10 deletions
  1. 16 10
      backend_refactor/service/photo/StandingPhotoAnalyzer.py

+ 16 - 10
backend_refactor/service/photo/StandingPhotoAnalyzer.py

@@ -22,18 +22,24 @@ class StandingPhotoAnalyzer(BasePhotoAnalyzer):
         assert len(self.args) == 2, "Invalid arguments: expect 2 photo uuids."
         assert len(self.args) == 2, "Invalid arguments: expect 2 photo uuids."
         self.args = args
         self.args = args
 
 
-    def analyze(self):
-        for i in self.args:
-            test_image = UPLOAD_DIR + '{}.jpg'.format(i)
+    def analyze(self, callback: function) -> None:
+        callback("RUNNING")
+        try:
+            for i in self.args:
+                test_image = UPLOAD_DIR + '{}.jpg'.format(i)
 
 
-            ori_img = cv2.imread(test_image)  # B,G,R order
+                ori_img = cv2.imread(test_image)  # B,G,R order
 
 
-            tp = torch_openpose('body_25')
-            poses = tp(ori_img)
+                tp = torch_openpose('body_25')
+                poses = tp(ori_img)
 
 
-            np.save(UPLOAD_DIR + '{}.npy'.format(i), poses)
+                np.save(UPLOAD_DIR + '{}.npy'.format(i), poses)
 
 
-            canvas = copy.deepcopy(ori_img)
-            canvas = src1.util.draw_bodypose(canvas, poses, 'body_25')
+                canvas = copy.deepcopy(ori_img)
+                canvas = src1.util.draw_bodypose(canvas, poses, 'body_25')
 
 
-            cv2.imwrite(UPLOAD_DIR + '{}-result.jpg'.format(i), canvas)
+                cv2.imwrite(UPLOAD_DIR + '{}-result.jpg'.format(i), canvas)
+                callback("FINISH", result={"photos": {}, "text": {}})
+        except Exception as e:
+            callback("ERROR", error=e)
+            raise e