opencvが2つのウィンドウを作成するのはなぜですか?

Vraj Kotwala

感情検出用のGithub(https://github.com/atulapra/Emotion-detectionからコードが見つかりましたいくつか変更を加え、Tkinterと組み合わせてユーザーとの対話を容易にしたいです。下の画像に示されているこのようなもの。ここに画像の説明を入力してくださいここで私はtkwindowのコードをいくつか書きました:

win = Tk()
win.title('EMOTIBOT')
win.config(background = "#D9D9D9")
win.resizable(width=FALSE, height=FALSE)

#frame1 for webcamera
frame1 = Frame(win, width=600, bg="black",height=300, padx=10, pady=10,highlightbackground="grey", highlightcolor="black", highlightthickness=5)
frame1.pack(side=LEFT ,fill=Y,padx=10, pady=10)

ここで、元のコードにいくつかの変更を加えました。

if mode == "display":
    model.load_weights('model.h5')

    # prevents openCL usage and unnecessary logging messages
    cv2.ocl.setUseOpenCL(False)

    # dictionary which assigns each label an emotion (alphabetical order)
    emotion_dict = {0: "Angry", 1: "Disgusted", 2: "Fearful", 3: "Happy", 4: "Neutral", 5: "Sad", 6: "Surprised"}

    # start the webcam feed
    cap = cv2.VideoCapture(0)

    def show_frame():
        _, frame = cap.read()
        frame = cv2.flip(frame, 1)
        #cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)

        #while True:
        facecasc = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
        cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        faces = facecasc.detectMultiScale(cv2image,scaleFactor=1.3, minNeighbors=5)

        for (x, y, w, h) in faces:
            cv2.rectangle(frame, (x, y-50), (x+w, y+h+10), (255, 0, 0), 2)
            roi_gray = gray[y:y + h, x:x + w]
            cropped_img = np.expand_dims(np.expand_dims(cv2.resize(roi_gray, (48, 48)), -1), 0)
            prediction = model.predict(cropped_img)
            maxindex = int(np.argmax(prediction))
            cv2.putText(frame, emotion_dict[maxindex], (x+20, y-60), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2, cv2.LINE_AA)

        cv2.imshow('Video', cv2.resize(frame,(1600,960),interpolation = cv2.INTER_CUBIC))

        img = Image.fromarray(cv2image)
        imgtk = ImageTk.PhotoImage(image=img)
        lmain.imgtk = imgtk
        lmain.configure(image=imgtk)
        lmain.after(10, show_frame) 

    #Capture video frames
    lmain = Label(frame1)
    lmain.grid(row=0, column=0)

    show_frame()  #Display 2
    win.mainloop()

これは2つのウィンドウを開いています。最初のウィンドウ、検出された感情に長方形がないTkウィンドウ。2番目のウィンドウには、検出された感情の長方形が表示されています。最初のtkウィンドウが面に長方形を表示しないのはなぜですか?ここに画像の説明を入力してください

私のスクリプトファイルが必要な場合は、ここにあります。https://drive.google.com/file/d/1m7tLFxHF_hO0VLVb8FgAf-4lJKMxFLxA/view?usp=sharing

私はOpenCVとTkの両方に不慣れです。私を助けてください。

黒いくま

私たちの議論を受け入れられる答えに要約するには

  1. cv2.imshow2番目のウィンドウを取り除くために削除します
  2. img = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA))検出された顔のフレームを適切な色で表示するために使用します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

なぜこれが2つのウィンドウを作成するのですか?

分類Dev

背景を追加するとTKinterが2つのウィンドウを開くのはなぜですか

分類Dev

パンダで移動平均ウィンドウが異なる2つの列を作成できないのはなぜですか?

分類Dev

なぜ2つのウィンドウが表示されるのですか?

分類Dev

opencv imshow()がデバッグモードでnamedWindow()と同じ名前の新しいウィンドウを作成するのはなぜですか?

分類Dev

Tkinterがボタンの新しいウィンドウを作成するのはなぜですか?

分類Dev

トップレベルに2つのウィンドウが表示されるのはなぜですか?

分類Dev

ウィンドウが見つからないのはなぜですか?

分類Dev

Karmaが空のブラウザウィンドウを起動するのはなぜですか?

分類Dev

WinAPIが設定されたサイズでウィンドウを作成しないのはなぜですか?

分類Dev

Qtでメインウィンドウを作成する前に言語パックをロードする必要があるのはなぜですか?

分類Dev

FindWindowExがIPアドレスウィンドウを見つけられないのはなぜですか?

分類Dev

viewDidLoadで確認ウィンドウが消えるのはなぜですか?

分類Dev

なぜ2つのウィキがあるのですか?

分類Dev

Xamarin.Macウィンドウが突然消えるのはなぜですか?

分類Dev

OpenCVの同じウィンドウ内に2つの異なるソースを表示するにはどうすればよいですか?

分類Dev

「ウィンドウ関数Xがフレーム指定をとらない」でウィンドウ関数が失敗するのはなぜですか?

分類Dev

Rustを使用したウィンドウではなく2つのウィンドウが表示されます

分類Dev

ウィンドウを縮小するとメニュー項目が下がるのはなぜですか?

分類Dev

別のスレッドでウィンドウを作成すると、「無効なウィンドウハンドル」例外が発生することがあるのはなぜですか。

分類Dev

SMSウィンドウを取得しようとするとgetRootInActiveWindow()がnullを返すのはなぜですか

分類Dev

Indesignでウィンドウを閉じることができないのはなぜですか?

分類Dev

Indesignでウィンドウを閉じることができないのはなぜですか?

分類Dev

tkinterのafter()関数がウィンドウをフリーズするのはなぜですか?

分類Dev

FirefoxのプライベートウィンドウがCookieを送信するのはなぜですか?

分類Dev

ウィンドウの新しいインスタンスを作成できないのはなぜですか?

分類Dev

実行時にウィンドウの位置を設定すると、ウィンドウが画面に複製されるのはなぜですか?(LIBGDX)

分類Dev

ウィンドウを別のワークスペースに移動すると、ウィンドウが消えるのはなぜですか?

分類Dev

TestStack.White .GetWindowではなくApplication.GetWindowsでウィンドウを見つけることができるのはなぜですか?

Related 関連記事

  1. 1

    なぜこれが2つのウィンドウを作成するのですか?

  2. 2

    背景を追加するとTKinterが2つのウィンドウを開くのはなぜですか

  3. 3

    パンダで移動平均ウィンドウが異なる2つの列を作成できないのはなぜですか?

  4. 4

    なぜ2つのウィンドウが表示されるのですか?

  5. 5

    opencv imshow()がデバッグモードでnamedWindow()と同じ名前の新しいウィンドウを作成するのはなぜですか?

  6. 6

    Tkinterがボタンの新しいウィンドウを作成するのはなぜですか?

  7. 7

    トップレベルに2つのウィンドウが表示されるのはなぜですか?

  8. 8

    ウィンドウが見つからないのはなぜですか?

  9. 9

    Karmaが空のブラウザウィンドウを起動するのはなぜですか?

  10. 10

    WinAPIが設定されたサイズでウィンドウを作成しないのはなぜですか?

  11. 11

    Qtでメインウィンドウを作成する前に言語パックをロードする必要があるのはなぜですか?

  12. 12

    FindWindowExがIPアドレスウィンドウを見つけられないのはなぜですか?

  13. 13

    viewDidLoadで確認ウィンドウが消えるのはなぜですか?

  14. 14

    なぜ2つのウィキがあるのですか?

  15. 15

    Xamarin.Macウィンドウが突然消えるのはなぜですか?

  16. 16

    OpenCVの同じウィンドウ内に2つの異なるソースを表示するにはどうすればよいですか?

  17. 17

    「ウィンドウ関数Xがフレーム指定をとらない」でウィンドウ関数が失敗するのはなぜですか?

  18. 18

    Rustを使用したウィンドウではなく2つのウィンドウが表示されます

  19. 19

    ウィンドウを縮小するとメニュー項目が下がるのはなぜですか?

  20. 20

    別のスレッドでウィンドウを作成すると、「無効なウィンドウハンドル」例外が発生することがあるのはなぜですか。

  21. 21

    SMSウィンドウを取得しようとするとgetRootInActiveWindow()がnullを返すのはなぜですか

  22. 22

    Indesignでウィンドウを閉じることができないのはなぜですか?

  23. 23

    Indesignでウィンドウを閉じることができないのはなぜですか?

  24. 24

    tkinterのafter()関数がウィンドウをフリーズするのはなぜですか?

  25. 25

    FirefoxのプライベートウィンドウがCookieを送信するのはなぜですか?

  26. 26

    ウィンドウの新しいインスタンスを作成できないのはなぜですか?

  27. 27

    実行時にウィンドウの位置を設定すると、ウィンドウが画面に複製されるのはなぜですか?(LIBGDX)

  28. 28

    ウィンドウを別のワークスペースに移動すると、ウィンドウが消えるのはなぜですか?

  29. 29

    TestStack.White .GetWindowではなくApplication.GetWindowsでウィンドウを見つけることができるのはなぜですか?

ホットタグ

アーカイブ