前提・実現したいこと
opencvを使って画像の切り替えを行いたいです.
用意したもの
黒く塗りつぶした画像(img1,img2)
画像1(cut_person.jpg)
画像2(cut_chair.jpg)
まず,黒く塗りつぶした画像(img1)を背景に設定します.
その後,あるフォルダから画像1を取得し,img1に張り付けます.
そして何秒か表示します.
次に,黒く塗りつぶした画像(img2)を背景に設定します.
その後,あるフォルダから画像2を取得し,img2に張り付けます.
そして何秒か表示します.
ここまでは出来ました.
その後また画像1を再表示させ,画像2を表示するといったループを作りたいです.
while文を使えばできると思ったのですが,条件が思い浮かびませんでした.
また他にもいい方法があればご教授ください.
発生している問題・エラーメッセージ
while文の条件をwindowが閉じるまでと考え, while cv2.destroyAllWindows(): としましたが,すぐにwindowが閉じてしまいます.
該当のソースコード
# -*- coding: utf-8 -*- import numpy as np import cv2 from PIL import Image, ImageFont, ImageDraw cv2.namedWindow("description", cv2.WINDOW_NORMAL) #cv2.namedWindow("description", cv2.WINDOW_AUTOSIZE) while cv2.destroyAllWindows(): # 背景が黒になるように、すべての要素を0とし、x*yでRGB値3つを格納でき、 # 要素のデータ型は8bit(1byte)の符号なし整数とする配列(背景画像)を作る。 img = np.zeros((1000,1000,3),np.uint8) cut_image = cv2.imread('cut_image/cut_person.jpg',cv2.IMREAD_UNCHANGED) cut_image_RGB = cv2.cvtColor(cut_image,cv2.COLOR_BGR2RGB) height, width = cut_image.shape[:2] img[0:height , 200:width + 200] = cut_image_RGB cv2.imshow('description',img) cv2.waitKey(1000) ################################################################################# img2 = np.zeros((1000,1000,3),np.uint8) cut_image2 = cv2.imread('cut_image/cut_chair.jpg',cv2.IMREAD_UNCHANGED) cut_image2_RGB = cv2.cvtColor(cut_image2,cv2.COLOR_BGR2RGB) height, width = cut_image2.shape[:2] img2[0:height , 200:width + 200] = cut_image2_RGB cv2.imshow('description',img2) cv2.waitKey(1000) cv2.waitKey(0) cv2.destroyAllWindows()
回答1件
あなたの回答
tips
プレビュー