Fast Binary Image Processing Using Binary Decision Diagrams
Abstract
Many classical image processing tasks can be realized as evaluations of a boolean function over subsets of an image. For instance, the simplicity test used in 3D thinning requires examining the 26 neighbors of each voxel and computing a single boolean function of these inputs. In this article, we show how Binary Decision Diagrams can be used to produce automatically very efficient and compact code for such functions. The total number of operations performed by a generated function is at most one test and one branching for each input value (e.g., in the case of 3D thinning, 26 tests and branchings). At each stage, the function is guaranteed to examine only the pertinent input data, i.e., the values which affect the result. As an example, we consider the 2D and 3D simplicity tests in digital topology, and thinning processes. We produce functions much faster than our previously optimized implementations \cite{malandain92,bertrand-al94}, and than any other implementation we know of. In the case of 3D simplicity test, on average, at each voxel only 8.7 neighboring voxel values are examined.
Domains
Other [cs.OH]
Loading...