16 slices for 180 degrees would be quite sparse (you have very high resolution slices with huge gaps between them), but depending on what you want to do, you might get a usable result.
SlicerHeart Reconstruct4DCineMRI module can serve as a good example of how to organize image a set of slices into a time sequence of 3D volumes, but since you only have a single timepoint, there is not a lot to use from there.
Instead, you can use this code snippet to put together a sequence of image slices, with each slice having a correct position and orientation and then reconstruct a volume from that.
Since your data is extremely sparse. you would end up with big gaps between them, which could make it difficult to interpret the 3D volume. You could fix that by adding interpolated slices (compute weighted average of neighbor slices and insert them between your original slices).