DLP player#
Walkthrough#
Warning
The vamtoolbox.dlp.players.player() must be run from within
if __name__ == "__main__":
because the player spawns a subprocess with the multiprocessing standard library.
Precomputed folder of images#
If the user has a folder of image files saved from an ImageSeq object or created through other means, e.g. third-party library, the directory can be specified in the images_dir keyword argument.
import vamtoolbox as vam
if __name__ == "__main__":
# Precomputed folder of images
vam.dlp.players.player(images_dir=vam.resources.load("seq0imagesdir"),rot_vel=24,windowed=True)
Precomputed sinogram object#
The player also accepts a Sinogram object as input in the sinogram keyword argument. If this method is chosen, the image_config keyword argument must also be specified. See Digital light processing for information on the ImageConfig object.
# Sinogram object
sino = vam.geometry.loadVolume(file_name=vam.resources.load("sino0.sino"))
iconfig=vam.imagesequence.ImageConfig(image_dims=(1920,1080),array_num=2,array_offset=450)
vam.dlp.players.player(sinogram=sino,image_config=iconfig,rot_vel=24,windowed=True)
Image sequence object#
The player also accepts a ImageSeq object as input in the image_seq keyword argument.
# Image sequence object
sino = vam.geometry.loadVolume(file_name=vam.resources.load("sino0.sino"))
iconfig=vam.imagesequence.ImageConfig(image_dims=(1920,1080),array_num=2,array_offset=450)
image_seq = vam.imagesequence.ImageSeq(image_config=iconfig,sinogram=sino)
vam.dlp.players.player(image_seq=image_seq,pause_bg_color=(0,255,0),duration=10,rot_vel=24,start_index=100,windowed=True)
Video file#
The player accepts a regular video file.
# Video
vam.dlp.players.player(video=vam.resources.load("video0.mp4"),rot_vel=12,windowed=True)
Tip
The spacebar can be used to pause/resume playback of the image sequence or video.
Example file#
import vamtoolbox as vam
if __name__ == "__main__":
# Precomputed folder of images
vam.dlp.players.player(images_dir=vam.resources.load("seq0imagesdir"),rot_vel=24,windowed=True)
# Sinogram object
sino = vam.geometry.loadVolume(file_name=vam.resources.load("sino0.sino"))
iconfig=vam.imagesequence.ImageConfig(image_dims=(1920,1080),array_num=2,array_offset=450)
vam.dlp.players.player(sinogram=sino,image_config=iconfig,rot_vel=24,windowed=True)
# Image sequence object
sino = vam.geometry.loadVolume(file_name=vam.resources.load("sino0.sino"))
iconfig=vam.imagesequence.ImageConfig(image_dims=(1920,1080),array_num=2,array_offset=450)
image_seq = vam.imagesequence.ImageSeq(image_config=iconfig,sinogram=sino)
vam.dlp.players.player(image_seq=image_seq,pause_bg_color=(0,255,0),duration=10,rot_vel=24,start_index=100,windowed=True)
# Video
vam.dlp.players.player(video=vam.resources.load("video0.mp4"),rot_vel=12,windowed=True)