The VideoReader base class has many public attributes (frame_count, height, width, n_channels, dtype) that can be accessed before the reader is initialized, returning default values (0, None) instead of triggering initialization. They should still be exposed to mirror MATLAB flow-registration syntax.
Best fix could be getters with lazy initialization + private fields which requires refactoring all inheriting classes.