use general imaging function which calls specific imaging functions via function pointers