head	1.7;
access;
symbols
	r1_1_beta:1.7
	r1_1_alpha:1.7
	r1_0:1.7
	r0_11:1.7
	r0_10:1.5
	r0_9:1.4;
locks; strict;
comment	@// @;


1.7
date	94.04.15.13.08.57;	author thoth;	state Exp;
branches;
next	1.6;

1.6
date	94.03.13.20.47.32;	author thoth;	state Exp;
branches;
next	1.5;

1.5
date	94.02.01.13.13.49;	author thoth;	state Exp;
branches;
next	1.4;

1.4
date	93.11.16.13.25.40;	author thoth;	state Exp;
branches;
next	1.3;

1.3
date	93.10.19.19.46.58;	author jnw;	state Exp;
branches;
next	1.2;

1.2
date	93.09.24.11.59.35;	author thoth;	state Exp;
branches;
next	1.1;

1.1
date	93.09.08.12.37.24;	author thoth;	state Exp;
branches;
next	;


desc
@A file which includes everything you need to do any image
algebra C++ processing.
@


1.7
log
@Convolutions now live in their own header files.
@
text
@// Emacs -*- C++ -*-

//
//	Copyright 1993, Center for Computer Vision and Visualization,
//	University of Florida.  All rights reserved.
//

//
// $Log: imagealgebra.h,v $
// Revision 1.6  1994/03/13  20:47:32  thoth
// Version 11 does away with named template types.
//
// Revision 1.5  1994/02/01  13:13:49  thoth
// Bit and Complex templates weren't available before 0.9.
// Image classes have been renamed.  We will retain name compatibility
// till 1.0.
//
// Revision 1.4  1993/11/16  13:25:40  thoth
// Add new 0.9 classes.
// Add closure classes.
//

#ifndef imagealgebra_h_
#define imagealgebra_h_

#include	"ia.h"

#include	"IntPoint.h"
#include	"FloatPoint.h"

#include	"IntPointSet.h"
#include	"FloatPointSet.h"

#if IA_MAJOR_VERSION_NUMBER<1 && IA_MINOR_VERSION_NUMBER<9
#include	"UcharDiscreteImage.h"
#include	"IntDiscreteImage.h"
#include	"FloatDiscreteImage.h"
#include	"DIVIter.h"
#include	"DIPIter.h"
#include	"display.h"
#else
#include	"PSIter.h"
#include	"ClosurePS.h"

#include	"BitDI.h"
#include	"UcharDI.h"
#include	"IntDI.h"
#include	"FloatDI.h"
#include	"ComplexDI.h"
#include	"ImageIter.h"
#include	"ClosureI.h"
#include	"ClosureDT.h"
#endif

#if IA_MAJOR_VERSION_NUMBER>0 || IA_MINOR_VERSION_NUMBER>10
#include "DDTempl.h"
#include "BitConvolutions.h"
#include "UcharConvolutions.h"
#include "IntConvolutions.h"
#include "FloatConvolutions.h"
#include "ComplexConvolutions.h"
typedef IA_DDTemplate<IA_Image<IA_IntPoint, IA_Bit> >	IA_BitDDTemplate;
typedef IA_DDTemplate<IA_Image<IA_IntPoint, u_char> >	IA_UcharDDTemplate;
typedef IA_DDTemplate<IA_Image<IA_IntPoint, int> >	IA_IntDDTemplate;
typedef IA_DDTemplate<IA_Image<IA_IntPoint, float> >	IA_FloatDDTemplate;
typedef IA_DDTemplate<IA_Image<IA_IntPoint, complex> >	IA_ComplexDDTemplate;
#else
#include	"UcharDDTempl.h"
#include	"IntDDTempl.h"
#include	"FloatDDTempl.h"

#if IA_MAJOR_VERSION_NUMBER>0 || IA_MINOR_VERSION_NUMBER>10
#include "RGBDI.h"

#include "Neighborhood.h"
#endif

#if IA_MAJOR_VERSION_NUMBER>0 || IA_MINOR_VERSION_NUMBER>8
#include	"BitDDTempl.h"
#include	"ComplexDDTempl.h"
#endif
#endif

#if IA_MAJOR_VERSION_NUMBER==0 && IA_MINOR_VERSION_NUMBER>9
typedef IA_Image<IA_IntPoint,IA_Bit>	IA_BitDiscreteImage;
typedef IA_Image<IA_IntPoint,u_char>	IA_UcharDiscreteImage;
typedef IA_Image<IA_IntPoint,int>	IA_IntDiscreteImage;
typedef IA_Image<IA_IntPoint,float>	IA_FloatDiscreteImage;
typedef IA_Image<IA_IntPoint,complex>	IA_ComplexDiscreteImage;
#endif

#if IA_MAJOR_VERSION_NUMBER<1 && IA_MINOR_VERSION_NUMBER<9
#define chi_lt	pwise_lt
#define chi_le	pwise_le
#define chi_eq	pwise_eq
#define chi_ne	pwise_ne
#define chi_ge	pwise_ge
#define chi_gt	pwise_gt

inline IA_UcharDiscreteImage linear_product
(const IA_UcharDiscreteImage &img,
 const IA_UcharDDTemplate &templ,
 IA_IntPointSet dest_ps) {
    return gcon(img, templ, dest_ps);
}

inline IA_UcharDiscreteImage addmax_product
(const IA_UcharDiscreteImage &img,
 const IA_UcharDDTemplate &templ,
 IA_IntPointSet dest_ps) {
    return addmax(img, templ, dest_ps);
}

inline IA_UcharDiscreteImage addmin_product
(const IA_UcharDiscreteImage &img,
 const IA_UcharDDTemplate &templ,
 IA_IntPointSet dest_ps) {
    return addmin(img, templ, dest_ps);
}
#endif

#endif
@


1.6
log
@Version 11 does away with named template types.
@
text
@d10 3
d56 6
d71 6
@


1.5
log
@Bit and Complex templates weren't available before 0.9.
Image classes have been renamed.  We will retain name compatibility
till 1.0.
@
text
@d10 5
d52 7
d66 1
@


1.4
log
@Add new 0.9 classes.
Add closure classes.
@
text
@d9 5
a13 1
// $Log: ia.h,v $
d51 1
a51 1
#if IA_MAJOR_VERSION_NUMBER<1 && IA_MINOR_VERSION_NUMBER<9
d54 8
@


1.3
log
@included "display.h" in versions < 0.9
modified product inlines to return values
@
text
@d3 8
d30 4
d37 1
d39 2
d46 5
@


1.2
log
@image iterators, UcharDDTempl and some forward compatibility for 0.8
@
text
@d20 1
d44 1
a44 1
    gcon(img, templ, dest_ps);
d51 1
a51 1
    addmax(img, templ, dest_ps);
d58 1
a58 1
    addmin(img, templ, dest_ps);
@


1.1
log
@Initial revision
@
text
@d7 1
d10 1
d13 2
a14 1
#if 1
d18 2
d24 1
d27 1
d30 30
@
