完善目录结构

完善了目录结构,添加了以前的web段com组件调用的代码(在/测试目录下)(部署没有使用到)
This commit is contained in:
yanshui177
2017-05-17 20:43:16 +08:00
parent ad754709a5
commit 6dcd378738
1246 changed files with 671388 additions and 517 deletions

View File

@@ -0,0 +1,7 @@
EXTRA_DIST = cvstreams.h
# The directory where the include files will be installed
libcvincludedir = $(includedir)/opencv
# Which header files to install
libcvinclude_HEADERS = cv.h cvcompat.h cvtypes.h cv.hpp

View File

@@ -0,0 +1,465 @@
# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ../..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
subdir = cv/include
DIST_COMMON = $(libcvinclude_HEADERS) $(srcdir)/Makefile.am \
$(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/autotools/aclocal/az_python.m4 \
$(top_srcdir)/autotools/aclocal/pkg.m4 \
$(top_srcdir)/autotools/aclocal/swig_complete.m4 \
$(top_srcdir)/autotools/aclocal/version_at_least.m4 \
$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/autotools/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/cvconfig.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(libcvincludedir)"
libcvincludeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(libcvinclude_HEADERS)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ALLOCA = @ALLOCA@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
AS = @AS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_APPS_FALSE = @BUILD_APPS_FALSE@
BUILD_APPS_TRUE = @BUILD_APPS_TRUE@
BUILD_CARBON_FALSE = @BUILD_CARBON_FALSE@
BUILD_CARBON_TRUE = @BUILD_CARBON_TRUE@
BUILD_DC1394_FALSE = @BUILD_DC1394_FALSE@
BUILD_DC1394_TRUE = @BUILD_DC1394_TRUE@
BUILD_FFMPEG_FALSE = @BUILD_FFMPEG_FALSE@
BUILD_FFMPEG_TRUE = @BUILD_FFMPEG_TRUE@
BUILD_GTK_FALSE = @BUILD_GTK_FALSE@
BUILD_GTK_TRUE = @BUILD_GTK_TRUE@
BUILD_PYTHON_WRAPPERS_FALSE = @BUILD_PYTHON_WRAPPERS_FALSE@
BUILD_PYTHON_WRAPPERS_TRUE = @BUILD_PYTHON_WRAPPERS_TRUE@
BUILD_QUICKTIME_FALSE = @BUILD_QUICKTIME_FALSE@
BUILD_QUICKTIME_TRUE = @BUILD_QUICKTIME_TRUE@
BUILD_V4L_FALSE = @BUILD_V4L_FALSE@
BUILD_V4L_TRUE = @BUILD_V4L_TRUE@
BUILD_XINE_FALSE = @BUILD_XINE_FALSE@
BUILD_XINE_TRUE = @BUILD_XINE_TRUE@
CARBON_CFLAGS = @CARBON_CFLAGS@
CARBON_LIBS = @CARBON_LIBS@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEBUG = @DEBUG@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FFMPEGLIBS = @FFMPEGLIBS@
GREP = @GREP@
GTHREAD_CFLAGS = @GTHREAD_CFLAGS@
GTHREAD_LIBS = @GTHREAD_LIBS@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_LIBS = @GTK_LIBS@
IEEE1394LIBS = @IEEE1394LIBS@
IMAGELIBS = @IMAGELIBS@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
LT_VERSION = @LT_VERSION@
MAKEINFO = @MAKEINFO@
MMAJOR = @MMAJOR@
MMINOR = @MMINOR@
MSUBMINOR = @MSUBMINOR@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
PYTHON = @PYTHON@
PYTHON_CSPEC = @PYTHON_CSPEC@
PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
PYTHON_LSPEC = @PYTHON_LSPEC@
PYTHON_PLATFORM = @PYTHON_PLATFORM@
PYTHON_PREFIX = @PYTHON_PREFIX@
PYTHON_VERSION = @PYTHON_VERSION@
QUICKTIME_CFLAGS = @QUICKTIME_CFLAGS@
QUICKTIME_LIBS = @QUICKTIME_LIBS@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
SWIG = @SWIG@
SWIG_PYTHON_LIBS = @SWIG_PYTHON_LIBS@
SWIG_PYTHON_OPT = @SWIG_PYTHON_OPT@
SWIG_RUNTIME_LIBS_DIR = @SWIG_RUNTIME_LIBS_DIR@
SWIG_VERSION = @SWIG_VERSION@
UPDATE_SWIG_WRAPPERS_FALSE = @UPDATE_SWIG_WRAPPERS_FALSE@
UPDATE_SWIG_WRAPPERS_TRUE = @UPDATE_SWIG_WRAPPERS_TRUE@
VERSION = @VERSION@
XINE_LIBS = @XINE_LIBS@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
pkgpyexecdir = @pkgpyexecdir@
pkgpythondir = @pkgpythondir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
pyexecdir = @pyexecdir@
pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target = @target@
target_alias = @target_alias@
target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
EXTRA_DIST = cvstreams.h
# The directory where the include files will be installed
libcvincludedir = $(includedir)/opencv
# Which header files to install
libcvinclude_HEADERS = cv.h cvcompat.h cvtypes.h cv.hpp
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu cv/include/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu cv/include/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
install-libcvincludeHEADERS: $(libcvinclude_HEADERS)
@$(NORMAL_INSTALL)
test -z "$(libcvincludedir)" || $(mkdir_p) "$(DESTDIR)$(libcvincludedir)"
@list='$(libcvinclude_HEADERS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f=$(am__strip_dir) \
echo " $(libcvincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libcvincludedir)/$$f'"; \
$(libcvincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libcvincludedir)/$$f"; \
done
uninstall-libcvincludeHEADERS:
@$(NORMAL_UNINSTALL)
@list='$(libcvinclude_HEADERS)'; for p in $$list; do \
f=$(am__strip_dir) \
echo " rm -f '$(DESTDIR)$(libcvincludedir)/$$f'"; \
rm -f "$(DESTDIR)$(libcvincludedir)/$$f"; \
done
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(HEADERS)
installdirs:
for dir in "$(DESTDIR)$(libcvincludedir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-libtool \
distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am: install-libcvincludeHEADERS
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-info-am uninstall-libcvincludeHEADERS
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-libtool ctags distclean distclean-generic \
distclean-libtool distclean-tags distdir dvi dvi-am html \
html-am info info-am install install-am install-data \
install-data-am install-exec install-exec-am install-info \
install-info-am install-libcvincludeHEADERS install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-info-am \
uninstall-libcvincludeHEADERS
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@@ -0,0 +1,372 @@
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// Intel License Agreement
// For Open Source Computer Vision Library
//
// Copyright (C) 2000, Intel Corporation, all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistribution's of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistribution's in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// * The name of Intel Corporation may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Intel Corporation or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/
#ifndef _CV_HPP_
#define _CV_HPP_
#ifdef __cplusplus
/****************************************************************************************\
* CvBaseImageFilter: Base class for filtering operations *
\****************************************************************************************/
#define CV_WHOLE 0
#define CV_START 1
#define CV_END 2
#define CV_MIDDLE 4
#define CV_ISOLATED_ROI 8
typedef void (*CvRowFilterFunc)( const uchar* src, uchar* dst, void* params );
typedef void (*CvColumnFilterFunc)( uchar** src, uchar* dst, int dst_step, int count, void* params );
class CV_EXPORTS CvBaseImageFilter
{
public:
CvBaseImageFilter();
/* calls init() */
CvBaseImageFilter( int _max_width, int _src_type, int _dst_type,
bool _is_separable, CvSize _ksize,
CvPoint _anchor=cvPoint(-1,-1),
int _border_mode=IPL_BORDER_REPLICATE,
CvScalar _border_value=cvScalarAll(0) );
virtual ~CvBaseImageFilter();
/* initializes the class for processing an image of maximal width _max_width,
input image has data type _src_type, the output will have _dst_type.
_is_separable != 0 if the filter is separable
(specific behaviour is defined in a derived class), 0 otherwise.
_ksize and _anchor specify the kernel size and the anchor point. _anchor=(-1,-1) means
that the anchor is at the center.
to get interpolate pixel values outside the image _border_mode=IPL_BORDER_*** is used,
_border_value specify the pixel value in case of IPL_BORDER_CONSTANT border mode.
before initialization clear() is called if necessary.
*/
virtual void init( int _max_width, int _src_type, int _dst_type,
bool _is_separable, CvSize _ksize,
CvPoint _anchor=cvPoint(-1,-1),
int _border_mode=IPL_BORDER_REPLICATE,
CvScalar _border_value=cvScalarAll(0) );
/* releases all the internal buffers.
for the further use of the object, init() needs to be called. */
virtual void clear();
/* processes input image or a part of it.
input is represented either as matrix (CvMat* src)
or a list of row pointers (uchar** src2).
in the later case width, _src_y1 and _src_y2 are used to specify the size.
_dst is the output image/matrix.
_src_roi specifies the roi inside the input image to process,
(0,0,-1,-1) denotes the whole image.
_dst_origin is the upper-left corner of the filtered roi within the output image.
_phase is either CV_START, or CV_END, or CV_MIDDLE, or CV_START|CV_END, or CV_WHOLE,
which is the same as CV_START|CV_END.
CV_START means that the input is the first (top) stripe of the processed image [roi],
CV_END - the input is the last (bottom) stripe of the processed image [roi],
CV_MIDDLE - the input is neither first nor last stripe.
CV_WHOLE - the input is the whole processed image [roi].
*/
virtual int process( const CvMat* _src, CvMat* _dst,
CvRect _src_roi=cvRect(0,0,-1,-1),
CvPoint _dst_origin=cvPoint(0,0), int _flags=0 );
/* retrieve various parameters of the filtering object */
int get_src_type() const { return src_type; }
int get_dst_type() const { return dst_type; }
int get_work_type() const { return work_type; }
CvSize get_kernel_size() const { return ksize; }
CvPoint get_anchor() const { return anchor; }
int get_width() const { return prev_x_range.end_index - prev_x_range.start_index; }
CvRowFilterFunc get_x_filter_func() const { return x_func; }
CvColumnFilterFunc get_y_filter_func() const { return y_func; }
protected:
/* initializes work_type, buf_size and max_rows */
virtual void get_work_params();
/* it is called (not always) from process when _phase=CV_START or CV_WHOLE.
the method initializes ring buffer (buf_end, buf_head, buf_tail, buf_count, rows),
prev_width, prev_x_range, const_row, border_tab, border_tab_sz* */
virtual void start_process( CvSlice x_range, int width );
/* forms pointers to "virtual rows" above or below the processed roi using the specified
border mode */
virtual void make_y_border( int row_count, int top_rows, int bottom_rows );
virtual int fill_cyclic_buffer( const uchar* src, int src_step,
int y, int y1, int y2 );
enum { ALIGN=32 };
int max_width;
/* currently, work_type must be the same as src_type in case of non-separable filters */
int min_depth, src_type, dst_type, work_type;
/* pointers to convolution functions, initialized by init method.
for non-separable filters only y_conv should be set */
CvRowFilterFunc x_func;
CvColumnFilterFunc y_func;
uchar* buffer;
uchar** rows;
int top_rows, bottom_rows, max_rows;
uchar *buf_start, *buf_end, *buf_head, *buf_tail;
int buf_size, buf_step, buf_count, buf_max_count;
bool is_separable;
CvSize ksize;
CvPoint anchor;
int max_ky, border_mode;
CvScalar border_value;
uchar* const_row;
int* border_tab;
int border_tab_sz1, border_tab_sz;
CvSlice prev_x_range;
int prev_width;
};
/* Derived class, for linear separable filtering. */
class CV_EXPORTS CvSepFilter : public CvBaseImageFilter
{
public:
CvSepFilter();
CvSepFilter( int _max_width, int _src_type, int _dst_type,
const CvMat* _kx, const CvMat* _ky,
CvPoint _anchor=cvPoint(-1,-1),
int _border_mode=IPL_BORDER_REPLICATE,
CvScalar _border_value=cvScalarAll(0) );
virtual ~CvSepFilter();
virtual void init( int _max_width, int _src_type, int _dst_type,
const CvMat* _kx, const CvMat* _ky,
CvPoint _anchor=cvPoint(-1,-1),
int _border_mode=IPL_BORDER_REPLICATE,
CvScalar _border_value=cvScalarAll(0) );
virtual void init_deriv( int _max_width, int _src_type, int _dst_type,
int dx, int dy, int aperture_size, int flags=0 );
virtual void init_gaussian( int _max_width, int _src_type, int _dst_type,
int gaussian_size, double sigma );
/* dummy method to avoid compiler warnings */
virtual void init( int _max_width, int _src_type, int _dst_type,
bool _is_separable, CvSize _ksize,
CvPoint _anchor=cvPoint(-1,-1),
int _border_mode=IPL_BORDER_REPLICATE,
CvScalar _border_value=cvScalarAll(0) );
virtual void clear();
const CvMat* get_x_kernel() const { return kx; }
const CvMat* get_y_kernel() const { return ky; }
int get_x_kernel_flags() const { return kx_flags; }
int get_y_kernel_flags() const { return ky_flags; }
enum { GENERIC=0, ASYMMETRICAL=1, SYMMETRICAL=2, POSITIVE=4, SUM_TO_1=8, INTEGER=16 };
enum { NORMALIZE_KERNEL=1, FLIP_KERNEL=2 };
static void init_gaussian_kernel( CvMat* kernel, double sigma=-1 );
static void init_sobel_kernel( CvMat* _kx, CvMat* _ky, int dx, int dy, int flags=0 );
static void init_scharr_kernel( CvMat* _kx, CvMat* _ky, int dx, int dy, int flags=0 );
protected:
CvMat *kx, *ky;
int kx_flags, ky_flags;
};
/* Derived class, for linear non-separable filtering. */
class CV_EXPORTS CvLinearFilter : public CvBaseImageFilter
{
public:
CvLinearFilter();
CvLinearFilter( int _max_width, int _src_type, int _dst_type,
const CvMat* _kernel,
CvPoint _anchor=cvPoint(-1,-1),
int _border_mode=IPL_BORDER_REPLICATE,
CvScalar _border_value=cvScalarAll(0) );
virtual ~CvLinearFilter();
virtual void init( int _max_width, int _src_type, int _dst_type,
const CvMat* _kernel,
CvPoint _anchor=cvPoint(-1,-1),
int _border_mode=IPL_BORDER_REPLICATE,
CvScalar _border_value=cvScalarAll(0) );
/* dummy method to avoid compiler warnings */
virtual void init( int _max_width, int _src_type, int _dst_type,
bool _is_separable, CvSize _ksize,
CvPoint _anchor=cvPoint(-1,-1),
int _border_mode=IPL_BORDER_REPLICATE,
CvScalar _border_value=cvScalarAll(0) );
virtual void clear();
const CvMat* get_kernel() const { return kernel; }
uchar* get_kernel_sparse_buf() { return k_sparse; }
int get_kernel_sparse_count() const { return k_sparse_count; }
protected:
CvMat *kernel;
uchar* k_sparse;
int k_sparse_count;
};
/* Box filter ("all 1's", optionally normalized) filter. */
class CV_EXPORTS CvBoxFilter : public CvBaseImageFilter
{
public:
CvBoxFilter();
CvBoxFilter( int _max_width, int _src_type, int _dst_type,
bool _normalized, CvSize _ksize,
CvPoint _anchor=cvPoint(-1,-1),
int _border_mode=IPL_BORDER_REPLICATE,
CvScalar _border_value=cvScalarAll(0) );
virtual void init( int _max_width, int _src_type, int _dst_type,
bool _normalized, CvSize _ksize,
CvPoint _anchor=cvPoint(-1,-1),
int _border_mode=IPL_BORDER_REPLICATE,
CvScalar _border_value=cvScalarAll(0) );
virtual ~CvBoxFilter();
bool is_normalized() const { return normalized; }
double get_scale() const { return scale; }
uchar* get_sum_buf() { return sum; }
int* get_sum_count_ptr() { return &sum_count; }
protected:
virtual void start_process( CvSlice x_range, int width );
uchar* sum;
int sum_count;
bool normalized;
double scale;
};
/* Laplacian operator: (d2/dx + d2/dy)I. */
class CV_EXPORTS CvLaplaceFilter : public CvSepFilter
{
public:
CvLaplaceFilter();
CvLaplaceFilter( int _max_width, int _src_type, int _dst_type,
bool _normalized, int _ksize,
int _border_mode=IPL_BORDER_REPLICATE,
CvScalar _border_value=cvScalarAll(0) );
virtual ~CvLaplaceFilter();
virtual void init( int _max_width, int _src_type, int _dst_type,
bool _normalized, int _ksize,
int _border_mode=IPL_BORDER_REPLICATE,
CvScalar _border_value=cvScalarAll(0) );
/* dummy methods to avoid compiler warnings */
virtual void init( int _max_width, int _src_type, int _dst_type,
bool _is_separable, CvSize _ksize,
CvPoint _anchor=cvPoint(-1,-1),
int _border_mode=IPL_BORDER_REPLICATE,
CvScalar _border_value=cvScalarAll(0) );
virtual void init( int _max_width, int _src_type, int _dst_type,
const CvMat* _kx, const CvMat* _ky,
CvPoint _anchor=cvPoint(-1,-1),
int _border_mode=IPL_BORDER_REPLICATE,
CvScalar _border_value=cvScalarAll(0) );
bool is_normalized() const { return normalized; }
bool is_basic_laplacian() const { return basic_laplacian; }
protected:
void get_work_params();
bool basic_laplacian;
bool normalized;
};
/* basic morphological operations: erosion & dilation */
class CV_EXPORTS CvMorphology : public CvBaseImageFilter
{
public:
CvMorphology();
CvMorphology( int _operation, int _max_width, int _src_dst_type,
int _element_shape, CvMat* _element,
CvSize _ksize=cvSize(0,0), CvPoint _anchor=cvPoint(-1,-1),
int _border_mode=IPL_BORDER_REPLICATE,
CvScalar _border_value=cvScalarAll(0) );
virtual ~CvMorphology();
virtual void init( int _operation, int _max_width, int _src_dst_type,
int _element_shape, CvMat* _element,
CvSize _ksize=cvSize(0,0), CvPoint _anchor=cvPoint(-1,-1),
int _border_mode=IPL_BORDER_REPLICATE,
CvScalar _border_value=cvScalarAll(0) );
/* dummy method to avoid compiler warnings */
virtual void init( int _max_width, int _src_type, int _dst_type,
bool _is_separable, CvSize _ksize,
CvPoint _anchor=cvPoint(-1,-1),
int _border_mode=IPL_BORDER_REPLICATE,
CvScalar _border_value=cvScalarAll(0) );
virtual void clear();
const CvMat* get_element() const { return element; }
int get_element_shape() const { return el_shape; }
int get_operation() const { return operation; }
uchar* get_element_sparse_buf() { return el_sparse; }
int get_element_sparse_count() const { return el_sparse_count; }
enum { RECT=0, CROSS=1, ELLIPSE=2, CUSTOM=100, BINARY = 0, GRAYSCALE=256 };
enum { ERODE=0, DILATE=1 };
static void init_binary_element( CvMat* _element, int _element_shape,
CvPoint _anchor=cvPoint(-1,-1) );
protected:
void start_process( CvSlice x_range, int width );
int fill_cyclic_buffer( const uchar* src, int src_step,
int y0, int y1, int y2 );
uchar* el_sparse;
int el_sparse_count;
CvMat *element;
int el_shape;
int operation;
};
#endif /* __cplusplus */
#endif /* _CV_HPP_ */
/* End of file. */

View File

@@ -0,0 +1,93 @@
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// Intel License Agreement
// For Open Source Computer Vision Library
//
// Copyright (C) 2000, Intel Corporation, all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistribution's of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistribution's in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// * The name of Intel Corporation may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Intel Corporation or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/
#ifndef _CVSTREAMS_H_
#define _CVSTREAMS_H_
#ifdef WIN32
#include <streams.h> /* !!! IF YOU'VE GOT AN ERROR HERE, PLEASE READ BELOW !!! */
/***************** How to get Visual Studio understand streams.h ****************\
You need DirectShow SDK that is now a part of Platform SDK
(Windows Server 2003 SP1 SDK or later),
and DirectX SDK (2006 April or later).
1. Download the Platform SDK from
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
and DirectX SDK from msdn.microsoft.com/directx/
(They are huge, but you can download it by parts).
If it doesn't work for you, consider HighGUI that can capture video via VFW or MIL
2. Install Platform SDK together with DirectShow SDK.
Install DirectX (with or without sample code).
3. Build baseclasses.
See <PlatformSDKInstallFolder>\samples\multimedia\directshow\readme.txt.
4. Copy the built libraries (called strmbase.lib and strmbasd.lib
in Release and Debug versions, respectively) to
<PlatformSDKInstallFolder>\lib.
5. In Developer Studio add the following paths:
<DirectXSDKInstallFolder>\include
<PlatformSDKInstallFolder>\include
<PlatformSDKInstallFolder>\samples\multimedia\directshow\baseclasses
to the includes' search path
(at Tools->Options->Directories->Include files in case of Visual Studio 6.0,
at Tools->Options->Projects and Solutions->VC++ Directories->Include files in case
of Visual Studio 2005)
Add
<DirectXSDKInstallFolder>\lib
<PlatformSDKInstallFolder>\lib
to the libraries' search path (in the same dialog, ...->"Library files" page)
NOTE: PUT THE ADDED LINES ON THE VERY TOP OF THE LISTS, OTHERWISE YOU MAY STILL GET
COMPILER OR LINKER ERRORS. This is necessary, because Visual Studio
may include older versions of the same headers and libraries.
6. Now you can build OpenCV DirectShow filters.
\***********************************************************************************/
#endif
#endif /*_CVSTREAMS_H_*/

View File

@@ -0,0 +1,384 @@
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// Intel License Agreement
// For Open Source Computer Vision Library
//
// Copyright (C) 2000, Intel Corporation, all rights reserved.
// Third party copyrights are property of their respective owners.
//
// Redistribution and use in source and binary forms, with or without modification,
// are permitted provided that the following conditions are met:
//
// * Redistribution's of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistribution's in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// * The name of Intel Corporation may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// This software is provided by the copyright holders and contributors "as is" and
// any express or implied warranties, including, but not limited to, the implied
// warranties of merchantability and fitness for a particular purpose are disclaimed.
// In no event shall the Intel Corporation or contributors be liable for any direct,
// indirect, incidental, special, exemplary, or consequential damages
// (including, but not limited to, procurement of substitute goods or services;
// loss of use, data, or profits; or business interruption) however caused
// and on any theory of liability, whether in contract, strict liability,
// or tort (including negligence or otherwise) arising in any way out of
// the use of this software, even if advised of the possibility of such damage.
//
//M*/
#ifndef _CVTYPES_H_
#define _CVTYPES_H_
#ifndef SKIP_INCLUDES
#include <assert.h>
#include <stdlib.h>
#endif
/* spatial and central moments */
typedef struct CvMoments
{
double m00, m10, m01, m20, m11, m02, m30, m21, m12, m03; /* spatial moments */
double mu20, mu11, mu02, mu30, mu21, mu12, mu03; /* central moments */
double inv_sqrt_m00; /* m00 != 0 ? 1/sqrt(m00) : 0 */
}
CvMoments;
/* Hu invariants */
typedef struct CvHuMoments
{
double hu1, hu2, hu3, hu4, hu5, hu6, hu7; /* Hu invariants */
}
CvHuMoments;
/**************************** Connected Component **************************************/
typedef struct CvConnectedComp
{
double area; /* area of the connected component */
CvScalar value; /* average color of the connected component */
CvRect rect; /* ROI of the component */
CvSeq* contour; /* optional component boundary
(the contour might have child contours corresponding to the holes)*/
}
CvConnectedComp;
/*
Internal structure that is used for sequental retrieving contours from the image.
It supports both hierarchical and plane variants of Suzuki algorithm.
*/
typedef struct _CvContourScanner* CvContourScanner;
/* contour retrieval mode */
#define CV_RETR_EXTERNAL 0
#define CV_RETR_LIST 1
#define CV_RETR_CCOMP 2
#define CV_RETR_TREE 3
/* contour approximation method */
#define CV_CHAIN_CODE 0
#define CV_CHAIN_APPROX_NONE 1
#define CV_CHAIN_APPROX_SIMPLE 2
#define CV_CHAIN_APPROX_TC89_L1 3
#define CV_CHAIN_APPROX_TC89_KCOS 4
#define CV_LINK_RUNS 5
/* Freeman chain reader state */
typedef struct CvChainPtReader
{
CV_SEQ_READER_FIELDS()
char code;
CvPoint pt;
char deltas[8][2];
}
CvChainPtReader;
/* initializes 8-element array for fast access to 3x3 neighborhood of a pixel */
#define CV_INIT_3X3_DELTAS( deltas, step, nch ) \
((deltas)[0] = (nch), (deltas)[1] = -(step) + (nch), \
(deltas)[2] = -(step), (deltas)[3] = -(step) - (nch), \
(deltas)[4] = -(nch), (deltas)[5] = (step) - (nch), \
(deltas)[6] = (step), (deltas)[7] = (step) + (nch))
/* Contour tree header */
typedef struct CvContourTree
{
CV_SEQUENCE_FIELDS()
CvPoint p1; /* the first point of the binary tree root segment */
CvPoint p2; /* the last point of the binary tree root segment */
}
CvContourTree;
/* Finds a sequence of convexity defects of given contour */
typedef struct CvConvexityDefect
{
CvPoint* start; /* point of the contour where the defect begins */
CvPoint* end; /* point of the contour where the defect ends */
CvPoint* depth_point; /* the farthest from the convex hull point within the defect */
float depth; /* distance between the farthest point and the convex hull */
}
CvConvexityDefect;
/************ Data structures and related enumerations for Planar Subdivisions ************/
typedef size_t CvSubdiv2DEdge;
#define CV_QUADEDGE2D_FIELDS() \
int flags; \
struct CvSubdiv2DPoint* pt[4]; \
CvSubdiv2DEdge next[4];
#define CV_SUBDIV2D_POINT_FIELDS()\
int flags; \
CvSubdiv2DEdge first; \
CvPoint2D32f pt;
#define CV_SUBDIV2D_VIRTUAL_POINT_FLAG (1 << 30)
typedef struct CvQuadEdge2D
{
CV_QUADEDGE2D_FIELDS()
}
CvQuadEdge2D;
typedef struct CvSubdiv2DPoint
{
CV_SUBDIV2D_POINT_FIELDS()
}
CvSubdiv2DPoint;
#define CV_SUBDIV2D_FIELDS() \
CV_GRAPH_FIELDS() \
int quad_edges; \
int is_geometry_valid; \
CvSubdiv2DEdge recent_edge; \
CvPoint2D32f topleft; \
CvPoint2D32f bottomright;
typedef struct CvSubdiv2D
{
CV_SUBDIV2D_FIELDS()
}
CvSubdiv2D;
typedef enum CvSubdiv2DPointLocation
{
CV_PTLOC_ERROR = -2,
CV_PTLOC_OUTSIDE_RECT = -1,
CV_PTLOC_INSIDE = 0,
CV_PTLOC_VERTEX = 1,
CV_PTLOC_ON_EDGE = 2
}
CvSubdiv2DPointLocation;
typedef enum CvNextEdgeType
{
CV_NEXT_AROUND_ORG = 0x00,
CV_NEXT_AROUND_DST = 0x22,
CV_PREV_AROUND_ORG = 0x11,
CV_PREV_AROUND_DST = 0x33,
CV_NEXT_AROUND_LEFT = 0x13,
CV_NEXT_AROUND_RIGHT = 0x31,
CV_PREV_AROUND_LEFT = 0x20,
CV_PREV_AROUND_RIGHT = 0x02
}
CvNextEdgeType;
/* get the next edge with the same origin point (counterwise) */
#define CV_SUBDIV2D_NEXT_EDGE( edge ) (((CvQuadEdge2D*)((edge) & ~3))->next[(edge)&3])
/* Defines for Distance Transform */
#define CV_DIST_USER -1 /* User defined distance */
#define CV_DIST_L1 1 /* distance = |x1-x2| + |y1-y2| */
#define CV_DIST_L2 2 /* the simple euclidean distance */
#define CV_DIST_C 3 /* distance = max(|x1-x2|,|y1-y2|) */
#define CV_DIST_L12 4 /* L1-L2 metric: distance = 2(sqrt(1+x*x/2) - 1)) */
#define CV_DIST_FAIR 5 /* distance = c^2(|x|/c-log(1+|x|/c)), c = 1.3998 */
#define CV_DIST_WELSCH 6 /* distance = c^2/2(1-exp(-(x/c)^2)), c = 2.9846 */
#define CV_DIST_HUBER 7 /* distance = |x|<c ? x^2/2 : c(|x|-c/2), c=1.345 */
/* Filters used in pyramid decomposition */
typedef enum CvFilter
{
CV_GAUSSIAN_5x5 = 7
}
CvFilter;
/****************************************************************************************/
/* Older definitions */
/****************************************************************************************/
typedef float* CvVect32f;
typedef float* CvMatr32f;
typedef double* CvVect64d;
typedef double* CvMatr64d;
typedef struct CvMatrix3
{
float m[3][3];
}
CvMatrix3;
#ifdef __cplusplus
extern "C" {
#endif
typedef float (CV_CDECL * CvDistanceFunction)( const float* a, const float* b, void* user_param );
#ifdef __cplusplus
}
#endif
typedef struct CvConDensation
{
int MP;
int DP;
float* DynamMatr; /* Matrix of the linear Dynamics system */
float* State; /* Vector of State */
int SamplesNum; /* Number of the Samples */
float** flSamples; /* arr of the Sample Vectors */
float** flNewSamples; /* temporary array of the Sample Vectors */
float* flConfidence; /* Confidence for each Sample */
float* flCumulative; /* Cumulative confidence */
float* Temp; /* Temporary vector */
float* RandomSample; /* RandomVector to update sample set */
struct CvRandState* RandS; /* Array of structures to generate random vectors */
}
CvConDensation;
/*
standard Kalman filter (in G. Welch' and G. Bishop's notation):
x(k)=A*x(k-1)+B*u(k)+w(k) p(w)~N(0,Q)
z(k)=H*x(k)+v(k), p(v)~N(0,R)
*/
typedef struct CvKalman
{
int MP; /* number of measurement vector dimensions */
int DP; /* number of state vector dimensions */
int CP; /* number of control vector dimensions */
/* backward compatibility fields */
#if 1
float* PosterState; /* =state_pre->data.fl */
float* PriorState; /* =state_post->data.fl */
float* DynamMatr; /* =transition_matrix->data.fl */
float* MeasurementMatr; /* =measurement_matrix->data.fl */
float* MNCovariance; /* =measurement_noise_cov->data.fl */
float* PNCovariance; /* =process_noise_cov->data.fl */
float* KalmGainMatr; /* =gain->data.fl */
float* PriorErrorCovariance;/* =error_cov_pre->data.fl */
float* PosterErrorCovariance;/* =error_cov_post->data.fl */
float* Temp1; /* temp1->data.fl */
float* Temp2; /* temp2->data.fl */
#endif
CvMat* state_pre; /* predicted state (x'(k)):
x(k)=A*x(k-1)+B*u(k) */
CvMat* state_post; /* corrected state (x(k)):
x(k)=x'(k)+K(k)*(z(k)-H*x'(k)) */
CvMat* transition_matrix; /* state transition matrix (A) */
CvMat* control_matrix; /* control matrix (B)
(it is not used if there is no control)*/
CvMat* measurement_matrix; /* measurement matrix (H) */
CvMat* process_noise_cov; /* process noise covariance matrix (Q) */
CvMat* measurement_noise_cov; /* measurement noise covariance matrix (R) */
CvMat* error_cov_pre; /* priori error estimate covariance matrix (P'(k)):
P'(k)=A*P(k-1)*At + Q)*/
CvMat* gain; /* Kalman gain matrix (K(k)):
K(k)=P'(k)*Ht*inv(H*P'(k)*Ht+R)*/
CvMat* error_cov_post; /* posteriori error estimate covariance matrix (P(k)):
P(k)=(I-K(k)*H)*P'(k) */
CvMat* temp1; /* temporary matrices */
CvMat* temp2;
CvMat* temp3;
CvMat* temp4;
CvMat* temp5;
}
CvKalman;
/*********************** Haar-like Object Detection structures **************************/
#define CV_HAAR_MAGIC_VAL 0x42500000
#define CV_TYPE_NAME_HAAR "opencv-haar-classifier"
#define CV_IS_HAAR_CLASSIFIER( haar ) \
((haar) != NULL && \
(((const CvHaarClassifierCascade*)(haar))->flags & CV_MAGIC_MASK)==CV_HAAR_MAGIC_VAL)
#define CV_HAAR_FEATURE_MAX 3
typedef struct CvHaarFeature
{
int tilted;
struct
{
CvRect r;
float weight;
} rect[CV_HAAR_FEATURE_MAX];
}
CvHaarFeature;
typedef struct CvHaarClassifier
{
int count;
CvHaarFeature* haar_feature;
float* threshold;
int* left;
int* right;
float* alpha;
}
CvHaarClassifier;
typedef struct CvHaarStageClassifier
{
int count;
float threshold;
CvHaarClassifier* classifier;
int next;
int child;
int parent;
}
CvHaarStageClassifier;
typedef struct CvHidHaarClassifierCascade CvHidHaarClassifierCascade;
typedef struct CvHaarClassifierCascade
{
int flags;
int count;
CvSize orig_window_size;
CvSize real_window_size;
double scale;
CvHaarStageClassifier* stage_classifier;
CvHidHaarClassifierCascade* hid_cascade;
}
CvHaarClassifierCascade;
typedef struct CvAvgComp
{
CvRect rect;
int neighbors;
}
CvAvgComp;
#endif /*_CVTYPES_H_*/
/* End of file. */