📷

TouchDesignerで画像を保存し、その画像を読み込む

に公開

TouchDesignerのMovie File Out TOPで画像を保存して、そのまま保存した画像をMovie File In TOPで読み込む方法です。

Movie File Out TOPで画像の保存をした際に、ファイルが作成されてそのファイルが画像として正しく読み込めるようになるまでには時間がかかります。そのため、保存した画像をMovie File In TOPで読み込むためには、画像ファイルが正しく読み込めるようになるまで待機する必要があります。

これを実現するためには、Timer CHOPで一定時間ごとにMovie FIle Out TOPで保存した画像が正しく読み込めるかを検証し、正しく読み込める場合にMovie File In TOPでも読み込むという処理をします。

ネットワークにすると以下のようになり、Text DATをRun ScriptするとMovie File Out TOPで画像の保存を行います。同時にTimer CHOPを開始して、一定時間ごとにOpenCVで画像として開けるかを検証します。画像として読み込める場合にはMovie File In TOPのReloadパラメータで読み込みを開始するとともにTimer CHOPを止めます。

text1
path = 'output.png'
op('moviefileout1').par.file = path
op('moviefileout1').par.record.pulse()
op('moviefilein1').par.file = path
op('timer1').par.start.pulse()
timer1_callbacks
import cv2
import os

def is_image_file(file_path):
	if not os.path.isfile(file_path):
		return False
	image = cv2.imread(file_path)
	return image is not None

def onDone(timerOp, segment, interrupt):
	path = op('moviefilein1').par.file.eval()
	if is_image_file(path):
		print('image file is saved')
		op('moviefilein1').par.reloadpulse.pulse()
		timerOp.par.initialize.pulse()

Discussion