残プロ 第-17回 ~tkinterで画像を表示する~
今回の簡単な流れ
- tkinterでウィンドウを用意
- canvasを作成
- canvas上にtkinter用にコンバートした画像を表示
プログラム例
今回の例ではcv2で画像を読み込んでいます.
PILのfromarrayとPhotoImageを使って,
numpy.ndarray → PIL.Image.Image → PIL.ImageTk.PhotoImage
と変換しています.
グレースケールで読み込んでいますが,カラーの場合も同様です.
※関数内でコンバートした場合(下記プログラムのimg_tk),ガベージコレクションに入れられるので,リストに追加することで回避しています.
import tkinter as tk
from PIL import Image, ImageTk
import cv2
def convert(img_gry):
img_pil = Image.fromarray(img_gry)
img_tk = ImageTk.PhotoImage(img_pil)
imgs.append(img_tk)
return img_tk
# --main--
path = "sample.png"
img_gry = cv2.imread(path, 0)
hei = img_gry.shape[0]
wid = img_gry.shape[1]
imgs = []
root = tk.Tk()
canvas = tk.Canvas(root, height=hei, width=wid)
canvas.pack()
canvas.create_image(0, 0, image=convert(img_gry), anchor='nw')
root.mainloop()
Author And Source
この問題について(残プロ 第-17回 ~tkinterで画像を表示する~), 我々は、より多くの情報をここで見つけました https://qiita.com/R1nY1x1/items/c80b2208ac62525cc604著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .