質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

3083閲覧

pythonのQueueについて、AttributeError: 'bool' object has no attribute 'get'のエラー

dendendenjirou

総合スコア40

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/04/22 22:36

pythonのQueueにて、AttributeError: 'bool' object has no attribute 'get'
のエラーが出てしまいます。

当初、変数の'1'という数字をputしたのが原因でエラーとなっているのかと思い、
str型に変更したのですがエラーメッセージは変わらずです。

どなかた、ご教授願いませんでしょうか。

python

1def target_canvas(target_queue): 2 3 print('target_canvas') 4 root = tk.Tk() 5 root.geometry("300x200") 6 root.title("Dangerous drug") 7 var = tk.IntVar() 8 9 var.set(1) 10 11 # ラジオボタン作成 12 rdo0 = tk.Radiobutton(root, value=0, variable=var, text='taeget0') 13 rdo0.place(x=70, y=40) 14 15 rdo1 = tk.Radiobutton(root, value=1, variable=var, text='taeget1') 16 rdo1.place(x=70, y=70) 17 18 no = var.get() 19 lst_target = ['nothing', 'taeget1'] 20 drag = lst_target[no] 21 22 root.mainloop() 23 24 target_queue.clear() 25 target_queue.put(drag) 26 27if __name__ == '__main__': 28 29 frame_queue = Queue() 30 darknet_image_queue = Queue(maxsize=1) 31 detections_queue = Queue(maxsize=1) 32 fps_queue = Queue(maxsize=1) 33 target_queue = Queue() 34 target_queue.put(0) 35 36 Thread(target=target_canvas, args=(target_queue,)).start() 37 Thread(target=video_capture, args=(frame_queue, darknet_image_queue)).start() 38 Thread(target=inference, args=(darknet_image_queue, detections_queue, fps_queue)).start() 39 Thread(target=drawing, args=(frame_queue, detections_queue, fps_queue)).start() 40

python

1def print_detections(detections, target_queue, coordinates=False): 2 #print(target_queue) 3 drag = target_queue.get() 4 5 print("\nObjects:") 6 for label, confidence, bbox in detections: 7 x, y, w, h = bbox 8 if coordinates: 9 print("{}: {}% (left_x: {:.0f} top_y: {:.0f} width: {:.0f} height: {:.0f})".format(label, confidence, x, y, w, h)) 10 if label == drag: 11 winsound.Beep(800,1000) 12 else: 13 print("{}: {}%".format(label, confidence)) 14 15 if label == drag: 16 winsound.Beep(800,1000)

エラーコードは以下となります。

python

1[ERROR:0@2.721] global C:\opencv\sources\modules\videoio\src\cap.cpp (597) cv::VideoWriter::open VIDEOIO(CV_IMAGES): raised OpenCV exception: 2 3OpenCV(4.5.5) C:\opencv\sources\modules\videoio\src\cap_images.cpp:207: error: (-215:Assertion failed) !filename.empty() in function 'cv::icvExtractPattern' 4 5 6FPS: 4 7Exception in thread Thread-3: 8Traceback (most recent call last): 9 File "C:\Users\xxxxx\Anaconda3\lib\threading.py", line 932, in _bootstrap_inner 10 self.run() 11 File "C:\Users\xxxxx\Anaconda3\lib\threading.py", line 870, in run 12 self._target(*self._args, **self._kwargs) 13 File "darknet_video.py", line 137, in inference 14 darknet.print_detections(detections, args.ext_output) 15 File "C:\Users\xxxxx\PycharmProjects\darknet\build\darknet\x64\darknet.py", line 128, in print_detections 16 drag = target_queue.get() 17AttributeError: 'bool' object has no attribute 'get'

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

darknet.print_detections(detections, args.ext_output)

掲載のコードにはありませんが、エラーログより
print_detections 呼び出し部分の引数が間違ってます。

第2引数にQueueオブジェクトが渡っているかを確認して見て下さい。

投稿2022/04/22 23:04

teamikl

総合スコア8664

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dendendenjirou

2022/04/22 23:29

teammiklさん 回答ありがとうございます。 引数に関して、呼び出し先ばかり見ていて、呼び出し元の設定を見落としていました。 ご指摘いただいたおかげで、少し先に進みました。 本当にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問