Towards a Software Architecture for Generic Image Processing

From LRDE

Abstract

In the context of software engineering for image processing (IP), we consider the notion of reusability of algorithms. In many software tools, an algorithm's implementation often depends on the type of processed data. In a broad definition, discrete digital images may have various forms—classical 2D images, 3D volumesnon-regular graphs, cell complexes, and so on—thus leading to a combinatorial explosion of the theoretical number of implementations. Generic programming (GP) is a framework suited to the development of reusable software tools. We present a programming paradigm based on GP designed for the creation of scientific software such as IP tools. This approach combines the benefits of reusabilityexpressive power, extensibility, and efficiency. We then propose a software architecture for IP using this programming paradigm based on a generic IP library. The foundations of this framework define essential IP conceptsenabling the development of algorithms compatible with many image types. We finally present a strategy to build high-level tools on top of this library, such as bridges to dynamic languages or graphical user interfaces. This mechanism has been designed to preserve the genericity and efficiency of the underlying software tools, while making them simpler to use and more flexible.


Bibtex (lrde.bib)

@PhDThesis{	  levillain.11.phd,
  author	= {Roland Levillain},
  title		= {Towards a Software Architecture for Generic Image
		  Processing},
  school	= {Universit\'e Paris-Est},
  year		= 2011,
  address	= {Marne-la-Vall\'ee, France},
  month		= nov,
  abstract	= {In the context of software engineering for image
		  processing (IP), we consider the notion of reusability of
		  algorithms. In many software tools, an algorithm's
		  implementation often depends on the type of processed data.
		  In a broad definition, discrete digital images may have
		  various forms---classical 2D images, 3D volumes,
		  non-regular graphs, cell complexes, and so on---thus
		  leading to a combinatorial explosion of the theoretical
		  number of implementations.\\ Generic programming (GP) is a
		  framework suited to the development of reusable software
		  tools. We present a programming paradigm based on GP
		  designed for the creation of scientific software such as IP
		  tools. This approach combines the benefits of reusability,
		  expressive power, extensibility, and efficiency.\\ We then
		  propose a software architecture for IP using this
		  programming paradigm based on a generic IP library. The
		  foundations of this framework define essential IP concepts,
		  enabling the development of algorithms compatible with many
		  image types.\\ We finally present a strategy to build
		  high-level tools on top of this library, such as bridges to
		  dynamic languages or graphical user interfaces. This
		  mechanism has been designed to preserve the genericity and
		  efficiency of the underlying software tools, while making
		  them simpler to use and more flexible.}
}