Hi Yoav,
Yes, defining an arbitrary finite domain is different from using the whole image. Because the toolkit’s focus is on images, we implicitly assume that there is an image and that we are interested in its whole domain (the image’s physical extent).
To define an arbitrary domain, just create an appropriate image (defaults to all zeros) and feed that to the initializer:
x_size = 256
y_size = 128
z_size = 64
dummy = sitk.Image([x_size, y_size_, z_size], sitk.sitkUInt8)
dummy.SetOrigin([2,4,8])
dummy.SetSpacing((0.5,0.5,2))
Documentation that introduces the toolkit fundamental concepts, common conventions, installation instructions, and short examples can be found on read-the-docs. Hopefully these are easier to digest than the C++ docs or the notebooks.