質問編集履歴
2
文法ミス
    
        title	
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -49,20 +49,20 @@ 
     | 
|
| 
       49 
49 
     | 
    
         | 
| 
       50 
50 
     | 
    
         
             
            ```
         
     | 
| 
       51 
51 
     | 
    
         
             
            #例外処理をしたバージョンです
         
     | 
| 
      
 52 
     | 
    
         
            +
            def cul_gravity_point(img):
         
     | 
| 
       52 
     | 
    
         
            -
            try:
         
     | 
| 
      
 53 
     | 
    
         
            +
                try:
         
     | 
| 
       53 
     | 
    
         
            -
                def cul_gravity_point(img):
         
     | 
| 
       54 
54 
     | 
    
         
             
                    mu = cv2.moments(img, False)
         
     | 
| 
       55 
55 
     | 
    
         
             
                    x,y= int(mu["m10"]/mu["m00"]) , int(mu["m01"]/mu["m00"])
         
     | 
| 
       56 
56 
     | 
    
         
             
                    return x,y
         
     | 
| 
       57 
     | 
    
         
            -
            except ZeroDivisionError:
         
     | 
| 
      
 57 
     | 
    
         
            +
                except ZeroDivisionError:
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
      
 58 
     | 
    
         
            +
                    print("ZeroDivisionError!!")
         
     | 
| 
      
 59 
     | 
    
         
            +
            def cul_area_size(img):
         
     | 
| 
       59 
     | 
    
         
            -
            try:
         
     | 
| 
      
 60 
     | 
    
         
            +
                try:
         
     | 
| 
       60 
     | 
    
         
            -
                def cul_area_size(img):
         
     | 
| 
       61 
61 
     | 
    
         
             
                    return np.sum(np.sign(img))
         
     | 
| 
       62 
62 
     | 
    
         
             
                    gravity_coordinate = np.array([cul_gravity_point(front_imgs[i]) for i in range(len(front_imgs))],dtype=np.dtype("uint32"))
         
     | 
| 
       63 
63 
     | 
    
         
             
                    area = np.array([cul_area_size(front_imgs[i]) for i in range(len(front_imgs))])
         
     | 
| 
       64 
     | 
    
         
            -
            except ZeroDivisionError:
         
     | 
| 
      
 64 
     | 
    
         
            +
                except ZeroDivisionError:
         
     | 
| 
       65 
     | 
    
         
            -
             
     | 
| 
      
 65 
     | 
    
         
            +
                    print("ZeroDivisionError!!!")
         
     | 
| 
       66 
66 
     | 
    
         
             
            ```
         
     | 
| 
       67 
67 
     | 
    
         
             
            また例外処理をした際に、ZeroDivisionErrorを返していると予想されるフレーム付近を切り取ったりしてみました。
         
     | 
| 
       68 
68 
     | 
    
         
             
            その場合は上手くコードが動いてくれるのですが、もっと良い解決策を知っている方いらっしゃれば教えてください。
         
     | 
1
コードの修正
    
        title	
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        body	
    CHANGED
    
    | 
         @@ -28,6 +28,42 @@ 
     | 
|
| 
       28 
28 
     | 
    
         
             
            ```
         
     | 
| 
       29 
29 
     | 
    
         | 
| 
       30 
30 
     | 
    
         
             
            対策として、例外処理を行ったり、if文を書いたりしてみましたが動画によってエラーが消えたり消えなかったりしました。
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            ```
         
     | 
| 
      
 34 
     | 
    
         
            +
            #if文を入れたバージョンです
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
            def cul_gravity_point(img):
         
     | 
| 
      
 37 
     | 
    
         
            +
                mu = cv2.moments(img, False)
         
     | 
| 
      
 38 
     | 
    
         
            +
                x,y= int(mu["m10"]/mu["m00"]) , int(mu["m01"]/mu["m00"])
         
     | 
| 
      
 39 
     | 
    
         
            +
                if mu["m00"] == 0:
         
     | 
| 
      
 40 
     | 
    
         
            +
                    return float("none")
         
     | 
| 
      
 41 
     | 
    
         
            +
                else:
         
     | 
| 
      
 42 
     | 
    
         
            +
                    return x,y
         
     | 
| 
      
 43 
     | 
    
         
            +
            def cul_area_size(img):
         
     | 
| 
      
 44 
     | 
    
         
            +
                return np.sum(np.sign(img))
         
     | 
| 
      
 45 
     | 
    
         
            +
                gravity_coordinate = np.array([cul_gravity_point(front_imgs[i]) for i in range(len(front_imgs))],dtype=np.dtype("uint32"))
         
     | 
| 
      
 46 
     | 
    
         
            +
                area = np.array([cul_area_size(front_imgs[i]) for i in range(len(front_imgs))])
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
            ```
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
            ```
         
     | 
| 
      
 51 
     | 
    
         
            +
            #例外処理をしたバージョンです
         
     | 
| 
      
 52 
     | 
    
         
            +
            try:
         
     | 
| 
      
 53 
     | 
    
         
            +
                def cul_gravity_point(img):
         
     | 
| 
      
 54 
     | 
    
         
            +
                    mu = cv2.moments(img, False)
         
     | 
| 
      
 55 
     | 
    
         
            +
                    x,y= int(mu["m10"]/mu["m00"]) , int(mu["m01"]/mu["m00"])
         
     | 
| 
      
 56 
     | 
    
         
            +
                    return x,y
         
     | 
| 
      
 57 
     | 
    
         
            +
            except ZeroDivisionError:
         
     | 
| 
      
 58 
     | 
    
         
            +
                print("ZeroDivisionError!!")
         
     | 
| 
      
 59 
     | 
    
         
            +
            try:
         
     | 
| 
      
 60 
     | 
    
         
            +
                def cul_area_size(img):
         
     | 
| 
      
 61 
     | 
    
         
            +
                    return np.sum(np.sign(img))
         
     | 
| 
      
 62 
     | 
    
         
            +
                    gravity_coordinate = np.array([cul_gravity_point(front_imgs[i]) for i in range(len(front_imgs))],dtype=np.dtype("uint32"))
         
     | 
| 
      
 63 
     | 
    
         
            +
                    area = np.array([cul_area_size(front_imgs[i]) for i in range(len(front_imgs))])
         
     | 
| 
      
 64 
     | 
    
         
            +
            except ZeroDivisionError:
         
     | 
| 
      
 65 
     | 
    
         
            +
                print("ZeroDivisionError!!!")
         
     | 
| 
      
 66 
     | 
    
         
            +
            ```
         
     | 
| 
       31 
67 
     | 
    
         
             
            また例外処理をした際に、ZeroDivisionErrorを返していると予想されるフレーム付近を切り取ったりしてみました。
         
     | 
| 
       32 
68 
     | 
    
         
             
            その場合は上手くコードが動いてくれるのですが、もっと良い解決策を知っている方いらっしゃれば教えてください。
         
     | 
| 
       33 
69 
     | 
    
         |