This paper discusses the main achievements of the EPIC project, whose aim was to design a high level programming environment
with an associated implementation for portable parallel image processing. The project was funded as part of the EPSRC Portable
Software Tools for Parallel Architectures (PSTPA) programme. The paper summarises new portable programming abstractions for
image processing, and outlines the automatically optimising implementation which achieves portability of application code
and efficiency of implementation on a closely coupled distributed memory parallel system. The paper includes timings for optimised
and unoptimised versions of typical image processing algorithms; it draws the main conclusion that it is possible to achieve
portability with efficiency, for a specific application, by adopting a high level algebraic programming model, together with
a transformation-based optimiser which reclaims the loss of efficiency which an algebraic approach traditionally entails.