質問編集履歴

2

文法ミス

2020/06/20 03:33

投稿

yumiwo
yumiwo

スコア5

test CHANGED
File without changes
test CHANGED
@@ -100,9 +100,9 @@
100
100
 
101
101
  #例外処理をしたバージョンです
102
102
 
103
- try:
103
+ def cul_gravity_point(img):
104
104
 
105
- def cul_gravity_point(img):
105
+ try:
106
106
 
107
107
  mu = cv2.moments(img, False)
108
108
 
@@ -110,13 +110,13 @@
110
110
 
111
111
  return x,y
112
112
 
113
- except ZeroDivisionError:
113
+ except ZeroDivisionError:
114
114
 
115
- print("ZeroDivisionError!!")
115
+ print("ZeroDivisionError!!")
116
116
 
117
- try:
117
+ def cul_area_size(img):
118
118
 
119
- def cul_area_size(img):
119
+ try:
120
120
 
121
121
  return np.sum(np.sign(img))
122
122
 
@@ -124,9 +124,9 @@
124
124
 
125
125
  area = np.array([cul_area_size(front_imgs[i]) for i in range(len(front_imgs))])
126
126
 
127
- except ZeroDivisionError:
127
+ except ZeroDivisionError:
128
128
 
129
- print("ZeroDivisionError!!!")
129
+ print("ZeroDivisionError!!!")
130
130
 
131
131
  ```
132
132
 

1

コードの修正

2020/06/20 03:32

投稿

yumiwo
yumiwo

スコア5

test CHANGED
File without changes
test CHANGED
@@ -58,6 +58,78 @@
58
58
 
59
59
  対策として、例外処理を行ったり、if文を書いたりしてみましたが動画によってエラーが消えたり消えなかったりしました。
60
60
 
61
+
62
+
63
+
64
+
65
+ ```
66
+
67
+ #if文を入れたバージョンです
68
+
69
+
70
+
71
+ def cul_gravity_point(img):
72
+
73
+ mu = cv2.moments(img, False)
74
+
75
+ x,y= int(mu["m10"]/mu["m00"]) , int(mu["m01"]/mu["m00"])
76
+
77
+ if mu["m00"] == 0:
78
+
79
+ return float("none")
80
+
81
+ else:
82
+
83
+ return x,y
84
+
85
+ def cul_area_size(img):
86
+
87
+ return np.sum(np.sign(img))
88
+
89
+ gravity_coordinate = np.array([cul_gravity_point(front_imgs[i]) for i in range(len(front_imgs))],dtype=np.dtype("uint32"))
90
+
91
+ area = np.array([cul_area_size(front_imgs[i]) for i in range(len(front_imgs))])
92
+
93
+
94
+
95
+ ```
96
+
97
+
98
+
99
+ ```
100
+
101
+ #例外処理をしたバージョンです
102
+
103
+ try:
104
+
105
+ def cul_gravity_point(img):
106
+
107
+ mu = cv2.moments(img, False)
108
+
109
+ x,y= int(mu["m10"]/mu["m00"]) , int(mu["m01"]/mu["m00"])
110
+
111
+ return x,y
112
+
113
+ except ZeroDivisionError:
114
+
115
+ print("ZeroDivisionError!!")
116
+
117
+ try:
118
+
119
+ def cul_area_size(img):
120
+
121
+ return np.sum(np.sign(img))
122
+
123
+ gravity_coordinate = np.array([cul_gravity_point(front_imgs[i]) for i in range(len(front_imgs))],dtype=np.dtype("uint32"))
124
+
125
+ area = np.array([cul_area_size(front_imgs[i]) for i in range(len(front_imgs))])
126
+
127
+ except ZeroDivisionError:
128
+
129
+ print("ZeroDivisionError!!!")
130
+
131
+ ```
132
+
61
133
  また例外処理をした際に、ZeroDivisionErrorを返していると予想されるフレーム付近を切り取ったりしてみました。
62
134
 
63
135
  その場合は上手くコードが動いてくれるのですが、もっと良い解決策を知っている方いらっしゃれば教えてください。