LoginSignup
27
34

More than 5 years have passed since last update.

Tkinterで作成したウインドウにOpenCV-Pythonの画像を表示

Last updated at Posted at 2018-09-22

OpenCV で取り扱う画像は cv2.imshow() で表示させるのが最も簡単ですが、ボタンなどの GUI 部品を一緒に表示させることはできません。
GUI 部品を一緒に表示させるには Qt や Tinker のウィンドウを使う必要があります。
ここでは Tkinter でウィンドウを作成し、その中の Canvas に OpenCV の画像を表示させる方法を紹介します。

環境
- Python 3.7.0
- opencv-python 3.4.3.18
- Pillow 5.2.0

※ ソースコードと同じ場所に lenna.jpg が置かれているものとします。

import tkinter
import cv2
from PIL import Image, ImageTk

root = tkinter.Tk()
root.title("Show Image from OpenCV in Tkinter canvas")

image_bgr = cv2.imread("lenna.jpg")
image_rgb = cv2.cvtColor(image_bgr, cv2.COLOR_BGR2RGB) # imreadはBGRなのでRGBに変換
image_pil = Image.fromarray(image_rgb) # RGBからPILフォーマットへ変換
image_tk  = ImageTk.PhotoImage(image_pil) # ImageTkフォーマットへ変換

canvas = tkinter.Canvas(root, width=image_bgr.shape[0], height=image_bgr.shape[1]) # Canvas作成
canvas.pack()
canvas.create_image(0, 0, image=image_tk, anchor='nw') # ImageTk 画像配置

root.mainloop()

結果
tkinter-opencv.PNG

27
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
34