I'm wondering, why are image and result pointers and not references? I don't think the default constructor is needed.