1 /*M///////////////////////////////////////////////////////////////////////////////////////
3 // IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
5 // By downloading, copying, installing or using the software you agree to this license.
6 // If you do not agree to this license, do not download, install,
7 // copy or use the software.
10 // Intel License Agreement
11 // For Open Source Computer Vision Library
13 // Copyright (C) 2000, Intel Corporation, all rights reserved.
14 // Third party copyrights are property of their respective owners.
16 // Redistribution and use in source and binary forms, with or without modification,
17 // are permitted provided that the following conditions are met:
19 // * Redistribution's of source code must retain the above copyright notice,
20 // this list of conditions and the following disclaimer.
22 // * Redistribution's in binary form must reproduce the above copyright notice,
23 // this list of conditions and the following disclaimer in the documentation
24 // and/or other materials provided with the distribution.
26 // * The name of Intel Corporation may not be used to endorse or promote products
27 // derived from this software without specific prior written permission.
29 // This software is provided by the copyright holders and contributors "as is" and
30 // any express or implied warranties, including, but not limited to, the implied
31 // warranties of merchantability and fitness for a particular purpose are disclaimed.
32 // In no event shall the Intel Corporation or contributors be liable for any direct,
33 // indirect, incidental, special, exemplary, or consequential damages
34 // (including, but not limited to, procurement of substitute goods or services;
35 // loss of use, data, or profits; or business interruption) however caused
36 // and on any theory of liability, whether in contract, strict liability,
37 // or tort (including negligence or otherwise) arising in any way out of
38 // the use of this software, even if advised of the possibility of such damage.
47 icvFindRuns( int numLines, /* number of scanlines */
48 uchar * prewarp_1, /* prewarp image 1 */
49 uchar * prewarp_2, /* prewarp image 2 */
50 int *line_lens_1, /* line lengths 1 */
51 int *line_lens_2, /* line lengths 2 */
52 int *runs_1, /* result runs 1 */
53 int *runs_2, /* result runs 2 */
54 int *num_runs_1, /* numbers of first runs */
59 err = icvFindRunsInOneImage( numLines, prewarp_1, line_lens_1, runs_1, num_runs_1 );
61 if( err != CV_NO_ERR )
64 err = icvFindRunsInOneImage( numLines, prewarp_2, line_lens_2, runs_2, num_runs_2 );
71 /*======================================================================================*/
74 icvGetColor( uchar * valueRGB )
77 int G = *(valueRGB + 1);
78 int B = *(valueRGB + 2);
80 return ( ((R + G + B) >> 3) & 0xFFFC );
84 /*======================================================================================*/
87 icvFindRunsInOneImage( int numLines, /* number of scanlines */
88 uchar * prewarp, /* prewarp image */
89 int *line_lens, /* line lengths in pixels */
90 int *runs, /* result runs */
104 curr_point = prewarp;
106 for( epiLine = 0; epiLine < numLines; epiLine++ )
109 curr_color = icvGetColor( curr_point );
111 runs[run_index++] = 0;
112 runs[run_index++] = curr_color;
117 for( index = 1; index < line_lens[epiLine]; index++ )
120 color = icvGetColor( curr_point );
122 if( color != curr_color )
124 runs[run_index++] = index;
125 runs[run_index++] = color;
133 runs[run_index++] = index;
134 num_runs[epiLine] = num;
141 /*======================================================================================*/
144 cvFindRuns( int numLines, /* number of scanlines */
145 uchar * prewarp_1, /* prewarp image 1 */
146 uchar * prewarp_2, /* prewarp image 2 */
147 int *line_lens_1, /* line lengths 1 */
148 int *line_lens_2, /* line lengths 2 */
149 int *runs_1, /* result runs 1 */
150 int *runs_2, /* result runs 2 */
151 int *num_runs_1, /* numbers of first runs */
154 IPPI_CALL( icvFindRuns( numLines, /* number of scanlines */
155 prewarp_1, /* prewarp image 1 */
156 prewarp_2, /* prewarp image 2 */
157 line_lens_1, /* line lengths 1 */
158 line_lens_2, /* line lengths 2 */
159 runs_1, /* result runs 1 */
160 runs_2, /* result runs 2 */
161 num_runs_1, /* numbers of first runs */