Imaging systems are traditionally developed using structured analysis and design techniques. While there are many reasons that engineers choose this approach, one is the expected real-time performance benefits. But structured approaches tend to be rigid with respect to changing needs, technologies, devices, and algorithms. More generally, these systems are difficult or impossible to reuse because each new problem requires a new solution. Object-oriented approaches, on the other hand, can lead to systems that are more readily reused if certain best practices are followed. However, the conventional wisdom is that the price for such benefits is degraded real-time performance. The contribution of this work is an examination of these best practices, in the form of patterns and design principles, with reference to imaging systems. Then an extensive implementation of these practices is done on an existing imaging system, Kahindu, which is a teaching package built using the object-oriented paradigm. We then show how by applying these best practices not only improved structure is obtained, but surprisingly, improved performance as well. Our results challenge the conventional belief that the “price” for the improved structure, ease-of-extension, maintainability, etc. of object-oriented systems in imaging systems is degraded performance.
Raghvinder S. Sangwan, Robert S. Ludwig, Colin J. Neill, Phillip A. Laplante, "Building Reusable Components for Real-Time Imaging Systems" in Journal of Imaging Science and Technology, 2005, pp 154 - 162, https://doi.org/10.2352/J.ImagingSci.Technol.2005.49.2.art00006