Spatial data
Before introducing various projective transformations, we have a look at the data that can be projected. There are three kinds of data currently supported: images, keypoints and segmentation masks. Both 2D and 3D data is supported (and technically, higher dimensions, but I've yet to find a dataset with 4 spatial dimensions).
Image{N, T}represents anN-dimensional image.Trefers to the element type of the array thatImagewraps, usually a color. When projecting images, proper interpolation methods are used to reduce artifacts like aliasing. Seesrc/items/image.jlMaskBinary{N}andMaskMulti{N, T}likewise representsN-dimensional segmentation masks. Unlike images, nearest-neighbor interpolation is used for projecting masks. Seesrc/items/mask.jlLastly,
Keypoints{N}represent keypoint data. The data should be an array ofSVector{N}. Since there are many interpretations of keypoint data, there are also wrapper items for convenience:BoundingBoxandPolygon.Seesrc/items/keypoints.jl