Skip to content

Commit 73f9566

Browse files
committed
非同期描画におけるノード削除時の不正終了対応。
1 parent e0a593d commit 73f9566

34 files changed

+296
-208
lines changed

node/analysis_node/node_fps.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
import dearpygui.dearpygui as dpg
77

8+
from node_editor.util import dpg_get_value, dpg_set_value
9+
810
from node.node_abc import DpgNodeABC
911

1012

@@ -123,7 +125,7 @@ def update(
123125
destination_tag = connection_info[1] + 'Value'
124126

125127
# 値更新
126-
input_value = dpg.get_value(source_tag)
128+
input_value = dpg_get_value(source_tag)
127129

128130
# 数値のみを抽出
129131
input_value = re.sub(r'\D', '', input_value)
@@ -159,7 +161,7 @@ def update(
159161
4) + 'ms)'
160162

161163
# テキスト更新
162-
dpg.set_value(destination_tag, text)
164+
dpg_set_value(destination_tag, text)
163165

164166
# 全スロットの合計時間
165167
total_elapsed_time += average_elapsed_time
@@ -175,8 +177,8 @@ def update(
175177
text += '{:.2f}'.format(fps).zfill(3)
176178
# text += ' (' + '{:.0f}'.format(total_elapsed_time).zfill(4) + 'ms)'
177179

178-
dpg.set_value(output_value01_tag, text)
179-
dpg.set_value(
180+
dpg_set_value(output_value01_tag, text)
181+
dpg_set_value(
180182
output_value02_tag,
181183
'{:.0f}'.format(total_elapsed_time).zfill(4) + 'ms',
182184
)

node/analysis_node/node_rgb_histgram.py

+9-6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import numpy as np
55
import dearpygui.dearpygui as dpg
66

7+
from node_editor.util import dpg_get_value, dpg_set_value
8+
79
from node.node_abc import DpgNodeABC
810

911

@@ -128,15 +130,16 @@ def update(
128130
r_histgram = cv2.calcHist([frame], [2], None, [256], [0, 256])
129131

130132
# ヒストグラム反映
131-
dpg.set_value(tag_node_input01_value_name + 'line_b',
133+
dpg_set_value(tag_node_input01_value_name + 'line_b',
132134
[self._default_xdata, b_histgram.T[0]])
133-
dpg.set_value(tag_node_input01_value_name + 'line_g',
135+
dpg_set_value(tag_node_input01_value_name + 'line_g',
134136
[self._default_xdata, g_histgram.T[0]])
135-
dpg.set_value(tag_node_input01_value_name + 'line_r',
137+
dpg_set_value(tag_node_input01_value_name + 'line_r',
136138
[self._default_xdata, r_histgram.T[0]])
137-
dpg.set_axis_limits(
138-
tag_node_input01_value_name + 'yaxis', 0,
139-
int(np.sum(b_histgram.T[0]) / self._yaxis_divide_value))
139+
if dpg.does_item_exist(tag_node_input01_value_name + 'yaxis'):
140+
dpg.set_axis_limits(
141+
tag_node_input01_value_name + 'yaxis', 0,
142+
int(np.sum(b_histgram.T[0]) / self._yaxis_divide_value))
140143

141144
result = {}
142145
result['r_histgram'] = list(r_histgram.T[0])

node/deep_learning_node/node_classification.py

+10-8
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import numpy as np
77
import dearpygui.dearpygui as dpg
88

9+
from node_editor.util import dpg_get_value, dpg_set_value
10+
911
from node.node_abc import DpgNodeABC
1012
from node_editor.util import convert_cv_to_dpg
1113

@@ -186,10 +188,10 @@ def update(
186188
source_tag = connection_info[0] + 'Value'
187189
destination_tag = connection_info[1] + 'Value'
188190
# 値更新
189-
input_value = int(dpg.get_value(source_tag))
191+
input_value = int(dpg_get_value(source_tag))
190192
input_value = max([self._min_val, input_value])
191193
input_value = min([self._max_val, input_value])
192-
dpg.set_value(destination_tag, input_value)
194+
dpg_set_value(destination_tag, input_value)
193195
if connection_type == self.TYPE_IMAGE:
194196
# 画像取得元のノード名(ID付き)を取得
195197
connection_info_src = connection_info[0]
@@ -201,10 +203,10 @@ def update(
201203
frame = node_image_dict.get(connection_info_src, None)
202204

203205
# CPU/GPU選択状態取得
204-
provider = dpg.get_value(tag_provider_select_value_name)
206+
provider = dpg_get_value(tag_provider_select_value_name)
205207

206208
# モデル情報取得
207-
model_name = dpg.get_value(input_value02_tag)
209+
model_name = dpg_get_value(input_value02_tag)
208210
model_path = self._model_path_setting[model_name]
209211
model_class = self._model_class[model_name]
210212

@@ -287,7 +289,7 @@ def update(
287289
if frame is not None and use_pref_counter:
288290
elapsed_time = time.perf_counter() - start_time
289291
elapsed_time = int(elapsed_time * 1000)
290-
dpg.set_value(output_value02_tag,
292+
dpg_set_value(output_value02_tag,
291293
str(elapsed_time).zfill(4) + 'ms')
292294

293295
# 描画
@@ -318,7 +320,7 @@ def update(
318320
small_window_w,
319321
small_window_h,
320322
)
321-
dpg.set_value(output_value01_tag, texture)
323+
dpg_set_value(output_value01_tag, texture)
322324

323325
return frame, result
324326

@@ -330,7 +332,7 @@ def get_setting_dict(self, node_id):
330332
input_value02_tag = tag_node_name + ':' + self.TYPE_TEXT + ':Input02Value'
331333

332334
# 選択モデル
333-
model_name = dpg.get_value(input_value02_tag)
335+
model_name = dpg_get_value(input_value02_tag)
334336

335337
pos = dpg.get_item_pos(tag_node_name)
336338

@@ -347,4 +349,4 @@ def set_setting_dict(self, node_id, setting_dict):
347349

348350
model_name = setting_dict[input_value02_tag]
349351

350-
dpg.set_value(input_value02_tag, model_name)
352+
dpg_set_value(input_value02_tag, model_name)

node/deep_learning_node/node_face_detection.py

+13-11
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import numpy as np
77
import dearpygui.dearpygui as dpg
88

9+
from node_editor.util import dpg_get_value, dpg_set_value
10+
911
from node.node_abc import DpgNodeABC
1012
from node_editor.util import convert_cv_to_dpg
1113

@@ -203,10 +205,10 @@ def update(
203205
source_tag = connection_info[0] + 'Value'
204206
destination_tag = connection_info[1] + 'Value'
205207
# 値更新
206-
input_value = round(float(dpg.get_value(source_tag)), 3)
208+
input_value = round(float(dpg_get_value(source_tag)), 3)
207209
input_value = max([self._min_val, input_value])
208210
input_value = min([self._max_val, input_value])
209-
dpg.set_value(destination_tag, input_value)
211+
dpg_set_value(destination_tag, input_value)
210212
if connection_type == self.TYPE_IMAGE:
211213
# 画像取得元のノード名(ID付き)を取得
212214
connection_info_src = connection_info[0]
@@ -217,13 +219,13 @@ def update(
217219
frame = node_image_dict.get(connection_info_src, None)
218220

219221
# スコア閾値
220-
score_th = round(float(dpg.get_value(input_value03_tag)), 3)
222+
score_th = round(float(dpg_get_value(input_value03_tag)), 3)
221223

222224
# CPU/GPU選択状態取得
223-
provider = dpg.get_value(tag_provider_select_value_name)
225+
provider = dpg_get_value(tag_provider_select_value_name)
224226

225227
# モデル情報取得
226-
model_name = dpg.get_value(input_value02_tag)
228+
model_name = dpg_get_value(input_value02_tag)
227229
model_path = self._model_path_setting[model_name]
228230
model_class = self._model_class[model_name]
229231

@@ -259,7 +261,7 @@ def update(
259261
if frame is not None and use_pref_counter:
260262
elapsed_time = time.perf_counter() - start_time
261263
elapsed_time = int(elapsed_time * 1000)
262-
dpg.set_value(output_value02_tag,
264+
dpg_set_value(output_value02_tag,
263265
str(elapsed_time).zfill(4) + 'ms')
264266

265267
# 描画
@@ -276,7 +278,7 @@ def update(
276278
small_window_w,
277279
small_window_h,
278280
)
279-
dpg.set_value(output_value01_tag, texture)
281+
dpg_set_value(output_value01_tag, texture)
280282

281283
return frame, result
282284

@@ -289,9 +291,9 @@ def get_setting_dict(self, node_id):
289291
input_value03_tag = tag_node_name + ':' + self.TYPE_FLOAT + ':Input03Value'
290292

291293
# 選択モデル
292-
model_name = dpg.get_value(input_value02_tag)
294+
model_name = dpg_get_value(input_value02_tag)
293295
# スコア閾値
294-
score_th = round(float(dpg.get_value(input_value03_tag)), 3)
296+
score_th = round(float(dpg_get_value(input_value03_tag)), 3)
295297

296298
pos = dpg.get_item_pos(tag_node_name)
297299

@@ -311,5 +313,5 @@ def set_setting_dict(self, node_id, setting_dict):
311313
model_name = setting_dict[input_value02_tag]
312314
score_th = setting_dict[input_value03_tag]
313315

314-
dpg.set_value(input_value02_tag, model_name)
315-
dpg.set_value(input_value03_tag, score_th)
316+
dpg_set_value(input_value02_tag, model_name)
317+
dpg_set_value(input_value03_tag, score_th)

node/deep_learning_node/node_low_light_image_enhancement.py

+10-8
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import numpy as np
66
import dearpygui.dearpygui as dpg
77

8+
from node_editor.util import dpg_get_value, dpg_set_value
9+
810
from node.node_abc import DpgNodeABC
911
from node_editor.util import convert_cv_to_dpg
1012

@@ -181,10 +183,10 @@ def update(
181183
source_tag = connection_info[0] + 'Value'
182184
destination_tag = connection_info[1] + 'Value'
183185
# 値更新
184-
input_value = int(dpg.get_value(source_tag))
186+
input_value = int(dpg_get_value(source_tag))
185187
input_value = max([self._min_val, input_value])
186188
input_value = min([self._max_val, input_value])
187-
dpg.set_value(destination_tag, input_value)
189+
dpg_set_value(destination_tag, input_value)
188190
if connection_type == self.TYPE_IMAGE:
189191
# 画像取得元のノード名(ID付き)を取得
190192
connection_info_src = connection_info[0]
@@ -195,10 +197,10 @@ def update(
195197
frame = node_image_dict.get(connection_info_src, None)
196198

197199
# CPU/GPU選択状態取得
198-
provider = dpg.get_value(tag_provider_select_value_name)
200+
provider = dpg_get_value(tag_provider_select_value_name)
199201

200202
# モデル情報取得
201-
model_name = dpg.get_value(input_value02_tag)
203+
model_name = dpg_get_value(input_value02_tag)
202204
model_path = self._model_path_setting[model_name]
203205
model_class = self._model_class[model_name]
204206

@@ -229,7 +231,7 @@ def update(
229231
if frame is not None and use_pref_counter:
230232
elapsed_time = time.perf_counter() - start_time
231233
elapsed_time = int(elapsed_time * 1000)
232-
dpg.set_value(output_value02_tag,
234+
dpg_set_value(output_value02_tag,
233235
str(elapsed_time).zfill(4) + 'ms')
234236

235237
# 描画
@@ -239,7 +241,7 @@ def update(
239241
small_window_w,
240242
small_window_h,
241243
)
242-
dpg.set_value(output_value01_tag, texture)
244+
dpg_set_value(output_value01_tag, texture)
243245

244246
return frame, None
245247

@@ -251,7 +253,7 @@ def get_setting_dict(self, node_id):
251253
input_value02_tag = tag_node_name + ':' + self.TYPE_TEXT + ':Input02Value'
252254

253255
# 選択モデル
254-
model_name = dpg.get_value(input_value02_tag)
256+
model_name = dpg_get_value(input_value02_tag)
255257

256258
pos = dpg.get_item_pos(tag_node_name)
257259

@@ -268,4 +270,4 @@ def set_setting_dict(self, node_id, setting_dict):
268270

269271
model_name = setting_dict[input_value02_tag]
270272

271-
dpg.set_value(input_value02_tag, model_name)
273+
dpg_set_value(input_value02_tag, model_name)

node/deep_learning_node/node_monocular_depth_estimation.py

+10-8
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import numpy as np
77
import dearpygui.dearpygui as dpg
88

9+
from node_editor.util import dpg_get_value, dpg_set_value
10+
911
from node.node_abc import DpgNodeABC
1012
from node_editor.util import convert_cv_to_dpg
1113

@@ -179,10 +181,10 @@ def update(
179181
source_tag = connection_info[0] + 'Value'
180182
destination_tag = connection_info[1] + 'Value'
181183
# 値更新
182-
input_value = int(dpg.get_value(source_tag))
184+
input_value = int(dpg_get_value(source_tag))
183185
input_value = max([self._min_val, input_value])
184186
input_value = min([self._max_val, input_value])
185-
dpg.set_value(destination_tag, input_value)
187+
dpg_set_value(destination_tag, input_value)
186188
if connection_type == self.TYPE_IMAGE:
187189
# 画像取得元のノード名(ID付き)を取得
188190
connection_info_src = connection_info[0]
@@ -193,10 +195,10 @@ def update(
193195
frame = node_image_dict.get(connection_info_src, None)
194196

195197
# CPU/GPU選択状態取得
196-
provider = dpg.get_value(tag_provider_select_value_name)
198+
provider = dpg_get_value(tag_provider_select_value_name)
197199

198200
# モデル情報取得
199-
model_name = dpg.get_value(input_value02_tag)
201+
model_name = dpg_get_value(input_value02_tag)
200202
model_path = self._model_path_setting[model_name]
201203
model_class = self._model_class[model_name]
202204

@@ -230,7 +232,7 @@ def update(
230232
if frame is not None and use_pref_counter:
231233
elapsed_time = time.perf_counter() - start_time
232234
elapsed_time = int(elapsed_time * 1000)
233-
dpg.set_value(output_value02_tag,
235+
dpg_set_value(output_value02_tag,
234236
str(elapsed_time).zfill(4) + 'ms')
235237

236238
# 描画
@@ -240,7 +242,7 @@ def update(
240242
small_window_w,
241243
small_window_h,
242244
)
243-
dpg.set_value(output_value01_tag, texture)
245+
dpg_set_value(output_value01_tag, texture)
244246

245247
return frame, result
246248

@@ -252,7 +254,7 @@ def get_setting_dict(self, node_id):
252254
input_value02_tag = tag_node_name + ':' + self.TYPE_TEXT + ':Input02Value'
253255

254256
# 選択モデル
255-
model_name = dpg.get_value(input_value02_tag)
257+
model_name = dpg_get_value(input_value02_tag)
256258

257259
pos = dpg.get_item_pos(tag_node_name)
258260

@@ -269,4 +271,4 @@ def set_setting_dict(self, node_id, setting_dict):
269271

270272
model_name = setting_dict[input_value02_tag]
271273

272-
dpg.set_value(input_value02_tag, model_name)
274+
dpg_set_value(input_value02_tag, model_name)

0 commit comments

Comments
 (0)