Update to 2.0.0 tree from current Fremantle build
[opencv] / cvaux / src / cvmorphing.cpp
diff --git a/cvaux/src/cvmorphing.cpp b/cvaux/src/cvmorphing.cpp
deleted file mode 100644 (file)
index e900c63..0000000
+++ /dev/null
@@ -1,396 +0,0 @@
-/*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*/
-#include "_cvaux.h"
-#include <assert.h>
-
-
-static CvStatus
-icvMorphEpilines8uC3( uchar * first_pix,        /* raster epiline from image 1      */
-                      uchar * second_pix,       /* raster epiline from image 2      */
-                      uchar * dst_pix,  /* raster epiline from dest image   */
-                      /* (it's an output parameter)       */
-                      float alpha,      /* relative position of camera      */
-                      int *first,       /* first sequence of runs           */
-                      int first_runs,   /* it's length                      */
-                      int *second,      /* second sequence of runs          */
-                      int second_runs, int *first_corr, /* corr data for the 1st seq        */
-                      int *second_corr, /* corr data for the 2nd seq        */
-                      int dst_len )
-{
-
-    float alpha1;               /* alpha - 1.0 */
-    int s, s1;                  /* integer variant of alpha and alpha1 ( 0 <= s,s1 <= 256 ) */
-    int curr;                   /* current index in run's array */
-
-    float begLine;              /* begin of current run */
-    float endLine;              /* end   of current run */
-
-    float begCorr;              /* begin of correspondence destination of run */
-    float endCorr;              /* end   of correspondence destination of run */
-
-    int begDestLine;            /* begin of current destanation of run */
-    int endDestLine;            /* end   of current destanation of run */
-    int begLineIndex;
-    int endLineIndex;
-    int indexImg1;
-    float step = 0;
-    int n;
-
-    memset( dst_pix, 0, dst_len );
-    alpha1 = (float) (1.0 - alpha);
-
-    s = (int) (alpha * 256);
-    s1 = 256 - s;
-
-    /* --------------Create first line------------- */
-
-    begLineIndex = first[0];
-    begLine = (float) begLineIndex;
-
-    curr = 0;
-
-    for( n = 0; n < first_runs; n++ )
-    {                           /* for each run */
-
-        begCorr = (float) first_corr[curr];
-        curr++;
-        endCorr = (float) first_corr[curr];
-        curr++;
-        endLineIndex = first[curr];
-        endLine = (float) endLineIndex;
-
-        begDestLine = (int) (alpha * begLine + alpha1 * begCorr);
-        endDestLine = (int) (alpha * endLine + alpha1 * endCorr);
-
-        indexImg1 = begDestLine * 3;
-
-        step = 0;
-        if( endDestLine != begDestLine )
-            step = (endLine - begLine) / ((float) (endDestLine - begDestLine));
-
-        if( begCorr != endCorr )
-        {
-
-            for( ; begDestLine < endDestLine; begDestLine++ )
-            {
-                /* for each pixel */
-
-                begLineIndex = (int) begLine;
-                begLineIndex *= 3;
-
-                /* Blend R */
-                dst_pix[indexImg1] = (uchar) (((int) (first_pix[begLineIndex]) * s) >> 8);
-
-                indexImg1++;
-
-                /* Blend G */
-                dst_pix[indexImg1] = (uchar) (((int) (first_pix[begLineIndex + 1]) * s) >> 8);
-
-                indexImg1++;
-
-                /* Blend B */
-                dst_pix[indexImg1] = (uchar) (((int) (first_pix[begLineIndex + 2]) * s) >> 8);
-
-                indexImg1++;
-
-                begLine += step;
-
-            }                   /* for */
-        }
-        else
-        {
-
-            for( ; begDestLine < endDestLine; begDestLine++ )
-            {
-                /* for each pixel */
-
-                begLineIndex = (int) begLine;
-                begLineIndex *= 3;
-
-                /* Blend R */
-                dst_pix[indexImg1] = first_pix[begLineIndex];
-                indexImg1++;
-
-                /* Blend G */
-                dst_pix[indexImg1] = first_pix[begLineIndex + 1];
-                indexImg1++;
-
-                /* Blend B */
-                dst_pix[indexImg1] = first_pix[begLineIndex + 2];
-
-                indexImg1++;
-
-                begLine += step;
-
-            }                   /* for */
-        }                       /* if */
-
-        begLineIndex = endLineIndex;
-        begLine = endLine;
-
-
-    }                           /* for each runs in first line */
-
-    begLineIndex = second[0];
-    begLine = (float) begLineIndex;
-
-    curr = 0;
-
-    /* --------------Create second line------------- */
-    curr = 0;;
-    for( n = 0; n < second_runs; n++ )
-    {                           /* for each run */
-
-        begCorr = (float) second_corr[curr];
-        curr++;
-        endCorr = (float) second_corr[curr];
-        curr++;
-        endLineIndex = second[curr];
-        endLine = (float) endLineIndex;
-
-        begDestLine = (int) (alpha1 * begLine + alpha * begCorr);
-        endDestLine = (int) (alpha1 * endLine + alpha * endCorr);
-
-        indexImg1 = begDestLine * 3;
-
-        step = 0;
-        if (endDestLine != begDestLine)
-            step = (endLine - begLine) / ((float) (endDestLine - begDestLine));
-
-        if( begCorr != endCorr )
-        {
-
-            for( ; begDestLine < endDestLine; begDestLine++ )
-            {
-                /* for each pixel */
-
-                begLineIndex = (int) begLine;
-                begLineIndex *= 3;
-
-                /* Blend R */
-                dst_pix[indexImg1] =
-                    (uchar) (dst_pix[indexImg1] +
-                             (uchar) (((unsigned int) (second_pix[begLineIndex]) * s1) >> 8));
-
-                indexImg1++;
-
-                /* Blend G */
-                dst_pix[indexImg1] =
-                    (uchar) (dst_pix[indexImg1] +
-                             (uchar) (((unsigned int) (second_pix[begLineIndex + 1]) * s1) >>
-                                      8));
-
-                indexImg1++;
-
-                /* Blend B */
-                dst_pix[indexImg1] =
-                    (uchar) (dst_pix[indexImg1] +
-                             (uchar) (((unsigned int) (second_pix[begLineIndex + 2]) * s1) >>
-                                      8));
-
-                indexImg1++;
-
-                begLine += step;
-
-            }                   /* for */
-        }
-        else
-        {
-
-            for( ; begDestLine < endDestLine; begDestLine++ )
-            {
-                /* for each pixel */
-
-                begLineIndex = (int) begLine;
-                begLineIndex *= 3;
-
-                /* Blend R */
-                dst_pix[indexImg1] = (uchar) (dst_pix[indexImg1] + second_pix[begLineIndex]);
-                indexImg1++;
-
-                /* Blend G */
-                dst_pix[indexImg1] =
-                    (uchar) (dst_pix[indexImg1] + second_pix[begLineIndex + 1]);
-                indexImg1++;
-
-                /* Blend B */
-                dst_pix[indexImg1] =
-                    (uchar) (dst_pix[indexImg1] + second_pix[begLineIndex + 2]);
-                /*assert(indexImg1 < dst_len); */
-
-                indexImg1++;
-
-                begLine += step;
-
-            }                   /* for */
-        }                       /* if */
-
-        begLineIndex = endLineIndex;
-        begLine = endLine;
-
-    }                           /* for each runs in second line */
-
-    return CV_NO_ERR;
-
-}                               /* icvMorphEpilines8uC3 */
-
-
-/*======================================================================================*/
-
-static CvStatus
-icvMorphEpilines8uC3Multi( int lines,   /* number of lines                              */
-                           uchar * first_pix,   /* raster epilines from the first image         */
-                           int *first_num,      /* numbers of pixel in first line               */
-                           uchar * second_pix,  /* raster epilines from the second image        */
-                           int *second_num,     /* numbers of pixel in second line              */
-                           uchar * dst_pix,     /* raster epiline from the destination image    */
-                           /* (it's an output parameter)                   */
-                           int *dst_num,        /* numbers of pixel in output line              */
-                           float alpha, /* relative position of camera                  */
-                           int *first,  /* first sequence of runs                       */
-                           int *first_runs,     /* it's length                                  */
-                           int *second, /* second sequence of runs                      */
-                           int *second_runs, int *first_corr,   /* correspond information for the 1st seq       */
-                           int *second_corr )   /* correspond information for the 2nd seq       */
-{
-    CvStatus error;
-    int currLine;
-    int currFirstPix = 0;
-    //int currFirstNum = 0;
-    int currSecondPix = 0;
-    //int currSecondNum = 0;
-    int currDstPix = 0;
-    int currFirst = 0;
-    //int currFirstRuns = 0;
-    int currSecond = 0;
-    //int currSecondRuns = 0;
-    int currFirstCorr = 0;
-    int currSecondCorr = 0;
-
-    if( lines < 1 ||
-        first_pix == 0 ||
-        first_num == 0 ||
-        second_pix == 0 ||
-        second_num == 0 ||
-        dst_pix == 0 ||
-        dst_num == 0 ||
-        alpha < 0 ||
-        alpha > 1 ||
-        first == 0 ||
-        first_runs == 0 ||
-        second == 0 || second_runs == 0 || first_corr == 0 || second_corr == 0 )
-        return CV_BADFACTOR_ERR;
-
-    for( currLine = 0; currLine < lines; currLine++ )
-    {
-
-        error = icvMorphEpilines8uC3( &(first_pix[currFirstPix]),
-                                      &(second_pix[currSecondPix]),
-                                      &(dst_pix[currDstPix]),
-                                      alpha,
-                                      &(first[currFirst]),
-                                      first_runs[currLine],
-                                      &(second[currSecond]),
-                                      second_runs[currLine],
-                                      &(first_corr[currFirstCorr]),
-                                      &(second_corr[currSecondCorr]), dst_num[currLine] * 3 );
-
-
-        if( error != CV_NO_ERR )
-            return CV_NO_ERR;
-
-        currFirstPix += first_num[currLine] * 3;
-        currSecondPix += second_num[currLine] * 3;
-        currDstPix += dst_num[currLine] * 3;
-        currFirst += (first_runs[currLine] * 2) + 1;
-        currSecond += (second_runs[currLine] * 2) + 1;
-        currFirstCorr += first_runs[currLine] * 2;
-        currSecondCorr += second_runs[currLine] * 2;
-
-    }                           /* for */
-
-    return CV_NO_ERR;
-
-}                               /* icvMorphEpilines8uC3Multi */
-
-
-
-
-/*======================================================================================*/
-
-CV_IMPL void
-cvMorphEpilinesMulti( int lines,        /* number of lines             */
-                      uchar * first_pix,        /* raster epilines from the first image      */
-                      int *first_num,   /* numbers of pixel in first line            */
-                      uchar * second_pix,       /* raster epilines from the second image     */
-                      int *second_num,  /* numbers of pixel in second line           */
-                      uchar * dst_pix,  /* raster epiline from the destination image */
-                      /* (it's an output parameter)                */
-                      int *dst_num,     /* numbers of pixel in output line           */
-                      float alpha,      /* relative position of camera               */
-                      int *first,       /* first sequence of runs                    */
-                      int *first_runs,  /* it's length                               */
-                      int *second,      /* second sequence of runs                   */
-                      int *second_runs, int *first_corr,        /* correspond information for the 1st seq    */
-                      int *second_corr  /* correspond information for the 2nd seq     */
-     )
-{
-    CV_FUNCNAME( "cvMorphEpilinesMulti" );
-    __BEGIN__;
-
-    IPPI_CALL( icvMorphEpilines8uC3Multi( lines,        /* number of lines                           */
-                                          first_pix,    /* raster epilines from the first image      */
-                                          first_num,    /* numbers of pixel in first line            */
-                                          second_pix,   /* raster epilines from the second image     */
-                                          second_num,   /* numbers of pixel in second line           */
-                                          dst_pix,      /* raster epiline from the destination image */
-                                          /* (it's an output parameter)                   */
-                                          dst_num,      /* numbers of pixel in output line           */
-                                          alpha,        /* relative position of camera               */
-                                          first,        /* first sequence of runs                    */
-                                          first_runs,   /* it's length                               */
-                                          second,       /* second sequence of runs                   */
-                                          second_runs, first_corr,      /* correspond information for the 1st seq    */
-                                          second_corr   /* correspond information for the 2nd seq     */
-                ));
-    __END__;
-}
-