camellia 2.5.10-i486-linux

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. data/README +58 -0
  2. data/doc/README +58 -0
  3. data/doc/camellia.dox +205 -0
  4. data/doc/html/annotated.html +46 -0
  5. data/doc/html/camellia_8h-source.html +1350 -0
  6. data/doc/html/camellia_8h.html +4873 -0
  7. data/doc/html/doxygen.css +310 -0
  8. data/doc/html/doxygen.png +0 -0
  9. data/doc/html/files.html +27 -0
  10. data/doc/html/ftv2blank.png +0 -0
  11. data/doc/html/ftv2doc.png +0 -0
  12. data/doc/html/ftv2folderclosed.png +0 -0
  13. data/doc/html/ftv2folderopen.png +0 -0
  14. data/doc/html/ftv2lastnode.png +0 -0
  15. data/doc/html/ftv2link.png +0 -0
  16. data/doc/html/ftv2mlastnode.png +0 -0
  17. data/doc/html/ftv2mnode.png +0 -0
  18. data/doc/html/ftv2node.png +0 -0
  19. data/doc/html/ftv2plastnode.png +0 -0
  20. data/doc/html/ftv2pnode.png +0 -0
  21. data/doc/html/ftv2vertline.png +0 -0
  22. data/doc/html/functions.html +292 -0
  23. data/doc/html/functions_func.html +204 -0
  24. data/doc/html/functions_vars.html +177 -0
  25. data/doc/html/globals.html +172 -0
  26. data/doc/html/globals_defs.html +37 -0
  27. data/doc/html/globals_func.html +170 -0
  28. data/doc/html/hierarchy.html +46 -0
  29. data/doc/html/index.html +8 -0
  30. data/doc/html/main.html +21 -0
  31. data/doc/html/pages.html +23 -0
  32. data/doc/html/structCamArithmParams.html +61 -0
  33. data/doc/html/structCamBasin.html +63 -0
  34. data/doc/html/structCamBitmapFont.html +38 -0
  35. data/doc/html/structCamBlobInfo.html +91 -0
  36. data/doc/html/structCamBlobs.html +52 -0
  37. data/doc/html/structCamImage.html +791 -0
  38. data/doc/html/structCamLabelingResults.html +47 -0
  39. data/doc/html/structCamLinearFilterKernel.html +64 -0
  40. data/doc/html/structCamMeasuresResults.html +55 -0
  41. data/doc/html/structCamMorphoMathsKernel.html +82 -0
  42. data/doc/html/structCamPoint.html +47 -0
  43. data/doc/html/structCamRLEImage.html +184 -0
  44. data/doc/html/structCamROI.html +89 -0
  45. data/doc/html/structCamRun.html +57 -0
  46. data/doc/html/structCamSepFilterKernel.html +68 -0
  47. data/doc/html/structCamTable.html +47 -0
  48. data/doc/html/structCamTableOfBasins.html +38 -0
  49. data/doc/html/structCamVolbergFwdParams.html +47 -0
  50. data/doc/html/structCamWarpingParams.html +79 -0
  51. data/doc/html/tab_b.gif +0 -0
  52. data/doc/html/tab_l.gif +0 -0
  53. data/doc/html/tab_r.gif +0 -0
  54. data/doc/html/tabs.css +102 -0
  55. data/doc/html/todo.html +28 -0
  56. data/doc/html/tree.html +132 -0
  57. data/doc/rtf/refman.rtf +38378 -0
  58. data/ext/INSTALL +9 -0
  59. data/ext/Makefile +139 -0
  60. data/ext/camellia_ruby.i +308 -0
  61. data/ext/camellia_ruby_wrap.cxx +16086 -0
  62. data/ext/extconf.rb +4 -0
  63. data/ext/install.rb +11 -0
  64. data/ext/swig_ruby.dsp +159 -0
  65. data/inc/camellia.h +2624 -0
  66. data/inc/camellia_internals.h +192 -0
  67. data/lib/camellia-fox.rb +39 -0
  68. data/test/test_arithm.rb +13 -0
  69. data/test/test_color_labeling.rb +45 -0
  70. data/test/test_copy.rb +13 -0
  71. data/test/test_draw.rb +15 -0
  72. data/test/test_fixed_filters.rb +23 -0
  73. data/test/test_fox.rb +106 -0
  74. data/test/test_fox2.rb +108 -0
  75. data/test/test_histogram.rb +18 -0
  76. data/test/test_hough.rb +29 -0
  77. data/test/test_labeling.rb +30 -0
  78. data/test/test_mask.rb +34 -0
  79. data/test/test_watershed.rb +35 -0
  80. data/test/ts_camellia.rb +10 -0
  81. metadata +138 -0
@@ -0,0 +1,1350 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
+ <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
+ <title>Camellia: camellia.h Source File</title>
4
+ <link href="doxygen.css" rel="stylesheet" type="text/css">
5
+ <link href="tabs.css" rel="stylesheet" type="text/css">
6
+ </head><body>
7
+ <!-- Generated by Doxygen 1.4.6 -->
8
+ <div class="tabs">
9
+ <ul>
10
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
11
+ <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
12
+ <li id="current"><a href="files.html"><span>Files</span></a></li>
13
+ <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
14
+ </ul></div>
15
+ <div class="tabs">
16
+ <ul>
17
+ <li><a href="files.html"><span>File&nbsp;List</span></a></li>
18
+ <li><a href="globals.html"><span>Globals</span></a></li>
19
+ </ul></div>
20
+ <h1>camellia.h</h1><a href="camellia_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
21
+ <a name="l00371"></a>00371 <span class="preprocessor">#ifndef _CAMELLIA_H_</span>
22
+ <a name="l00372"></a>00372 <span class="preprocessor"></span><span class="preprocessor">#define _CAMELLIA_H_</span>
23
+ <a name="l00373"></a>00373 <span class="preprocessor"></span>
24
+ <a name="l00374"></a>00374 <span class="preprocessor">#define CAM_VERSION "2.5.10 : Luxembourg ($Rev: 90 $)"</span>
25
+ <a name="l00375"></a>00375 <span class="preprocessor"></span>
26
+ <a name="l00376"></a>00376 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
27
+ <a name="l00377"></a>00377
28
+ <a name="l00378"></a>00378 <span class="comment">/*******************************************</span>
29
+ <a name="l00379"></a>00379 <span class="comment"> * Compilation options : *</span>
30
+ <a name="l00380"></a>00380 <span class="comment"> */</span>
31
+ <a name="l00381"></a>00381 <span class="comment">// Pixel definition</span>
32
+ <a name="l00382"></a>00382 <span class="preprocessor">#define CAM_PIXEL unsigned char</span>
33
+ <a name="l00383"></a>00383 <span class="preprocessor"></span><span class="preprocessor">#define CAM_SIGNED_PIXEL signed char</span>
34
+ <a name="l00384"></a>00384 <span class="preprocessor"></span>
35
+ <a name="l00385"></a>00385 <span class="comment">// Max image size</span>
36
+ <a name="l00386"></a>00386 <span class="preprocessor">#define CAM_MAX_SCANLINE 1280</span>
37
+ <a name="l00387"></a>00387 <span class="preprocessor"></span><span class="preprocessor">#define CAM_MAX_FRAME_HEIGHT 1024</span>
38
+ <a name="l00388"></a>00388 <span class="preprocessor"></span>
39
+ <a name="l00389"></a>00389 <span class="comment">// 64-bit processor or memory bandwidth?</span>
40
+ <a name="l00390"></a>00390 <span class="preprocessor">#define CAM_64BITS</span>
41
+ <a name="l00391"></a>00391 <span class="preprocessor"></span>
42
+ <a name="l00392"></a>00392 <span class="comment">// Pentium4 optimizations?</span>
43
+ <a name="l00393"></a>00393 <span class="preprocessor">#define CAM_OPT_P4</span>
44
+ <a name="l00394"></a>00394 <span class="preprocessor"></span>
45
+ <a name="l00395"></a>00395 <span class="comment">// Big endian arichitecture?</span>
46
+ <a name="l00396"></a>00396 <span class="comment">//#define CAM_BIG_ENDIAN</span>
47
+ <a name="l00397"></a>00397
48
+ <a name="l00398"></a>00398 <span class="comment">// Generate 8 AND 16 bits pixel size code</span>
49
+ <a name="l00399"></a>00399 <span class="preprocessor">#define CAM_GENERATE_FULL_CODE</span>
50
+ <a name="l00400"></a>00400 <span class="preprocessor"></span>
51
+ <a name="l00401"></a>00401 <span class="comment">/* *</span>
52
+ <a name="l00402"></a>00402 <span class="comment"> *******************************************/</span>
53
+ <a name="l00403"></a>00403 <span class="preprocessor">#ifdef _WIN32</span>
54
+ <a name="l00404"></a>00404 <span class="preprocessor"></span><span class="preprocessor">#define CAM_INT64 __int64</span>
55
+ <a name="l00405"></a>00405 <span class="preprocessor"></span><span class="preprocessor">#define CAM_UINT64 unsigned __int64</span>
56
+ <a name="l00406"></a>00406 <span class="preprocessor"></span><span class="preprocessor">#else</span>
57
+ <a name="l00407"></a>00407 <span class="preprocessor"></span><span class="preprocessor">#define CAM_INT64 long long</span>
58
+ <a name="l00408"></a>00408 <span class="preprocessor"></span><span class="preprocessor">#define CAM_UINT64 unsigned long long</span>
59
+ <a name="l00409"></a>00409 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
60
+ <a name="l00410"></a>00410 <span class="preprocessor"></span>
61
+ <a name="l00411"></a>00411 <span class="preprocessor">#ifdef __INTEL_COMPILER</span>
62
+ <a name="l00412"></a>00412 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ALIGN16 __declspec(align(16))</span>
63
+ <a name="l00413"></a>00413 <span class="preprocessor"></span><span class="preprocessor">#else</span>
64
+ <a name="l00414"></a>00414 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ALIGN16</span>
65
+ <a name="l00415"></a>00415 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
66
+ <a name="l00416"></a>00416 <span class="preprocessor"></span>
67
+ <a name="l00417"></a>00417 <span class="preprocessor">#define CAM_FIXED_POINT signed long</span>
68
+ <a name="l00418"></a>00418 <span class="preprocessor"></span><span class="preprocessor">#define CAM_FLOAT2FIXED(x,dot_pos) ((CAM_FIXED_POINT)((x)*(1&lt;&lt;dot_pos)))</span>
69
+ <a name="l00419"></a>00419 <span class="preprocessor"></span>
70
+ <a name="l00420"></a>00420 <span class="preprocessor">#define CAM_DEPTH_SIGN 0x80000000 </span>
71
+ <a name="l00421"></a>00421 <span class="preprocessor"></span><span class="preprocessor">#define CAM_DEPTH_MASK 0x7FFFFFFF </span>
72
+ <a name="l00422"></a>00422 <span class="preprocessor"></span>
73
+ <a name="l00423"></a>00423 <span class="preprocessor">#define CAM_DEPTH_1U 1</span>
74
+ <a name="l00424"></a>00424 <span class="preprocessor"></span><span class="preprocessor">#define CAM_DEPTH_8U 8</span>
75
+ <a name="l00425"></a>00425 <span class="preprocessor"></span><span class="preprocessor">#define CAM_DEPTH_10U 10</span>
76
+ <a name="l00426"></a>00426 <span class="preprocessor"></span><span class="preprocessor">#define CAM_DEPTH_12U 12</span>
77
+ <a name="l00427"></a>00427 <span class="preprocessor"></span><span class="preprocessor">#define CAM_DEPTH_16U 16</span>
78
+ <a name="l00428"></a>00428 <span class="preprocessor"></span>
79
+ <a name="l00429"></a>00429 <span class="preprocessor">#define CAM_DEPTH_8S (CAM_DEPTH_SIGN| 8)</span>
80
+ <a name="l00430"></a>00430 <span class="preprocessor"></span><span class="preprocessor">#define CAM_DEPTH_10S (CAM_DEPTH_SIGN|10)</span>
81
+ <a name="l00431"></a>00431 <span class="preprocessor"></span><span class="preprocessor">#define CAM_DEPTH_12S (CAM_DEPTH_SIGN|12)</span>
82
+ <a name="l00432"></a>00432 <span class="preprocessor"></span><span class="preprocessor">#define CAM_DEPTH_16S (CAM_DEPTH_SIGN|16)</span>
83
+ <a name="l00433"></a>00433 <span class="preprocessor"></span>
84
+ <a name="l00434"></a>00434 <span class="preprocessor">#define CAM_DATA_ORDER_PIXEL 0</span>
85
+ <a name="l00435"></a>00435 <span class="preprocessor"></span><span class="preprocessor">#define CAM_DATA_ORDER_PLANE 1</span>
86
+ <a name="l00436"></a>00436 <span class="preprocessor"></span>
87
+ <a name="l00437"></a>00437 <span class="preprocessor">#define CAM_ORIGIN_TL 0</span>
88
+ <a name="l00438"></a>00438 <span class="preprocessor"></span>
89
+ <a name="l00439"></a>00439 <span class="preprocessor">#define CAM_ALIGN_4BYTES 4</span>
90
+ <a name="l00440"></a>00440 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ALIGN_8BYTES 8</span>
91
+ <a name="l00441"></a>00441 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ALIGN_16BYTES 16</span>
92
+ <a name="l00442"></a>00442 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ALIGN_32BYTES 32</span>
93
+ <a name="l00443"></a>00443 <span class="preprocessor"></span>
94
+ <a name="l00444"></a>00444 <span class="preprocessor">#define CAM_ALIGN_DWORD CAM_ALIGN_4BYTES</span>
95
+ <a name="l00445"></a>00445 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ALIGN_QWORD CAM_ALIGN_8BYTES</span>
96
+ <a name="l00446"></a>00446 <span class="preprocessor"></span>
97
+ <a name="l00447"></a>00447 <span class="preprocessor">#define CAM_BORDER_CONSTANT 0</span>
98
+ <a name="l00448"></a>00448 <span class="preprocessor"></span><span class="preprocessor">#define CAM_BORDER_REPLICATE 1</span>
99
+ <a name="l00449"></a>00449 <span class="preprocessor"></span>
100
+ <a name="l00450"></a>00450 <span class="comment">/*--- Indexes to access IplImage.BorderMode[],IplImage.BorderConst[] ----*/</span>
101
+ <a name="l00451"></a>00451 <span class="preprocessor">#define CAM_SIDE_TOP_INDEX 0</span>
102
+ <a name="l00452"></a>00452 <span class="preprocessor"></span><span class="preprocessor">#define CAM_SIDE_BOTTOM_INDEX 1</span>
103
+ <a name="l00453"></a>00453 <span class="preprocessor"></span><span class="preprocessor">#define CAM_SIDE_LEFT_INDEX 2</span>
104
+ <a name="l00454"></a>00454 <span class="preprocessor"></span><span class="preprocessor">#define CAM_SIDE_RIGHT_INDEX 3</span>
105
+ <a name="l00455"></a>00455 <span class="preprocessor"></span>
106
+ <a name="l00456"></a>00456 <span class="comment">/*---------- values of argument of iplSetBorderMode(,,border,) ----------*/</span>
107
+ <a name="l00457"></a>00457 <span class="preprocessor">#define CAM_SIDE_TOP (1&lt;&lt;CAM_SIDE_TOP_INDEX)</span>
108
+ <a name="l00458"></a>00458 <span class="preprocessor"></span><span class="preprocessor">#define CAM_SIDE_BOTTOM (1&lt;&lt;CAM_SIDE_BOTTOM_INDEX)</span>
109
+ <a name="l00459"></a>00459 <span class="preprocessor"></span><span class="preprocessor">#define CAM_SIDE_LEFT (1&lt;&lt;CAM_SIDE_LEFT_INDEX)</span>
110
+ <a name="l00460"></a>00460 <span class="preprocessor"></span><span class="preprocessor">#define CAM_SIDE_RIGHT (1&lt;&lt;CAM_SIDE_RIGHT_INDEX)</span>
111
+ <a name="l00461"></a>00461 <span class="preprocessor"></span><span class="preprocessor">#define CAM_SIDE_ALL (CAM_SIDE_RIGHT | CAM_SIDE_TOP | CAM_SIDE_LEFT | CAM_SIDE_BOTTOM)</span>
112
+ <a name="l00462"></a>00462 <span class="preprocessor"></span>
113
+ <a name="l00463"></a>00463 <span class="preprocessor">#ifdef CAM_BIG_ENDIAN</span>
114
+ <a name="l00464"></a>00464 <span class="preprocessor"></span><span class="preprocessor">#define CAM_FC( ch0, ch1, ch2, ch3 ) \</span>
115
+ <a name="l00465"></a>00465 <span class="preprocessor"> ((int)(ch3)|((int)(ch2)&lt;&lt;8)|((int)(ch1)&lt;&lt;16)|((int)(ch0)&lt;&lt;24))</span>
116
+ <a name="l00466"></a>00466 <span class="preprocessor"></span><span class="preprocessor">#else</span>
117
+ <a name="l00467"></a>00467 <span class="preprocessor"></span><span class="preprocessor">#define CAM_FC( ch0, ch1, ch2, ch3 ) \</span>
118
+ <a name="l00468"></a>00468 <span class="preprocessor"> ((int)(ch0)|((int)(ch1)&lt;&lt;8)|((int)(ch2)&lt;&lt;16)|((int)(ch3)&lt;&lt;24))</span>
119
+ <a name="l00469"></a>00469 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
120
+ <a name="l00470"></a>00470 <span class="preprocessor"></span>
121
+ <a name="l00471"></a>00471 <span class="preprocessor">#ifndef SWIG</span>
122
+ <a name="l00472"></a>00472 <span class="preprocessor"></span><span class="preprocessor">#define CAM_COLORMODEL_RGB CAM_FC('R','G','B',000)</span>
123
+ <a name="l00473"></a>00473 <span class="preprocessor"></span><span class="preprocessor">#define CAM_COLORMODEL_RGBA CAM_FC('R','G','B','A')</span>
124
+ <a name="l00474"></a>00474 <span class="preprocessor"></span><span class="preprocessor">#define CAM_COLORMODEL_YUV CAM_FC('Y','U','V',000)</span>
125
+ <a name="l00475"></a>00475 <span class="preprocessor"></span><span class="preprocessor">#define CAM_COLORMODEL_GREY CAM_FC('G',000,000,000)</span>
126
+ <a name="l00476"></a>00476 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
127
+ <a name="l00477"></a>00477 <span class="preprocessor"></span>
128
+ <a name="l00478"></a>00478 <span class="preprocessor">#ifdef __cplusplus</span>
129
+ <a name="l00479"></a>00479 <span class="preprocessor"></span><span class="keyword">struct </span><a class="code" href="structCamImage.html">CamImage</a>;
130
+ <a name="l00480"></a>00480 <span class="keyword">struct </span><a class="code" href="structCamTableOfBasins.html">CamTableOfBasins</a>;
131
+ <a name="l00481"></a>00481 <span class="keyword">struct </span><a class="code" href="structCamBitmapFont.html">CamBitmapFont</a>;
132
+ <a name="l00482"></a>00482
133
+ <a name="l00484"></a><a class="code" href="structCamROI.html">00484</a> <span class="keyword">struct </span><a class="code" href="structCamROI.html">CamROI</a> {
134
+ <a name="l00485"></a>00485 <span class="preprocessor">#else</span>
135
+ <a name="l00486"></a>00486 <span class="preprocessor"></span>
136
+ <a name="l00487"></a>00487 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
137
+ <a name="l00488"></a>00488 <span class="preprocessor">#endif</span>
138
+ <a name="l00489"></a>00489 <span class="preprocessor"></span>
139
+ <a name="l00490"></a>00490
140
+ <a name="l00494"></a><a class="code" href="structCamROI.html#ebb3fa10fc56c3a051daf7b5de8f473e">00494</a> <span class="keywordtype">int</span> <a class="code" href="structCamROI.html#ebb3fa10fc56c3a051daf7b5de8f473e">coi</a>;
141
+ <a name="l00495"></a><a class="code" href="structCamROI.html#ed73323466317b01eb2811eeaf10076d">00495</a> <span class="keywordtype">int</span> <a class="code" href="structCamROI.html#ed73323466317b01eb2811eeaf10076d">xOffset</a>;
142
+ <a name="l00496"></a><a class="code" href="structCamROI.html#cd5901ab1292015a6e07ded8ef11626d">00496</a> <span class="keywordtype">int</span> <a class="code" href="structCamROI.html#cd5901ab1292015a6e07ded8ef11626d">yOffset</a>;
143
+ <a name="l00497"></a><a class="code" href="structCamROI.html#0696d43bea5823a9285c74eddfdb1ea6">00497</a> <span class="keywordtype">int</span> <a class="code" href="structCamROI.html#0696d43bea5823a9285c74eddfdb1ea6">width</a>;
144
+ <a name="l00498"></a><a class="code" href="structCamROI.html#72cfb85e793e2b5a4b8e55c3ab6a85a1">00498</a> <span class="keywordtype">int</span> <a class="code" href="structCamROI.html#72cfb85e793e2b5a4b8e55c3ab6a85a1">height</a>;
145
+ <a name="l00499"></a>00499
146
+ <a name="l00500"></a>00500 <span class="comment">// C++ Wrapping</span>
147
+ <a name="l00501"></a>00501 <span class="preprocessor">#ifdef __cplusplus</span>
148
+ <a name="l00502"></a>00502 <span class="preprocessor"></span> <a class="code" href="structCamROI.html">CamROI</a>() {coi=0; xOffset=0; yOffset=0; width=0; height=0;}
149
+ <a name="l00503"></a>00503 <a class="code" href="structCamROI.html">CamROI</a>(<span class="keywordtype">int</span> _coi, <span class="keywordtype">int</span> _xOffset, <span class="keywordtype">int</span> _yOffset, <span class="keywordtype">int</span> _width, <span class="keywordtype">int</span> _height) {
150
+ <a name="l00504"></a>00504 coi=_coi; xOffset=_xOffset; yOffset=_yOffset; width=_width; height=_height;
151
+ <a name="l00505"></a>00505 }
152
+ <a name="l00506"></a>00506 <a class="code" href="structCamROI.html">CamROI</a>(<span class="keyword">const</span> <a class="code" href="structCamImage.html">CamImage</a> &amp;image, <span class="keywordtype">int</span> _coi=0);
153
+ <a name="l00507"></a>00507 ~<a class="code" href="structCamROI.html">CamROI</a>() {};
154
+ <a name="l00508"></a>00508 <a class="code" href="structCamROI.html">CamROI</a> <a class="code" href="structCamROI.html#b5123a98e4cacd8e34937ef4e6df0d13">intersect</a>(<span class="keyword">const</span> <a class="code" href="structCamROI.html">CamROI</a> &amp;roi) <span class="keyword">const</span>;
155
+ <a name="l00509"></a>00509 <span class="keywordtype">bool</span> clip(<a class="code" href="structCamImage.html">CamImage</a> &amp;image);
156
+ <a name="l00510"></a>00510 <span class="keywordtype">bool</span> reduce(<span class="keywordtype">int</span> i);
157
+ <a name="l00511"></a>00511 <span class="keywordtype">bool</span> enlarge(<span class="keywordtype">int</span> i);
158
+ <a name="l00512"></a>00512 };
159
+ <a name="l00513"></a>00513
160
+ <a name="l00514"></a>00514 <span class="keyword">struct </span><a class="code" href="structCamLinearFilterKernel.html">CamLinearFilterKernel</a>;
161
+ <a name="l00515"></a>00515 <span class="keyword">struct </span><a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a>;
162
+ <a name="l00516"></a>00516 <span class="keyword">struct </span><a class="code" href="structCamRLEImage.html">CamRLEImage</a>;
163
+ <a name="l00517"></a>00517 <span class="keyword">struct </span><a class="code" href="structCamTable.html">CamTable</a>;
164
+ <a name="l00518"></a>00518 <span class="keyword">struct </span><a class="code" href="structCamMeasuresResults.html">CamMeasuresResults</a>;
165
+ <a name="l00519"></a>00519 <span class="keyword">struct </span><a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a>;
166
+ <a name="l00520"></a>00520
167
+ <a name="l00521"></a>00521 <span class="preprocessor">#else</span>
168
+ <a name="l00522"></a>00522 <span class="preprocessor"></span>} <a class="code" href="structCamROI.html">CamROI</a>;
169
+ <a name="l00523"></a>00523 <span class="preprocessor">#endif</span>
170
+ <a name="l00524"></a>00524 <span class="preprocessor"></span>
171
+ <a name="l00525"></a>00525 <span class="preprocessor">#define CAM_POINT 1</span>
172
+ <a name="l00526"></a>00526 <span class="preprocessor"></span><span class="preprocessor">#define CAM_CROSS 2</span>
173
+ <a name="l00527"></a>00527 <span class="preprocessor"></span><span class="preprocessor">#define CAM_CIRCLE 4</span>
174
+ <a name="l00528"></a>00528 <span class="preprocessor"></span>
175
+ <a name="l00530"></a>00530
176
+ <a name="l00535"></a>00535 <span class="preprocessor">#ifdef __cplusplus</span>
177
+ <a name="l00536"></a><a class="code" href="structCamImage.html">00536</a> <span class="preprocessor"></span><span class="keyword">struct </span><a class="code" href="structCamImage.html">CamImage</a> {
178
+ <a name="l00537"></a>00537 <span class="preprocessor">#else</span>
179
+ <a name="l00538"></a>00538 <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{
180
+ <a name="l00539"></a>00539 <span class="preprocessor">#endif</span>
181
+ <a name="l00540"></a>00540 <span class="preprocessor"></span><span class="preprocessor">#ifdef SWIG</span>
182
+ <a name="l00541"></a>00541 <span class="preprocessor"></span>%immutable;
183
+ <a name="l00542"></a>00542 <span class="preprocessor">#endif</span>
184
+ <a name="l00543"></a><a class="code" href="structCamImage.html#3e532c7fd8541398111dd9c5f0a67beb">00543</a> <span class="preprocessor"></span> <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#3e532c7fd8541398111dd9c5f0a67beb">nSize</a>;
185
+ <a name="l00544"></a><a class="code" href="structCamImage.html#806139db868483213dcbf77418dc2458">00544</a> <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#806139db868483213dcbf77418dc2458">id</a>;
186
+ <a name="l00545"></a><a class="code" href="structCamImage.html#1024670310293db4c8d452f88da1eb69">00545</a> <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#1024670310293db4c8d452f88da1eb69">nChannels</a>;
187
+ <a name="l00546"></a><a class="code" href="structCamImage.html#7f71e0f98c6dc9b207a6625814ecaf98">00546</a> <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#7f71e0f98c6dc9b207a6625814ecaf98">alphaChannel</a>;
188
+ <a name="l00547"></a>00547
189
+ <a name="l00549"></a>00549
190
+ <a name="l00551"></a><a class="code" href="structCamImage.html#8b3356af6911e940ebce378b7f7da7a3">00551</a> <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#8b3356af6911e940ebce378b7f7da7a3">depth</a>;
191
+ <a name="l00552"></a><a class="code" href="structCamImage.html#c408432c6543eb9cd000d2b38654f867">00552</a> <span class="keywordtype">char</span> <a class="code" href="structCamImage.html#c408432c6543eb9cd000d2b38654f867">colorModel</a>[4];
192
+ <a name="l00553"></a>00553
193
+ <a name="l00555"></a>00555
194
+ <a name="l00558"></a><a class="code" href="structCamImage.html#df702d93c2059882fc6fadf1fee7dddc">00558</a> <span class="keywordtype">char</span> <a class="code" href="structCamImage.html#df702d93c2059882fc6fadf1fee7dddc">channelSeq</a>[4];
195
+ <a name="l00559"></a><a class="code" href="structCamImage.html#81cb88a6daef72f36c85a5aabbcc9b4c">00559</a> <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#81cb88a6daef72f36c85a5aabbcc9b4c">dataOrder</a>;
196
+ <a name="l00560"></a><a class="code" href="structCamImage.html#9c19e83e7d379454da0d37ab0931c284">00560</a> <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#9c19e83e7d379454da0d37ab0931c284">origin</a>;
197
+ <a name="l00561"></a><a class="code" href="structCamImage.html#b96907c94e55dbfdeb666bb9e33593dc">00561</a> <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#b96907c94e55dbfdeb666bb9e33593dc">align</a>;
198
+ <a name="l00562"></a><a class="code" href="structCamImage.html#0718d762110194c96df992ac92a0f65a">00562</a> <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#0718d762110194c96df992ac92a0f65a">width</a>;
199
+ <a name="l00563"></a><a class="code" href="structCamImage.html#4fdb9abd799982f2665d45c5de3d6249">00563</a> <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#4fdb9abd799982f2665d45c5de3d6249">height</a>;
200
+ <a name="l00564"></a>00564
201
+ <a name="l00566"></a>00566
202
+ <a name="l00569"></a><a class="code" href="structCamImage.html#e86507aeaa483473d60694cb045b358f">00569</a> <a class="code" href="structCamROI.html">CamROI</a> *<a class="code" href="structCamImage.html#e86507aeaa483473d60694cb045b358f">roi</a>;
203
+ <a name="l00570"></a>00570
204
+ <a name="l00572"></a>00572
205
+ <a name="l00577"></a><a class="code" href="structCamImage.html#cf97eae77448550b1487f8067701f58f">00577</a> <span class="keywordtype">void</span> *<a class="code" href="structCamImage.html#cf97eae77448550b1487f8067701f58f">mask</a>;
206
+ <a name="l00578"></a>00578
207
+ <a name="l00580"></a>00580
208
+ <a name="l00582"></a><a class="code" href="structCamImage.html#f54a3773c67e5c0ddbaf03e2db87daf3">00582</a> <span class="keywordtype">void</span> *<a class="code" href="structCamImage.html#f54a3773c67e5c0ddbaf03e2db87daf3">imageId</a>;
209
+ <a name="l00583"></a>00583
210
+ <a name="l00584"></a><a class="code" href="structCamImage.html#c444f3eae30f4e8447bcb6369e562a18">00584</a> <span class="keywordtype">void</span> *<a class="code" href="structCamImage.html#c444f3eae30f4e8447bcb6369e562a18">misc</a>;
211
+ <a name="l00585"></a><a class="code" href="structCamImage.html#63dd61fcbf53f3f634b79e695ad7202e">00585</a> <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#63dd61fcbf53f3f634b79e695ad7202e">imageSize</a>;
212
+ <a name="l00586"></a><a class="code" href="structCamImage.html#66a2a68566fda784b8b4ccc3e7f9b9e8">00586</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="structCamImage.html#66a2a68566fda784b8b4ccc3e7f9b9e8">imageData</a>;
213
+ <a name="l00587"></a><a class="code" href="structCamImage.html#6d200bf299b7a30e3baaf073ce9f155b">00587</a> <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#6d200bf299b7a30e3baaf073ce9f155b">widthStep</a>;
214
+ <a name="l00588"></a><a class="code" href="structCamImage.html#1784fae7d8d05c9887a8c309e20b030b">00588</a> <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#1784fae7d8d05c9887a8c309e20b030b">borderMode</a>[4];
215
+ <a name="l00589"></a><a class="code" href="structCamImage.html#064cc347c36111b5eee399f35e1703f9">00589</a> <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#064cc347c36111b5eee399f35e1703f9">borderConst</a>[4];
216
+ <a name="l00590"></a><a class="code" href="structCamImage.html#0a3ff7b8891c902f603f0c7105db53a1">00590</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *<a class="code" href="structCamImage.html#0a3ff7b8891c902f603f0c7105db53a1">imageDataOrigin</a>;
217
+ <a name="l00591"></a>00591
218
+ <a name="l00592"></a>00592 <span class="comment">// C++ Wrapping</span>
219
+ <a name="l00593"></a>00593
220
+ <a name="l00594"></a>00594 <span class="preprocessor">#ifdef __cplusplus</span>
221
+ <a name="l00595"></a><a class="code" href="structCamImage.html#47225dedda80e5bc7b6a6045cb243054">00595</a> <span class="preprocessor"></span> <a class="code" href="structCamImage.html#47225dedda80e5bc7b6a6045cb243054">CamImage</a>() {imageData=NULL; <a class="code" href="structCamImage.html#e86507aeaa483473d60694cb045b358f">roi</a>=NULL; imageSize=0; mask=NULL; imageDataOrigin=NULL; depth=CAM_DEPTH_8U; nChannels=1; }
222
+ <a name="l00596"></a>00596 <a class="code" href="structCamImage.html#47225dedda80e5bc7b6a6045cb243054">CamImage</a>(<span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">int</span> depth=CAM_DEPTH_8U, <span class="keywordtype">int</span> colormodel=0);
223
+ <a name="l00597"></a>00597 <a class="code" href="structCamImage.html#47225dedda80e5bc7b6a6045cb243054">CamImage</a>(<span class="keyword">const</span> <a class="code" href="structCamImage.html">CamImage</a>&amp; image);
224
+ <a name="l00598"></a>00598 <a class="code" href="structCamImage.html#bbe6b2c4a7d844b46df2a484b1bee25b">~CamImage</a>();
225
+ <a name="l00599"></a>00599
226
+ <a name="l00600"></a>00600 <a class="code" href="structCamImage.html">CamImage</a>&amp; <a class="code" href="structCamImage.html#63fe038f6cd631c71c8452d300e09cbb">operator=</a>(<span class="keyword">const</span> <a class="code" href="structCamImage.html">CamImage</a> &amp;image);
227
+ <a name="l00601"></a>00601 <a class="code" href="structCamImage.html">CamImage</a>* <a class="code" href="structCamImage.html#f12ef4051b19c61e5c5207c2a6207b50">clone</a>() <span class="keyword">const</span>;
228
+ <a name="l00602"></a>00602 <a class="code" href="structCamImage.html">CamImage</a>* <a class="code" href="structCamImage.html#bc5b857c3232216f47d03d055fdf7f12">copy</a>() <span class="keyword">const</span>;
229
+ <a name="l00603"></a>00603 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#bc5b857c3232216f47d03d055fdf7f12">copy</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
230
+ <a name="l00604"></a><a class="code" href="structCamImage.html#382cb32c0c01ffb3af84fba08ee1f25e">00604</a> <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#382cb32c0c01ffb3af84fba08ee1f25e">allocated</a>()<span class="keyword"> const </span>{<span class="keywordflow">return</span> (imageData)?<span class="keyword">true</span>:<span class="keyword">false</span>;}
231
+ <a name="l00605"></a>00605 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#4e2dbe009888195f1c50c2a64e1e8bdc">alloc</a>(<span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">int</span> depth=CAM_DEPTH_8U, <span class="keywordtype">int</span> colormodel=0);
232
+ <a name="l00606"></a>00606 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#17ccf4ccaeca72cc218fb9b1d5ce3e41">dealloc</a>();
233
+ <a name="l00607"></a>00607 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#755922879ad4fb0dc0fd4790bb6f7462">alloc_rgb</a>(<span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);
234
+ <a name="l00608"></a>00608 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#2fd24106b5dd9fc43722a32142482e52">alloc_rgba</a>(<span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);
235
+ <a name="l00609"></a>00609 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#71f897db5295d43eca6e980ffd747676">alloc_yuv</a>(<span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);
236
+ <a name="l00610"></a>00610 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#e8e351b2c30762c72697cac475adb41c">load_pgm</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename);
237
+ <a name="l00611"></a>00611 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#f5a23f64ca660ebd835bc8a4ed393657">save_pgm</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename) <span class="keyword">const</span>;
238
+ <a name="l00612"></a>00612 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#fd93219c484f377ceee46f5ee13be36b">load_bmp</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename);
239
+ <a name="l00613"></a>00613 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#1d7abb70c8ac717e7fd131c114e3733c">save_bmp</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename) <span class="keyword">const</span>;
240
+ <a name="l00614"></a>00614 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#16adeb8557c1eb8b18d24df43a0b1cfe">set_roi</a>(<span class="keyword">const</span> <a class="code" href="structCamROI.html">CamROI</a> &amp;<a class="code" href="structCamImage.html#e86507aeaa483473d60694cb045b358f">roi</a>);
241
+ <a name="l00615"></a>00615 <span class="keywordtype">void</span> <a class="code" href="structCamImage.html#31708f4d1a187c535cbe40e623d4df7a">get_pixels</a>(<span class="keywordtype">char</span> **result, <span class="keywordtype">int</span> *len) <span class="keyword">const</span>;
242
+ <a name="l00616"></a>00616 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#e37bdc0a39c3229f638105480cc19c26">set_pixels</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pixels, <span class="keywordtype">int</span> sz);
243
+ <a name="l00617"></a>00617 <span class="keywordtype">void</span> <a class="code" href="structCamImage.html#a6fbe3b2e3928fc47170b49098a1e87f">inspect</a>(<span class="keywordtype">char</span> **result, <span class="keywordtype">int</span> *len) <span class="keyword">const</span>;
244
+ <a name="l00618"></a>00618 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#a2d401435d52c2a0402da380d4f0e46e">view</a>() <span class="keyword">const</span>;
245
+ <a name="l00619"></a>00619 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#ea98d6014ca1e6d81226175fc2b525c7">set</a>(<span class="keywordtype">int</span> color);
246
+ <a name="l00620"></a>00620 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#224aae34ad2156208f4c2ec486373956">alpha_composite</a>(<span class="keyword">const</span> <a class="code" href="structCamImage.html">CamImage</a>&amp; source2, <a class="code" href="structCamImage.html">CamImage</a>&amp; dest) <span class="keyword">const</span>;
247
+ <a name="l00621"></a>00621
248
+ <a name="l00622"></a>00622 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#9217ed2606c2b49ffa845ca384708ab3">erode_square3</a>();
249
+ <a name="l00623"></a>00623 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#9217ed2606c2b49ffa845ca384708ab3">erode_square3</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
250
+ <a name="l00624"></a>00624 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#3278423ef8a0fe876402640e317e68f8">erode_circle5</a>();
251
+ <a name="l00625"></a>00625 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#3278423ef8a0fe876402640e317e68f8">erode_circle5</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
252
+ <a name="l00626"></a>00626 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#7cece7afb468af61e6d136c99867ac97">erode_circle7</a>();
253
+ <a name="l00627"></a>00627 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#7cece7afb468af61e6d136c99867ac97">erode_circle7</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
254
+ <a name="l00628"></a>00628 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#f0f6224acd8cbff6fff2bd09ef12825b">dilate_square3</a>();
255
+ <a name="l00629"></a>00629 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#f0f6224acd8cbff6fff2bd09ef12825b">dilate_square3</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
256
+ <a name="l00630"></a>00630 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#ee97f0a61e0239f1c7808bd6ce2ce651">dilate_circle5</a>();
257
+ <a name="l00631"></a>00631 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#ee97f0a61e0239f1c7808bd6ce2ce651">dilate_circle5</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
258
+ <a name="l00632"></a>00632 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#3dffe13aa51429a533d0b06614d0a30d">dilate_circle7</a>();
259
+ <a name="l00633"></a>00633 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#3dffe13aa51429a533d0b06614d0a30d">dilate_circle7</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
260
+ <a name="l00634"></a>00634 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#c3cbcf6ab831ffd8acf1579dbaa2b364">morpho_gradient_square3</a>();
261
+ <a name="l00635"></a>00635 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#c3cbcf6ab831ffd8acf1579dbaa2b364">morpho_gradient_square3</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
262
+ <a name="l00636"></a>00636 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#8a182d7aa1a91f2631159ad6199bf5da">morpho_gradient_circle5</a>();
263
+ <a name="l00637"></a>00637 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#8a182d7aa1a91f2631159ad6199bf5da">morpho_gradient_circle5</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
264
+ <a name="l00638"></a>00638 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#ca03f01f815dbea194c073f014966ecc">morpho_gradient_circle7</a>();
265
+ <a name="l00639"></a>00639 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#ca03f01f815dbea194c073f014966ecc">morpho_gradient_circle7</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
266
+ <a name="l00640"></a>00640
267
+ <a name="l00641"></a>00641 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#4ecb322794b55e17b4f917c8be959d08">morpho_maths</a>(<span class="keyword">const</span> <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> &amp;ker);
268
+ <a name="l00642"></a>00642 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#4ecb322794b55e17b4f917c8be959d08">morpho_maths</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> &amp;ker) <span class="keyword">const</span>;
269
+ <a name="l00643"></a>00643 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#2cc3da0cd3d7e425bc8e4855ec397cc9">erode_3x3</a>(<span class="keyword">const</span> <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> &amp;ker);
270
+ <a name="l00644"></a>00644 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#2cc3da0cd3d7e425bc8e4855ec397cc9">erode_3x3</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> &amp;ker) <span class="keyword">const</span>;
271
+ <a name="l00645"></a>00645 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#cb51d475a1ea699d3b28e74fdd32b231">dilate_3x3</a>(<span class="keyword">const</span> <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> &amp;ker);
272
+ <a name="l00646"></a>00646 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#cb51d475a1ea699d3b28e74fdd32b231">dilate_3x3</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> &amp;ker) <span class="keyword">const</span>;
273
+ <a name="l00647"></a>00647 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#d8f4c761b284f5ae39e8db1a807a6c80">erode_5x5</a>(<span class="keyword">const</span> <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> &amp;ker);
274
+ <a name="l00648"></a>00648 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#d8f4c761b284f5ae39e8db1a807a6c80">erode_5x5</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> &amp;ker) <span class="keyword">const</span>;
275
+ <a name="l00649"></a>00649 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#dcac4da2d239f9d6b993b3328253404b">dilate_5x5</a>(<span class="keyword">const</span> <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> &amp;ker);
276
+ <a name="l00650"></a>00650 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#dcac4da2d239f9d6b993b3328253404b">dilate_5x5</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> &amp;ker) <span class="keyword">const</span>;
277
+ <a name="l00651"></a>00651 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#3b4b238f57409a4998fe2f7f579afa22">erode_7x7</a>(<span class="keyword">const</span> <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> &amp;ker);
278
+ <a name="l00652"></a>00652 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#3b4b238f57409a4998fe2f7f579afa22">erode_7x7</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> &amp;ker) <span class="keyword">const</span>;
279
+ <a name="l00653"></a>00653 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#d4fa6ef0e7b4f8f576950d9b74b75dfa">dilate_7x7</a>(<span class="keyword">const</span> <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> &amp;ker);
280
+ <a name="l00654"></a>00654 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#d4fa6ef0e7b4f8f576950d9b74b75dfa">dilate_7x7</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> &amp;ker) <span class="keyword">const</span>;
281
+ <a name="l00655"></a>00655
282
+ <a name="l00656"></a>00656 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#44b75d5978e0e2b7511a48e7b218a1be">linear_filter_3x3</a>(<span class="keyword">const</span> <a class="code" href="structCamLinearFilterKernel.html">CamLinearFilterKernel</a> &amp;ker);
283
+ <a name="l00657"></a>00657 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#44b75d5978e0e2b7511a48e7b218a1be">linear_filter_3x3</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamLinearFilterKernel.html">CamLinearFilterKernel</a> &amp;k) <span class="keyword">const</span>;
284
+ <a name="l00658"></a>00658 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#151ee90fc94f17f28e5b9e416835b4e4">linear_filter_5x5</a>(<span class="keyword">const</span> <a class="code" href="structCamLinearFilterKernel.html">CamLinearFilterKernel</a> &amp;ker);
285
+ <a name="l00659"></a>00659 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#151ee90fc94f17f28e5b9e416835b4e4">linear_filter_5x5</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamLinearFilterKernel.html">CamLinearFilterKernel</a> &amp;k) <span class="keyword">const</span>;
286
+ <a name="l00660"></a>00660 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#540d80309e8232e56b9c33b88b529e4f">linear_filter_abs_3x3</a>(<span class="keyword">const</span> <a class="code" href="structCamLinearFilterKernel.html">CamLinearFilterKernel</a> &amp;ker);
287
+ <a name="l00661"></a>00661 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#540d80309e8232e56b9c33b88b529e4f">linear_filter_abs_3x3</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamLinearFilterKernel.html">CamLinearFilterKernel</a> &amp;k) <span class="keyword">const</span>;
288
+ <a name="l00662"></a>00662 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#b43f4feba4a41007044f0e4b9afba8c3">linear_filter_abs_5x5</a>(<span class="keyword">const</span> <a class="code" href="structCamLinearFilterKernel.html">CamLinearFilterKernel</a> &amp;ker);
289
+ <a name="l00663"></a>00663 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#b43f4feba4a41007044f0e4b9afba8c3">linear_filter_abs_5x5</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamLinearFilterKernel.html">CamLinearFilterKernel</a> &amp;k) <span class="keyword">const</span>;
290
+ <a name="l00664"></a>00664 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#3a574de47c5172d0347d397e6bca6a67">sobel_v</a>();
291
+ <a name="l00665"></a>00665 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#9dce28b23229ce996b2217d92e6255da">sobel_h</a>();
292
+ <a name="l00666"></a>00666 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#6ad355afdd82c43a20c7aeb50dffb9f4">sobel_v_abs</a>();
293
+ <a name="l00667"></a>00667 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#012f52235d8a4945af1d517510a4bca6">sobel_h_abs</a>();
294
+ <a name="l00668"></a>00668 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#3a574de47c5172d0347d397e6bca6a67">sobel_v</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
295
+ <a name="l00669"></a>00669 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#9dce28b23229ce996b2217d92e6255da">sobel_h</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
296
+ <a name="l00670"></a>00670 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#6ad355afdd82c43a20c7aeb50dffb9f4">sobel_v_abs</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
297
+ <a name="l00671"></a>00671 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#012f52235d8a4945af1d517510a4bca6">sobel_h_abs</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
298
+ <a name="l00672"></a>00672 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#e830afe0726a96f61d95986534cbf147">sep_filter_3x3</a>(<span class="keyword">const</span> <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> &amp;ker);
299
+ <a name="l00673"></a>00673 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#e830afe0726a96f61d95986534cbf147">sep_filter_3x3</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> &amp;k) <span class="keyword">const</span>;
300
+ <a name="l00674"></a>00674 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#19765f5e6bb266328433e991414eaecf">sep_filter_5x5</a>(<span class="keyword">const</span> <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> &amp;ker);
301
+ <a name="l00675"></a>00675 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#19765f5e6bb266328433e991414eaecf">sep_filter_5x5</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> &amp;k) <span class="keyword">const</span>;
302
+ <a name="l00676"></a>00676 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#9893a4891434317b53b3341ac3546bb1">sep_filter_7x7</a>(<span class="keyword">const</span> <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> &amp;ker);
303
+ <a name="l00677"></a>00677 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#9893a4891434317b53b3341ac3546bb1">sep_filter_7x7</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> &amp;k) <span class="keyword">const</span>;
304
+ <a name="l00678"></a>00678 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#86d6ddf30c7475008bee2fee10ce8470">sep_filter_abs_3x3</a>(<span class="keyword">const</span> <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> &amp;ker);
305
+ <a name="l00679"></a>00679 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#86d6ddf30c7475008bee2fee10ce8470">sep_filter_abs_3x3</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> &amp;k) <span class="keyword">const</span>;
306
+ <a name="l00680"></a>00680 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#5a31c776b08129bbbc87d48eb5c9725e">sep_filter_abs_5x5</a>(<span class="keyword">const</span> <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> &amp;ker);
307
+ <a name="l00681"></a>00681 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#5a31c776b08129bbbc87d48eb5c9725e">sep_filter_abs_5x5</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> &amp;k) <span class="keyword">const</span>;
308
+ <a name="l00682"></a>00682 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#65c41f0026de56833d3d855573a50d0a">sep_filter_abs_7x7</a>(<span class="keyword">const</span> <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> &amp;ker);
309
+ <a name="l00683"></a>00683 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#65c41f0026de56833d3d855573a50d0a">sep_filter_abs_7x7</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> &amp;k) <span class="keyword">const</span>;
310
+ <a name="l00684"></a>00684 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#6835776cbffc4e90fdc1a363d771d686">fixed_filter</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keywordtype">int</span> filter) <span class="keyword">const</span>;
311
+ <a name="l00685"></a>00685 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#6835776cbffc4e90fdc1a363d771d686">fixed_filter</a>(<span class="keywordtype">int</span> filter);
312
+ <a name="l00686"></a>00686
313
+ <a name="l00687"></a>00687 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#26128a974501b55061425d4718903a6c">draw_line</a>(<span class="keywordtype">int</span> x1, <span class="keywordtype">int</span> y1, <span class="keywordtype">int</span> x2, <span class="keywordtype">int</span> y2, <span class="keywordtype">int</span> color);
314
+ <a name="l00688"></a>00688 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#09d4b38ea43d85c386302c682dc91a99">accumulate_line</a>(<span class="keywordtype">int</span> x1, <span class="keywordtype">int</span> y1, <span class="keywordtype">int</span> x2, <span class="keywordtype">int</span> y2, <span class="keywordtype">int</span> acc);
315
+ <a name="l00689"></a>00689 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#7cf2861fa994775beddd73d15b5fc2b4">draw_rectangle</a>(<span class="keywordtype">int</span> x1, <span class="keywordtype">int</span> y1, <span class="keywordtype">int</span> x2, <span class="keywordtype">int</span> y2, <span class="keywordtype">int</span> color);
316
+ <a name="l00690"></a>00690 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#d6de57def5392a3012510b880131ef4c">draw_text_16s</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *text, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> cwidth, <span class="keywordtype">int</span> cheight, <span class="keywordtype">int</span> orientation, <span class="keywordtype">int</span> color);
317
+ <a name="l00691"></a>00691 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#421a1f036889b3bddfe73914abdfb317">draw_text_bitmap</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *text, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keyword">const</span> <a class="code" href="structCamBitmapFont.html">CamBitmapFont</a> &amp;font);
318
+ <a name="l00692"></a>00692 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#f04e18b4157cd28314f14cff24c27255">draw_circle</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> r, <span class="keywordtype">int</span> color);
319
+ <a name="l00693"></a>00693 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#a76effdd94751051d0fccca7cfb19df5">draw_ellipse</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> rx, <span class="keywordtype">int</span> ry, <span class="keywordtype">int</span> color);
320
+ <a name="l00694"></a>00694 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#fa8e85fcd5daf84237140ee0819e1e94">plot</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> color, <span class="keywordtype">int</span> kind=CAM_POINT);
321
+ <a name="l00695"></a>00695 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#ca1627928b058f792c1f683829f6c194">fill_color</a>(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> fillcolor, <span class="keywordtype">int</span> tolerance=-1);
322
+ <a name="l00696"></a>00696
323
+ <a name="l00697"></a>00697 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#8676750ff52c0bd5fe5aa5662e7d8f4b">scale</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
324
+ <a name="l00698"></a>00698 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#3139f90c796937b3fb6735922fe2934a">set_mask</a>(<span class="keyword">const</span> <a class="code" href="structCamRLEImage.html">CamRLEImage</a> &amp;mask);
325
+ <a name="l00699"></a>00699 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#3139f90c796937b3fb6735922fe2934a">set_mask</a>(<span class="keyword">const</span> <a class="code" href="structCamImage.html">CamImage</a> &amp;mask);
326
+ <a name="l00700"></a>00700 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#729934af05c636d76df44b6d32c2cee4">apply_lut</a>(<span class="keyword">const</span> <a class="code" href="structCamTable.html">CamTable</a> &amp;lut);
327
+ <a name="l00701"></a>00701 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#729934af05c636d76df44b6d32c2cee4">apply_lut</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamTable.html">CamTable</a> &amp;lut) <span class="keyword">const</span>;
328
+ <a name="l00702"></a>00702
329
+ <a name="l00703"></a>00703 <a class="code" href="structCamImage.html">CamImage</a> *<a class="code" href="structCamImage.html#a2ed0da719c621936f077fc91a0c1748">to_yuv</a>() <span class="keyword">const</span>;
330
+ <a name="l00704"></a>00704 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#a2ed0da719c621936f077fc91a0c1748">to_yuv</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
331
+ <a name="l00705"></a>00705 <a class="code" href="structCamImage.html">CamImage</a> *<a class="code" href="structCamImage.html#d5e763e5aef0a4adb7b5731616d656e7">to_rgb</a>() <span class="keyword">const</span>;
332
+ <a name="l00706"></a>00706 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#d5e763e5aef0a4adb7b5731616d656e7">to_rgb</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
333
+ <a name="l00707"></a>00707
334
+ <a name="l00708"></a>00708 <a class="code" href="structCamRLEImage.html">CamRLEImage</a>* <a class="code" href="structCamImage.html#7f61223af6084ae4ee68f9068e2ab8b1">encode</a>() <span class="keyword">const</span>;
335
+ <a name="l00709"></a>00709 <a class="code" href="structCamRLEImage.html">CamRLEImage</a>* <a class="code" href="structCamImage.html#655908504a41f6ba3106b47959eca087">encode_lut</a>(<span class="keyword">const</span> <a class="code" href="structCamTable.html">CamTable</a> &amp;LUT) <span class="keyword">const</span>;
336
+ <a name="l00710"></a>00710 <a class="code" href="structCamRLEImage.html">CamRLEImage</a>* <a class="code" href="structCamImage.html#af6d85e23ae9587fe1e978edd927040d">encode_threshold</a>(<span class="keywordtype">int</span> <a class="code" href="structCamImage.html#9d070d340d25bb7b0ca796ee85731367">threshold</a>) <span class="keyword">const</span>;
337
+ <a name="l00711"></a>00711 <a class="code" href="structCamRLEImage.html">CamRLEImage</a>* <a class="code" href="structCamImage.html#777fdb4812f28713be2b622ab2e90919">encode_threshold_inv</a>(<span class="keywordtype">int</span> <a class="code" href="structCamImage.html#9d070d340d25bb7b0ca796ee85731367">threshold</a>) <span class="keyword">const</span>;
338
+ <a name="l00712"></a>00712 <a class="code" href="structCamRLEImage.html">CamRLEImage</a>* <a class="code" href="structCamImage.html#b51eb727ddf5d945c2589c9f1aec1100">encode_color</a>(<span class="keyword">const</span> <a class="code" href="structCamTable.html">CamTable</a> &amp;clusters) <span class="keyword">const</span>;
339
+ <a name="l00713"></a>00713 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#7f61223af6084ae4ee68f9068e2ab8b1">encode</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a>&amp; dest) <span class="keyword">const</span>;
340
+ <a name="l00714"></a>00714 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#655908504a41f6ba3106b47959eca087">encode_lut</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a>&amp; dest, <span class="keyword">const</span> <a class="code" href="structCamTable.html">CamTable</a> &amp;LUT) <span class="keyword">const</span>;
341
+ <a name="l00715"></a>00715 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#af6d85e23ae9587fe1e978edd927040d">encode_threshold</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a>&amp; dest, <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#9d070d340d25bb7b0ca796ee85731367">threshold</a>) <span class="keyword">const</span>;
342
+ <a name="l00716"></a>00716 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#777fdb4812f28713be2b622ab2e90919">encode_threshold_inv</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a>&amp; dest, <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#9d070d340d25bb7b0ca796ee85731367">threshold</a>) <span class="keyword">const</span>;
343
+ <a name="l00717"></a>00717
344
+ <a name="l00718"></a>00718 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#9d070d340d25bb7b0ca796ee85731367">threshold</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest,<span class="keywordtype">int</span> <a class="code" href="structCamImage.html#9d070d340d25bb7b0ca796ee85731367">threshold</a>) <span class="keyword">const</span>;
345
+ <a name="l00719"></a>00719 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#f40381bf3a54b77002c8b5a3f87dd69d">threshold_inv</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest,<span class="keywordtype">int</span> <a class="code" href="structCamImage.html#9d070d340d25bb7b0ca796ee85731367">threshold</a>) <span class="keyword">const</span>;
346
+ <a name="l00720"></a>00720 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#2bbca64b433d8fdcc0f06ddb45e406b1">abs</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
347
+ <a name="l00721"></a>00721 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#9d070d340d25bb7b0ca796ee85731367">threshold</a>(<span class="keywordtype">int</span> <a class="code" href="structCamImage.html#9d070d340d25bb7b0ca796ee85731367">threshold</a>);
348
+ <a name="l00722"></a>00722 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#f40381bf3a54b77002c8b5a3f87dd69d">threshold_inv</a>(<span class="keywordtype">int</span> <a class="code" href="structCamImage.html#9d070d340d25bb7b0ca796ee85731367">threshold</a>);
349
+ <a name="l00723"></a>00723 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#2bbca64b433d8fdcc0f06ddb45e406b1">abs</a>();
350
+ <a name="l00724"></a>00724
351
+ <a name="l00725"></a>00725 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#95bed480114784934ba911e6a639e890">arithm</a>(<span class="keywordtype">int</span> operation, <span class="keywordtype">int</span> c1=0, <span class="keywordtype">int</span> c2=0, <span class="keywordtype">int</span> c3=0);
352
+ <a name="l00726"></a>00726 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#95bed480114784934ba911e6a639e890">arithm</a>(<a class="code" href="structCamImage.html">CamImage</a>&amp; dest, <span class="keywordtype">int</span> operation, <span class="keywordtype">int</span> c1=0, <span class="keywordtype">int</span> c2=0, <span class="keywordtype">int</span> c3=0) <span class="keyword">const</span>;
353
+ <a name="l00727"></a>00727 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#95bed480114784934ba911e6a639e890">arithm</a>(<span class="keyword">const</span> <a class="code" href="structCamImage.html">CamImage</a>&amp; source2, <a class="code" href="structCamImage.html">CamImage</a>&amp; dest, <span class="keywordtype">int</span> operation, <span class="keywordtype">int</span> c1=0, <span class="keywordtype">int</span> c2=0, <span class="keywordtype">int</span> c3=0, <span class="keywordtype">int</span> c4=0) <span class="keyword">const</span>;
354
+ <a name="l00728"></a>00728
355
+ <a name="l00729"></a>00729 <a class="code" href="structCamMeasuresResults.html">CamMeasuresResults</a> <a class="code" href="structCamImage.html#196fa9730e3d057e4ddde59df8131d98">measures</a>() <span class="keyword">const</span>;
356
+ <a name="l00730"></a>00730 <span class="keywordtype">float</span> <a class="code" href="structCamImage.html#8ec0f74f1e4fa94fe188643e59d3239c">average_deviation</a>(<span class="keywordtype">int</span> average=0) <span class="keyword">const</span>;
357
+ <a name="l00731"></a>00731
358
+ <a name="l00732"></a>00732 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#a6cc8da36d76c2ca0337329931d127e4">sum_hv</a>(<a class="code" href="structCamTable.html">CamTable</a>&amp; hsum, <a class="code" href="structCamTable.html">CamTable</a> &amp;vsum) <span class="keyword">const</span>;
359
+ <a name="l00733"></a>00733 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#6713d1ab96250e8ffe3dffec965e5a2d">sum_h</a>(<a class="code" href="structCamTable.html">CamTable</a>&amp; sum) <span class="keyword">const</span>;
360
+ <a name="l00734"></a>00734 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#0f67ef23a10f2cd4d3c90ac29f059858">sum_v</a>(<a class="code" href="structCamTable.html">CamTable</a>&amp; sum) <span class="keyword">const</span>;
361
+ <a name="l00735"></a>00735
362
+ <a name="l00736"></a>00736 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#cb504d9e1af5ccdf32f1445cd405d648">histogram</a>(<a class="code" href="structCamTable.html">CamTable</a>&amp; histo) <span class="keyword">const</span>;
363
+ <a name="l00737"></a>00737 <span class="keywordtype">bool</span> <a class="code" href="structCamImage.html#df704942972a3df3941ff6971f573326">histogram_2_channels</a>(<span class="keywordtype">int</span> ch1, <span class="keywordtype">int</span> ch2, <a class="code" href="structCamImage.html">CamImage</a> &amp;result, <span class="keywordtype">int</span> size=1) <span class="keyword">const</span>;
364
+ <a name="l00738"></a>00738 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#c34435866c2a0cfc049c8cf7fe46a925">find_threshold</a>(<span class="keywordtype">int</span> percent) <span class="keyword">const</span>;
365
+ <a name="l00739"></a>00739
366
+ <a name="l00740"></a>00740 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#b58882aa7afb2b8ef48662456e61b0b5">hough_circle</a>(<span class="keywordtype">int</span> percent, <span class="keywordtype">int</span> rmin, <span class="keywordtype">int</span> rmax, <span class="keywordtype">int</span> &amp;xc, <span class="keywordtype">int</span> &amp;yc, <span class="keywordtype">int</span> &amp;rc) <span class="keyword">const</span>;
367
+ <a name="l00741"></a>00741
368
+ <a name="l00742"></a>00742 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#95ba0b2de9f858893bcd29311f9477f2">hierarchical_watershed</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;watershed, <a class="code" href="structCamTableOfBasins.html">CamTableOfBasins</a> &amp;tob) <span class="keyword">const</span>;
369
+ <a name="l00743"></a>00743 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#debee2a56b45389d8fbd19612ebd1549">hierarchical_watershed_contours</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;ws, <a class="code" href="structCamTableOfBasins.html">CamTableOfBasins</a> &amp;tob) <span class="keyword">const</span>;
370
+ <a name="l00744"></a>00744 <span class="keywordtype">int</span> <a class="code" href="structCamImage.html#95306abcf2064784961736b52ba4dd0f">hierarchical_watershed_regions</a>(<span class="keyword">const</span> <a class="code" href="structCamTableOfBasins.html">CamTableOfBasins</a> &amp;tob);
371
+ <a name="l00745"></a>00745 };
372
+ <a name="l00746"></a>00746
373
+ <a name="l00747"></a>00747 <span class="keyword">inline</span> CamROI::CamROI(<span class="keyword">const</span> <a class="code" href="structCamImage.html">CamImage</a> &amp;image, <span class="keywordtype">int</span> _coi) { <a class="code" href="structCamROI.html#ebb3fa10fc56c3a051daf7b5de8f473e">coi</a>=_coi; <a class="code" href="structCamROI.html#ed73323466317b01eb2811eeaf10076d">xOffset</a>=0; <a class="code" href="structCamROI.html#cd5901ab1292015a6e07ded8ef11626d">yOffset</a>=0; <a class="code" href="structCamROI.html#0696d43bea5823a9285c74eddfdb1ea6">width</a>=image.<a class="code" href="structCamImage.html#0718d762110194c96df992ac92a0f65a">width</a>; <a class="code" href="structCamROI.html#72cfb85e793e2b5a4b8e55c3ab6a85a1">height</a>=image.<a class="code" href="structCamImage.html#4fdb9abd799982f2665d45c5de3d6249">height</a>; }
374
+ <a name="l00748"></a>00748
375
+ <a name="l00749"></a>00749 <span class="preprocessor">#else</span>
376
+ <a name="l00750"></a>00750 <span class="preprocessor"></span>} <a class="code" href="structCamImage.html">CamImage</a>;
377
+ <a name="l00751"></a>00751 <span class="preprocessor">#endif</span>
378
+ <a name="l00752"></a>00752 <span class="preprocessor"></span>
379
+ <a name="l00753"></a>00753 <span class="comment">/* Camellia C functions headers</span>
380
+ <a name="l00754"></a>00754 <span class="comment"> */</span>
381
+ <a name="l00755"></a>00755
382
+ <a name="l00756"></a>00756 <span class="preprocessor">#ifndef SWIG</span>
383
+ <a name="l00757"></a>00757 <span class="preprocessor"></span>
384
+ <a name="l00758"></a>00758 <span class="preprocessor">#define CAM_PIXEL_ACCESS(ptr,y,x) \</span>
385
+ <a name="l00759"></a>00759 <span class="preprocessor"> ((CAM_PIXEL*)((char*)ptr+y*ptr##widthstep)+x)</span>
386
+ <a name="l00760"></a>00760 <span class="preprocessor"></span>
387
+ <a name="l00761"></a>00761 <span class="preprocessor">#define CAM_MAX(a,b) (((a)&gt;(b))?(a):(b))</span>
388
+ <a name="l00762"></a>00762 <span class="preprocessor"></span><span class="preprocessor">#define CAM_MIN(a,b) (((a)&lt;(b))?(a):(b))</span>
389
+ <a name="l00763"></a>00763 <span class="preprocessor"></span>
390
+ <a name="l00767"></a><a class="code" href="camellia_8h.html#0c4aec999467782a435e90a17bf04df0">00767</a> <span class="preprocessor">#define CAM_RGBA(r,g,b,a) ((r)|((g)&lt;&lt;8)|((b)&lt;&lt;16)|((a)&lt;&lt;24))</span>
391
+ <a name="l00768"></a>00768 <span class="preprocessor"></span>
392
+ <a name="l00773"></a><a class="code" href="camellia_8h.html#ba7f529322af216adbff44dd5dda429a">00773</a> <span class="preprocessor">#define CAM_RGB(r,g,b) ((r)|((g)&lt;&lt;8)|((b)&lt;&lt;16))</span>
393
+ <a name="l00774"></a>00774 <span class="preprocessor"></span>
394
+ <a name="l00775"></a>00775 <span class="preprocessor">#endif // SWIG</span>
395
+ <a name="l00776"></a>00776 <span class="preprocessor"></span>
396
+ <a name="l00777"></a>00777 <span class="comment">/* General purpose structures</span>
397
+ <a name="l00778"></a>00778 <span class="comment"> */</span>
398
+ <a name="l00779"></a>00779
399
+ <a name="l00781"></a><a class="code" href="structCamPoint.html">00781</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
400
+ <a name="l00782"></a><a class="code" href="structCamPoint.html#1d01290beb9d479a6f6bc465c6b1d56a">00782</a> <span class="keywordtype">int</span> x;
401
+ <a name="l00783"></a><a class="code" href="structCamPoint.html#9f87598da8b833f3ce380595fc726618">00783</a> <span class="keywordtype">int</span> y;
402
+ <a name="l00784"></a>00784 } <a class="code" href="structCamPoint.html">CamPoint</a>;
403
+ <a name="l00785"></a>00785
404
+ <a name="l00786"></a>00786 <span class="comment">/* Monadic and Dyadic Arithmetic Operators kernel</span>
405
+ <a name="l00787"></a>00787 <span class="comment"> */</span>
406
+ <a name="l00788"></a>00788
407
+ <a name="l00789"></a>00789 <span class="preprocessor">#define CAM_ARITHM_ABS 0</span>
408
+ <a name="l00790"></a>00790 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ARITHM_INVERSE 1</span>
409
+ <a name="l00791"></a>00791 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ARITHM_SELECT 2</span>
410
+ <a name="l00792"></a>00792 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ARITHM_THRESHOLD 3 </span>
411
+ <a name="l00793"></a>00793 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ARITHM_DOUBLE_THRESHOLD 4</span>
412
+ <a name="l00794"></a>00794 <span class="preprocessor"></span>
413
+ <a name="l00795"></a>00795 <span class="preprocessor">#define CAM_ARITHM_ADD 0</span>
414
+ <a name="l00796"></a>00796 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ARITHM_SUM 0</span>
415
+ <a name="l00797"></a>00797 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ARITHM_SUB 1</span>
416
+ <a name="l00798"></a>00798 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ARITHM_MUL 2</span>
417
+ <a name="l00799"></a>00799 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ARITHM_ABSDIFF 3</span>
418
+ <a name="l00800"></a>00800 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ARITHM_WEIGHTED_SUM 4</span>
419
+ <a name="l00801"></a>00801 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ARITHM_INF 5</span>
420
+ <a name="l00802"></a>00802 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ARITHM_SUP 6</span>
421
+ <a name="l00803"></a>00803 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ARITHM_COMP_INF 7</span>
422
+ <a name="l00804"></a>00804 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ARITHM_COMP_EQUAL 8</span>
423
+ <a name="l00805"></a>00805 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ARITHM_COMP_SUP 9</span>
424
+ <a name="l00806"></a>00806 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ARITHM_AND 10</span>
425
+ <a name="l00807"></a>00807 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ARITHM_OR 11</span>
426
+ <a name="l00808"></a>00808 <span class="preprocessor"></span>
427
+ <a name="l00809"></a>00809 <span class="comment">// Shorter constants</span>
428
+ <a name="l00810"></a>00810 <span class="preprocessor">#define CAM_ABS 0</span>
429
+ <a name="l00811"></a>00811 <span class="preprocessor"></span><span class="preprocessor">#define CAM_INVERSE 1</span>
430
+ <a name="l00812"></a>00812 <span class="preprocessor"></span><span class="preprocessor">#define CAM_SELECT 2</span>
431
+ <a name="l00813"></a>00813 <span class="preprocessor"></span><span class="preprocessor">#define CAM_THRESHOLD 3 </span>
432
+ <a name="l00814"></a>00814 <span class="preprocessor"></span><span class="preprocessor">#define CAM_DOUBLE_THRESHOLD 4</span>
433
+ <a name="l00815"></a>00815 <span class="preprocessor"></span>
434
+ <a name="l00816"></a>00816 <span class="preprocessor">#define CAM_ADD 0</span>
435
+ <a name="l00817"></a>00817 <span class="preprocessor"></span><span class="preprocessor">#define CAM_SUM 0</span>
436
+ <a name="l00818"></a>00818 <span class="preprocessor"></span><span class="preprocessor">#define CAM_SUB 1</span>
437
+ <a name="l00819"></a>00819 <span class="preprocessor"></span><span class="preprocessor">#define CAM_ABSDIFF 2</span>
438
+ <a name="l00820"></a>00820 <span class="preprocessor"></span><span class="preprocessor">#define CAM_WEIGHTED_SUM 3</span>
439
+ <a name="l00821"></a>00821 <span class="preprocessor"></span><span class="preprocessor">#define CAM_INF 4</span>
440
+ <a name="l00822"></a>00822 <span class="preprocessor"></span><span class="preprocessor">#define CAM_SUP 5</span>
441
+ <a name="l00823"></a>00823 <span class="preprocessor"></span><span class="preprocessor">#define CAM_COMP_INF 6</span>
442
+ <a name="l00824"></a>00824 <span class="preprocessor"></span><span class="preprocessor">#define CAM_COMP_EQUAL 7</span>
443
+ <a name="l00825"></a>00825 <span class="preprocessor"></span><span class="preprocessor">#define CAM_COMP_SUP 8</span>
444
+ <a name="l00826"></a>00826 <span class="preprocessor"></span><span class="preprocessor">#define CAM_AND 9</span>
445
+ <a name="l00827"></a>00827 <span class="preprocessor"></span><span class="preprocessor">#define CAM_OR 10</span>
446
+ <a name="l00828"></a>00828 <span class="preprocessor"></span>
447
+ <a name="l00829"></a>00829 <span class="preprocessor">#ifndef SWIG</span>
448
+ <a name="l00830"></a>00830 <span class="preprocessor"></span>
449
+ <a name="l00832"></a>00832
450
+ <a name="l00835"></a><a class="code" href="structCamArithmParams.html">00835</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
451
+ <a name="l00836"></a><a class="code" href="structCamArithmParams.html#81ae7b6aa7164c6b6bd1eda263baf989">00836</a> <span class="keywordtype">int</span> operation;
452
+ <a name="l00837"></a><a class="code" href="structCamArithmParams.html#c8a45f07c07b0e1777090eee066fc3e0">00837</a> <span class="keywordtype">int</span> c1;
453
+ <a name="l00838"></a><a class="code" href="structCamArithmParams.html#00efb839ef73b4b34f03a14c5e1654c8">00838</a> <span class="keywordtype">int</span> c2;
454
+ <a name="l00839"></a><a class="code" href="structCamArithmParams.html#99bfa642f82d0ef308527f11ac1249d1">00839</a> <span class="keywordtype">int</span> c3;
455
+ <a name="l00840"></a><a class="code" href="structCamArithmParams.html#b3e12c67fc66da6c9414d870bb8e33ed">00840</a> <span class="keywordtype">int</span> c4;
456
+ <a name="l00841"></a>00841 } <a class="code" href="structCamArithmParams.html">CamArithmParams</a>;
457
+ <a name="l00842"></a>00842
458
+ <a name="l00843"></a>00843 <span class="preprocessor">#endif // SWIG</span>
459
+ <a name="l00844"></a>00844 <span class="preprocessor"></span>
460
+ <a name="l00845"></a>00845 <span class="preprocessor">#ifdef __cplusplus</span>
461
+ <a name="l00846"></a>00846 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
462
+ <a name="l00847"></a>00847 <span class="preprocessor">#endif</span>
463
+ <a name="l00848"></a>00848 <span class="preprocessor"></span>
464
+ <a name="l00849"></a>00849 <span class="preprocessor">#ifndef SWIG</span>
465
+ <a name="l00850"></a>00850 <span class="preprocessor"></span>
466
+ <a name="l00852"></a>00852
467
+ <a name="l00876"></a>00876 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#893c77311bc86c4e0cd4145e9e4d73c5">camMonadicArithm</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamArithmParams.html">CamArithmParams</a> *params);
468
+ <a name="l00877"></a>00877
469
+ <a name="l00879"></a>00879
470
+ <a name="l00918"></a>00918 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#92644056e097e0734e774001fbcdcacb">camDyadicArithm</a>(<a class="code" href="structCamImage.html">CamImage</a> *source1, <a class="code" href="structCamImage.html">CamImage</a> *source2, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamArithmParams.html">CamArithmParams</a> *params);
471
+ <a name="l00919"></a>00919
472
+ <a name="l00921"></a>00921
473
+ <a name="l00923"></a>00923 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#3da02773030098aa2560d20c433508f1">camThreshold</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <span class="keywordtype">int</span> threshold);
474
+ <a name="l00924"></a>00924
475
+ <a name="l00926"></a>00926
476
+ <a name="l00928"></a>00928 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#a662752c18c3bef9387a1eeb2de12ac5">camThresholdInv</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <span class="keywordtype">int</span> threshold);
477
+ <a name="l00929"></a>00929
478
+ <a name="l00931"></a>00931 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#3f143e0650065dfaffe00db233efd3f9">camAbs</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
479
+ <a name="l00932"></a>00932
480
+ <a name="l00933"></a>00933 <span class="comment">/* Apply-a-LUT-on-image Kernel</span>
481
+ <a name="l00934"></a>00934 <span class="comment"> */</span>
482
+ <a name="l00935"></a>00935
483
+ <a name="l00936"></a>00936 <span class="comment">// 12 bits maximum LUT management</span>
484
+ <a name="l00937"></a>00937 <span class="preprocessor">#define CAM_TABLE_SIZE 4096</span>
485
+ <a name="l00938"></a>00938 <span class="preprocessor"></span>
486
+ <a name="l00939"></a>00939 <span class="preprocessor">#define CamLUT CamTable</span>
487
+ <a name="l00940"></a>00940 <span class="preprocessor"></span><span class="preprocessor">#define CamHisto CamTable</span>
488
+ <a name="l00941"></a>00941 <span class="preprocessor"></span>
489
+ <a name="l00942"></a>00942 <span class="preprocessor">#ifdef __cplusplus</span>
490
+ <a name="l00943"></a>00943 <span class="preprocessor"></span>
491
+ <a name="l00944"></a><a class="code" href="structCamTable.html">00944</a> <span class="keyword">struct </span><a class="code" href="structCamTable.html">CamTable</a> {
492
+ <a name="l00945"></a>00945 <span class="preprocessor">#else</span>
493
+ <a name="l00946"></a>00946 <span class="preprocessor"></span>
494
+ <a name="l00947"></a>00947 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
495
+ <a name="l00948"></a>00948 <span class="preprocessor">#endif</span>
496
+ <a name="l00949"></a><a class="code" href="structCamTable.html#37d41267f8a3e8294724be1f1ec27241">00949</a> <span class="preprocessor"></span> <span class="keywordtype">int</span> <a class="code" href="structCamTable.html#37d41267f8a3e8294724be1f1ec27241">t</a>[CAM_TABLE_SIZE];
497
+ <a name="l00950"></a><a class="code" href="structCamTable.html#e222c682253452be0846e71d9c381994">00950</a> <span class="keywordtype">int</span> <a class="code" href="structCamTable.html#e222c682253452be0846e71d9c381994">size</a>;
498
+ <a name="l00951"></a>00951 <span class="preprocessor">#ifdef __cplusplus </span>
499
+ <a name="l00952"></a>00952 <span class="preprocessor"></span> <a class="code" href="structCamTable.html">CamTable</a>(<span class="keywordtype">int</span> s=0) {size=s;}
500
+ <a name="l00953"></a>00953 <span class="keywordtype">int</span> &amp;operator[](<span class="keywordtype">int</span> n);
501
+ <a name="l00954"></a>00954 <span class="keywordtype">bool</span> set(<span class="keyword">const</span> <span class="keywordtype">int</span>* <span class="keyword">const</span> array, <span class="keywordtype">int</span> sz) { <span class="keywordflow">if</span> (sz&lt;CAM_TABLE_SIZE) { size=sz; <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0;i&lt;sz;i++) t[i]=array[i]; <span class="keywordflow">return</span> <span class="keyword">true</span>;} <span class="keywordflow">return</span> <span class="keyword">false</span>;}
502
+ <a name="l00955"></a>00955 };
503
+ <a name="l00956"></a>00956 <span class="preprocessor">#else</span>
504
+ <a name="l00957"></a>00957 <span class="preprocessor"></span>} <a class="code" href="structCamTable.html">CamTable</a>;
505
+ <a name="l00958"></a>00958 <span class="preprocessor">#endif</span>
506
+ <a name="l00959"></a>00959 <span class="preprocessor"></span>
507
+ <a name="l00961"></a>00961 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#1059dd4f90093463d612651ebe7b340a">camApplyLUT</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamTable.html">CamTable</a> *LUT);
508
+ <a name="l00962"></a>00962
509
+ <a name="l00963"></a>00963 <span class="preprocessor">#endif // SWIG</span>
510
+ <a name="l00964"></a>00964 <span class="preprocessor"></span>
511
+ <a name="l00965"></a>00965 <span class="comment">/* Fundamental Morphological Mathematics Algorithms' kernel</span>
512
+ <a name="l00966"></a>00966 <span class="comment"> */</span>
513
+ <a name="l00967"></a>00967 <span class="preprocessor">#define CAM_MM_NEIGHB 7</span>
514
+ <a name="l00968"></a>00968 <span class="preprocessor"></span>
515
+ <a name="l00969"></a>00969 <span class="preprocessor">#define CAM_MM_DILATED 0</span>
516
+ <a name="l00970"></a>00970 <span class="preprocessor"></span><span class="preprocessor">#define CAM_MM_ERODED 1</span>
517
+ <a name="l00971"></a>00971 <span class="preprocessor"></span><span class="preprocessor">#define CAM_MM_ORIGINAL 2</span>
518
+ <a name="l00972"></a>00972 <span class="preprocessor"></span>
519
+ <a name="l00973"></a>00973 <span class="preprocessor">#define CAM_MM_SUBSTRACTION 0</span>
520
+ <a name="l00974"></a>00974 <span class="preprocessor"></span><span class="preprocessor">#define CAM_MM_MULTIPLEX 1</span>
521
+ <a name="l00975"></a>00975 <span class="preprocessor"></span><span class="preprocessor">#define CAM_MM_THINNING 2</span>
522
+ <a name="l00976"></a>00976 <span class="preprocessor"></span><span class="preprocessor">#define CAM_MM_THICKENING 3</span>
523
+ <a name="l00977"></a>00977 <span class="preprocessor"></span>
524
+ <a name="l00979"></a>00979
525
+ <a name="l00982"></a>00982 <span class="preprocessor">#ifdef __cplusplus</span>
526
+ <a name="l00983"></a><a class="code" href="structCamMorphoMathsKernel.html">00983</a> <span class="preprocessor"></span><span class="keyword">struct </span><a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> {
527
+ <a name="l00984"></a>00984 <span class="preprocessor">#else</span>
528
+ <a name="l00985"></a>00985 <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{
529
+ <a name="l00986"></a>00986 <span class="preprocessor">#endif</span>
530
+ <a name="l00987"></a>00987 <span class="preprocessor"></span> <span class="comment">// Structural elements</span>
531
+ <a name="l00988"></a>00988 <span class="preprocessor">#ifndef SWIG</span>
532
+ <a name="l00989"></a><a class="code" href="structCamMorphoMathsKernel.html#c47c40749779d6bc2e39be038687f809">00989</a> <span class="preprocessor"></span> <span class="keywordtype">int</span> <a class="code" href="structCamMorphoMathsKernel.html#c47c40749779d6bc2e39be038687f809">dilationStructElt</a>[CAM_MM_NEIGHB][CAM_MM_NEIGHB];
533
+ <a name="l00990"></a><a class="code" href="structCamMorphoMathsKernel.html#6f6f381c52fb2001573235266f3bf2fd">00990</a> <span class="keywordtype">int</span> <a class="code" href="structCamMorphoMathsKernel.html#6f6f381c52fb2001573235266f3bf2fd">erosionStructElt</a>[CAM_MM_NEIGHB][CAM_MM_NEIGHB];
534
+ <a name="l00991"></a>00991 <span class="preprocessor">#endif</span>
535
+ <a name="l00992"></a><a class="code" href="structCamMorphoMathsKernel.html#a2eddb4963ffbe61a9c8da90f7f90557">00992</a> <span class="preprocessor"></span> <span class="keywordtype">int</span> <a class="code" href="structCamMorphoMathsKernel.html#a2eddb4963ffbe61a9c8da90f7f90557">source1</a>;
536
+ <a name="l00993"></a><a class="code" href="structCamMorphoMathsKernel.html#38b2698c3472a2e0bb43cd0c68107958">00993</a> <span class="keywordtype">int</span> <a class="code" href="structCamMorphoMathsKernel.html#38b2698c3472a2e0bb43cd0c68107958">source2</a>;
537
+ <a name="l00994"></a><a class="code" href="structCamMorphoMathsKernel.html#b45f8f43426bb38162143c1e8aa84582">00994</a> <span class="keywordtype">int</span> <a class="code" href="structCamMorphoMathsKernel.html#b45f8f43426bb38162143c1e8aa84582">operation</a>;
538
+ <a name="l00995"></a>00995 <span class="preprocessor">#ifdef __cplusplus</span>
539
+ <a name="l00996"></a>00996 <span class="preprocessor"></span>
540
+ <a name="l00997"></a><a class="code" href="structCamMorphoMathsKernel.html#139b91a3ff7cdc738bf330ace55b64dd">00997</a> <a class="code" href="structCamMorphoMathsKernel.html#139b91a3ff7cdc738bf330ace55b64dd">CamMorphoMathsKernel</a>() {
541
+ <a name="l00998"></a>00998 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0;i&lt;CAM_MM_NEIGHB;i++) {
542
+ <a name="l00999"></a>00999 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j=0;j&lt;CAM_MM_NEIGHB;j++) {
543
+ <a name="l01000"></a>01000 dilationStructElt[i][j]=0;
544
+ <a name="l01001"></a>01001 erosionStructElt[i][j]=0;
545
+ <a name="l01002"></a>01002 }
546
+ <a name="l01003"></a>01003 }
547
+ <a name="l01004"></a>01004 <a class="code" href="structCamMorphoMathsKernel.html#a2eddb4963ffbe61a9c8da90f7f90557">source1</a>=CAM_MM_ORIGINAL;
548
+ <a name="l01005"></a>01005 <a class="code" href="structCamMorphoMathsKernel.html#38b2698c3472a2e0bb43cd0c68107958">source2</a>=CAM_MM_ORIGINAL;
549
+ <a name="l01006"></a>01006 <a class="code" href="structCamMorphoMathsKernel.html#b45f8f43426bb38162143c1e8aa84582">operation</a>=CAM_MM_MULTIPLEX;
550
+ <a name="l01007"></a>01007 }
551
+ <a name="l01009"></a><a class="code" href="structCamMorphoMathsKernel.html#5099219db228546d2f336e922d7c5050">01009</a> <span class="keywordtype">bool</span> set_dilate(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> val) {
552
+ <a name="l01010"></a>01010 <span class="keywordflow">if</span> ((x&gt;=0)&amp;&amp;(x&lt;CAM_MM_NEIGHB)&amp;&amp;(y&gt;=0)&amp;&amp;(y&lt;CAM_MM_NEIGHB)) {
553
+ <a name="l01011"></a>01011 dilationStructElt[x][y]=val; <span class="keywordflow">return</span> <span class="keyword">true</span>;
554
+ <a name="l01012"></a>01012 } <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
555
+ <a name="l01013"></a>01013 }
556
+ <a name="l01015"></a><a class="code" href="structCamMorphoMathsKernel.html#7bb30952c67918e20e5c31d2be64d90f">01015</a> <span class="keywordtype">int</span> get_dilate(<span class="keywordtype">int</span> x,<span class="keywordtype">int</span> y) {
557
+ <a name="l01016"></a>01016 <span class="keywordflow">if</span> ((x&gt;=0)&amp;&amp;(x&lt;CAM_MM_NEIGHB)&amp;&amp;(y&gt;=0)&amp;&amp;(y&lt;CAM_MM_NEIGHB)) {
558
+ <a name="l01017"></a>01017 <span class="keywordflow">return</span> dilationStructElt[x][y];
559
+ <a name="l01018"></a>01018 } <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
560
+ <a name="l01019"></a>01019 }
561
+ <a name="l01021"></a><a class="code" href="structCamMorphoMathsKernel.html#55e92e2ad14579d99f4c40f6b4eb4af2">01021</a> <span class="keywordtype">bool</span> set_erode(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> val) {
562
+ <a name="l01022"></a>01022 <span class="keywordflow">if</span> ((x&gt;=0)&amp;&amp;(x&lt;CAM_MM_NEIGHB)&amp;&amp;(y&gt;=0)&amp;&amp;(y&lt;CAM_MM_NEIGHB)) {
563
+ <a name="l01023"></a>01023 erosionStructElt[x][y]=val; <span class="keywordflow">return</span> <span class="keyword">true</span>;
564
+ <a name="l01024"></a>01024 } <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
565
+ <a name="l01025"></a>01025 }
566
+ <a name="l01027"></a><a class="code" href="structCamMorphoMathsKernel.html#13d534566bcb315bc23226f363626a32">01027</a> <span class="keywordtype">int</span> get_erode(<span class="keywordtype">int</span> x,<span class="keywordtype">int</span> y) {
567
+ <a name="l01028"></a>01028 <span class="keywordflow">if</span> ((x&gt;=0)&amp;&amp;(x&lt;CAM_MM_NEIGHB)&amp;&amp;(y&gt;=0)&amp;&amp;(y&lt;CAM_MM_NEIGHB)) {
568
+ <a name="l01029"></a>01029 <span class="keywordflow">return</span> erosionStructElt[x][y];
569
+ <a name="l01030"></a>01030 } <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
570
+ <a name="l01031"></a>01031 }
571
+ <a name="l01032"></a>01032 };
572
+ <a name="l01033"></a>01033 <span class="preprocessor">#else</span>
573
+ <a name="l01034"></a>01034 <span class="preprocessor"></span>} <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a>;
574
+ <a name="l01035"></a>01035 <span class="preprocessor">#endif</span>
575
+ <a name="l01036"></a>01036 <span class="preprocessor"></span>
576
+ <a name="l01037"></a>01037 <span class="preprocessor">#ifndef SWIG</span>
577
+ <a name="l01038"></a>01038 <span class="preprocessor"></span>
578
+ <a name="l01043"></a>01043
579
+ <a name="l01045"></a>01045
580
+ <a name="l01057"></a>01057 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#52d51b9230e15d3f4de74a5d0a9c6c11">camMorphoMaths</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> *kernel);
581
+ <a name="l01058"></a>01058
582
+ <a name="l01059"></a>01059 <span class="comment">// These are specific functions able to compute only erosion or dilation, on 3x3, 5x5 or 7x7 neighbourhood</span>
583
+ <a name="l01060"></a>01060
584
+ <a name="l01069"></a>01069 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#66d45657c1f0d5c57ff29a6db5737124">camErode3x3</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> *kernel);
585
+ <a name="l01070"></a>01070
586
+ <a name="l01079"></a>01079 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#509eb9626695b34a758cc646331d5738">camErode5x5</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> *kernel);
587
+ <a name="l01080"></a>01080
588
+ <a name="l01089"></a>01089 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#40c1bc1ac3471c2b2b9d80196ef7c84b">camErode7x7</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> *kernel);
589
+ <a name="l01090"></a>01090
590
+ <a name="l01099"></a>01099 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#ea6d49b279e9f8b9a37ca76d76132dec">camDilate3x3</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> *kernel);
591
+ <a name="l01100"></a>01100
592
+ <a name="l01109"></a>01109 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#25292226167d1208b5f2a0201c993f76">camDilate5x5</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> *kernel);
593
+ <a name="l01110"></a>01110
594
+ <a name="l01119"></a>01119 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#877f74ef21bc6137de91330bc8221d51">camDilate7x7</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamMorphoMathsKernel.html">CamMorphoMathsKernel</a> *kernel);
595
+ <a name="l01120"></a>01120
596
+ <a name="l01132"></a>01132 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#293efc2f56e0b03053570e365fc0186f">camMorphoGradientCircle5</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
597
+ <a name="l01133"></a>01133
598
+ <a name="l01143"></a>01143 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#17cbf594bed35eed1ad716bcfd586a2e">camErodeCircle5</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
599
+ <a name="l01144"></a>01144
600
+ <a name="l01154"></a>01154 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#290c44dc86b91ddfa7ed37d954e687d3">camDilateCircle5</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
601
+ <a name="l01155"></a>01155
602
+ <a name="l01167"></a>01167 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#f2ea7f9675545d5679c241888c13981c">camMorphoGradientCircle7</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
603
+ <a name="l01168"></a>01168
604
+ <a name="l01178"></a>01178 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#681f725ab242ecd8decf7c69fe84a941">camErodeCircle7</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
605
+ <a name="l01179"></a>01179
606
+ <a name="l01189"></a>01189 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#804d77aabcd5f77d3a4dd5f0fabb97ad">camDilateCircle7</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
607
+ <a name="l01190"></a>01190
608
+ <a name="l01202"></a>01202 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#2a4c93e9b36955b34685629043ce4de1">camMorphoGradientSquare3</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
609
+ <a name="l01203"></a>01203
610
+ <a name="l01213"></a>01213 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#944740494c1d9a5052d7976c1ca7037e">camErodeSquare3</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
611
+ <a name="l01214"></a>01214
612
+ <a name="l01224"></a>01224 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#c91a921eddbe7e9650944dc637cd82ef">camDilateSquare3</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
613
+ <a name="l01225"></a>01225
614
+ <a name="l01226"></a>01226
615
+ <a name="l01227"></a>01227 <span class="comment">/* Labeling kernel</span>
616
+ <a name="l01228"></a>01228 <span class="comment"> */</span>
617
+ <a name="l01229"></a>01229 <span class="preprocessor">#define CamLabellingResults CamLabelingResults</span>
618
+ <a name="l01230"></a>01230 <span class="preprocessor"></span><span class="preprocessor">#define camLabelling camLabeling</span>
619
+ <a name="l01231"></a>01231 <span class="preprocessor"></span><span class="preprocessor">#define camLabelling2ndScan camLabeling2ndScan</span>
620
+ <a name="l01232"></a>01232 <span class="preprocessor"></span><span class="preprocessor">#define camRLELabelling camRLELabeling</span>
621
+ <a name="l01233"></a>01233 <span class="preprocessor"></span>
622
+ <a name="l01234"></a>01234 <span class="preprocessor">#define CAM_LABEL_MAX_BLOBS 1024</span>
623
+ <a name="l01235"></a>01235 <span class="preprocessor"></span><span class="preprocessor">#define CAM_LABEL_PIXEL unsigned short</span>
624
+ <a name="l01236"></a>01236 <span class="preprocessor"></span>
625
+ <a name="l01237"></a>01237 <span class="preprocessor">#define CAM_LABEL_PIXEL_ACCESS(ptr,y,x) \</span>
626
+ <a name="l01238"></a>01238 <span class="preprocessor"> ((CAM_LABEL_PIXEL*)((char*)ptr+y*ptr##widthstep)+x)</span>
627
+ <a name="l01239"></a>01239 <span class="preprocessor"></span>
628
+ <a name="l01241"></a><a class="code" href="structCamLabelingResults.html">01241</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
629
+ <a name="l01242"></a><a class="code" href="structCamLabelingResults.html#84c1e3823ebebe431949ac65a6f2fc85">01242</a> <span class="keywordtype">int</span> nbLabels;
630
+ <a name="l01243"></a><a class="code" href="structCamLabelingResults.html#a727e38011e4ed5a6e852e8b3cb40b00">01243</a> <span class="keywordtype">int</span> equiv[CAM_LABEL_MAX_BLOBS];
631
+ <a name="l01244"></a>01244 } <a class="code" href="structCamLabelingResults.html">CamLabelingResults</a>;
632
+ <a name="l01245"></a>01245
633
+ <a name="l01247"></a>01247
634
+ <a name="l01260"></a>01260 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#5fc50b255032118cd481cf644c9ea49a">camLabeling</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamLabelingResults.html">CamLabelingResults</a> *results);
635
+ <a name="l01261"></a>01261
636
+ <a name="l01266"></a>01266 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#2a3522307f11a548e4cb1f335924e348">camLabeling2ndScan</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <a class="code" href="structCamLabelingResults.html">CamLabelingResults</a> *results);
637
+ <a name="l01267"></a>01267
638
+ <a name="l01268"></a>01268 <span class="comment">/* Blob analysis Kernel</span>
639
+ <a name="l01269"></a>01269 <span class="comment"> * C code */</span>
640
+ <a name="l01270"></a>01270
641
+ <a name="l01271"></a>01271 <span class="preprocessor">#endif // SWIG</span>
642
+ <a name="l01272"></a>01272 <span class="preprocessor"></span>
643
+ <a name="l01273"></a>01273 <span class="preprocessor">#define CAM_RLE_INT_TYPE unsigned short</span>
644
+ <a name="l01274"></a>01274 <span class="preprocessor"></span>
645
+ <a name="l01276"></a>01276
646
+ <a name="l01278"></a><a class="code" href="structCamRun.html">01278</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
647
+ <a name="l01279"></a><a class="code" href="structCamRun.html#7128ba9edc8d94ba869e3a2abe545e6f">01279</a> CAM_RLE_INT_TYPE value;
648
+ <a name="l01280"></a><a class="code" href="structCamRun.html#07a7b4f736d8a7556c55c7e020e5ca4f">01280</a> CAM_RLE_INT_TYPE length;
649
+ <a name="l01281"></a><a class="code" href="structCamRun.html#1c9e35a7b428c1d87ed965bed784144a">01281</a> CAM_RLE_INT_TYPE blob;
650
+ <a name="l01282"></a><a class="code" href="structCamRun.html#996fdb2f29d1dcd503d4849c596cf19b">01282</a> CAM_RLE_INT_TYPE line;
651
+ <a name="l01283"></a>01283 } <a class="code" href="structCamRun.html">CamRun</a>;
652
+ <a name="l01284"></a>01284
653
+ <a name="l01285"></a>01285 <span class="preprocessor">#ifndef SWIG</span>
654
+ <a name="l01286"></a>01286 <span class="preprocessor"></span>
655
+ <a name="l01288"></a><a class="code" href="structCamBlobInfo.html">01288</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
656
+ <a name="l01289"></a>01289 <span class="keywordtype">int</span> id;
657
+ <a name="l01290"></a><a class="code" href="structCamBlobInfo.html#62e462c811287eba85820577476024e4">01290</a> <span class="keywordtype">int</span> left;
658
+ <a name="l01291"></a><a class="code" href="structCamBlobInfo.html#6fd85bde3654472fea8feef0e84336f9">01291</a> <span class="keywordtype">int</span> top;
659
+ <a name="l01292"></a><a class="code" href="structCamBlobInfo.html#ccb25ce9145eaf24cc530093fcfecd60">01292</a> <span class="keywordtype">int</span> width;
660
+ <a name="l01293"></a><a class="code" href="structCamBlobInfo.html#0de38b280c65796521fc3c6ada3b4b57">01293</a> <span class="keywordtype">int</span> height;
661
+ <a name="l01294"></a><a class="code" href="structCamBlobInfo.html#ecf85434c03b0b0b436eec12b02caf57">01294</a> <span class="keywordtype">int</span> surface;
662
+ <a name="l01295"></a><a class="code" href="structCamBlobInfo.html#409836355176c0f46765fa1ba96510a4">01295</a> <span class="keywordtype">int</span> cx;
663
+ <a name="l01296"></a><a class="code" href="structCamBlobInfo.html#4d659cc926320783a545def6f49b2b2c">01296</a> <span class="keywordtype">int</span> cy;
664
+ <a name="l01297"></a><a class="code" href="structCamBlobInfo.html#7575331a396724154459360cf79471c1">01297</a> <span class="keywordtype">int</span> value;
665
+ <a name="l01298"></a><a class="code" href="structCamBlobInfo.html#cfd9bc16dd41613b28dc101cbcb5a6d2">01298</a> <span class="keywordtype">int</span> min;
666
+ <a name="l01299"></a><a class="code" href="structCamBlobInfo.html#3076592c9ccc073094e1a4cda9164968">01299</a> <span class="keywordtype">int</span> max;
667
+ <a name="l01300"></a><a class="code" href="structCamBlobInfo.html#50a902fcc446f0f4ce7a3f15c76b4034">01300</a> <a class="code" href="structCamRun.html">CamRun</a> *first;
668
+ <a name="l01301"></a><a class="code" href="structCamBlobInfo.html#ab1a1ddca2b9d41036f4788dca4949c9">01301</a> <a class="code" href="structCamRun.html">CamRun</a> *last;
669
+ <a name="l01302"></a><a class="code" href="structCamBlobInfo.html#27e6b4b8d1f21c7901ddbdd33d7e066f">01302</a> <span class="keywordtype">void</span> *misc;
670
+ <a name="l01303"></a>01303 } <a class="code" href="structCamBlobInfo.html">CamBlobInfo</a>;
671
+ <a name="l01304"></a>01304
672
+ <a name="l01305"></a>01305 <span class="preprocessor">#define CamBlobAnalysisResults CamBlobs // For compatibility with previous versions</span>
673
+ <a name="l01306"></a>01306 <span class="preprocessor"></span>
674
+ <a name="l01307"></a>01307 <span class="preprocessor">#ifdef __cplusplus</span>
675
+ <a name="l01308"></a>01308 <span class="preprocessor"></span>
676
+ <a name="l01309"></a><a class="code" href="structCamBlobs.html">01309</a> <span class="keyword">struct </span><a class="code" href="structCamBlobs.html">CamBlobs</a> {
677
+ <a name="l01310"></a><a class="code" href="structCamBlobs.html#71b8c29f9b0a987e479d550f6d749afa">01310</a> <span class="keywordtype">int</span> <a class="code" href="structCamBlobs.html#71b8c29f9b0a987e479d550f6d749afa">nbBlobs</a>;
678
+ <a name="l01311"></a><a class="code" href="structCamBlobs.html#bf2adfc51ad7b81c318e9ea80d27af0a">01311</a> <a class="code" href="structCamBlobInfo.html">CamBlobInfo</a> <a class="code" href="structCamBlobs.html#bf2adfc51ad7b81c318e9ea80d27af0a">blobInfo</a>[CAM_LABEL_MAX_BLOBS];
679
+ <a name="l01312"></a><a class="code" href="structCamBlobs.html#351fe2421db66fb86c0d1391abbc5b69">01312</a> <a class="code" href="structCamBlobs.html#351fe2421db66fb86c0d1391abbc5b69">CamBlobs</a>() {<a class="code" href="structCamBlobs.html#71b8c29f9b0a987e479d550f6d749afa">nbBlobs</a>=0;}
680
+ <a name="l01313"></a>01313 <a class="code" href="structCamBlobInfo.html">CamBlobInfo</a>&amp; operator[](<span class="keywordtype">int</span> index);
681
+ <a name="l01314"></a>01314 };
682
+ <a name="l01315"></a>01315 <span class="preprocessor">#else</span>
683
+ <a name="l01316"></a>01316 <span class="preprocessor"></span>
684
+ <a name="l01317"></a>01317 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
685
+ <a name="l01318"></a>01318 <span class="keywordtype">int</span> nbBlobs;
686
+ <a name="l01319"></a>01319 <a class="code" href="structCamBlobInfo.html">CamBlobInfo</a> blobInfo[CAM_LABEL_MAX_BLOBS];
687
+ <a name="l01320"></a>01320 } <a class="code" href="structCamBlobs.html">CamBlobs</a>;
688
+ <a name="l01321"></a>01321 <span class="preprocessor">#endif</span>
689
+ <a name="l01322"></a>01322 <span class="preprocessor"></span>
690
+ <a name="l01337"></a>01337 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#dc751b1d21a7292086532567b39d5075">camBlobAnalysis1stScan</a>(<a class="code" href="structCamImage.html">CamImage</a> *blobImage, <a class="code" href="structCamImage.html">CamImage</a> *original, <a class="code" href="structCamLabelingResults.html">CamLabelingResults</a> *info, <a class="code" href="structCamBlobs.html">CamBlobs</a> *results);
691
+ <a name="l01338"></a>01338
692
+ <a name="l01340"></a>01340
693
+ <a name="l01349"></a>01349 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#4375c67533e4bf2d01d0a53453e366e3">camBlobAnalysisRefinement</a>(<a class="code" href="structCamImage.html">CamImage</a> *blobImage, <a class="code" href="structCamImage.html">CamImage</a> *original, <a class="code" href="structCamBlobs.html">CamBlobs</a> *results);
694
+ <a name="l01350"></a>01350
695
+ <a name="l01351"></a>01351 <span class="comment">/* RLE Labeling kernel</span>
696
+ <a name="l01352"></a>01352 <span class="comment"> * New : v1.4 of LLAs</span>
697
+ <a name="l01353"></a>01353 <span class="comment"> * Updated v1.6 and v1.9, v2.0 of LLAs</span>
698
+ <a name="l01354"></a>01354 <span class="comment"> */</span>
699
+ <a name="l01355"></a>01355
700
+ <a name="l01359"></a>01359
701
+ <a name="l01360"></a>01360 <span class="preprocessor">#ifdef __cplusplus</span>
702
+ <a name="l01361"></a>01361 <span class="preprocessor"></span>
703
+ <a name="l01362"></a><a class="code" href="structCamRLEImage.html">01362</a> <span class="keyword">struct </span><a class="code" href="structCamRLEImage.html">CamRLEImage</a> {
704
+ <a name="l01363"></a>01363 <span class="preprocessor">#else</span>
705
+ <a name="l01364"></a>01364 <span class="preprocessor"></span>
706
+ <a name="l01365"></a>01365 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
707
+ <a name="l01366"></a>01366 <span class="preprocessor">#endif</span>
708
+ <a name="l01367"></a><a class="code" href="structCamRLEImage.html#3e4702ecf3a4c0698b725bba4f5cff9d">01367</a> <span class="preprocessor"></span> <span class="keywordtype">int</span> <a class="code" href="structCamRLEImage.html#3e4702ecf3a4c0698b725bba4f5cff9d">nSize</a>;
709
+ <a name="l01368"></a><a class="code" href="structCamRLEImage.html#16094e4886280a5a16d85790bd954a3a">01368</a> <span class="keywordtype">int</span> <a class="code" href="structCamRLEImage.html#16094e4886280a5a16d85790bd954a3a">id</a>;
710
+ <a name="l01369"></a><a class="code" href="structCamRLEImage.html#d9e2df73020d95c9a50fcc142f8881f4">01369</a> <span class="keywordtype">int</span> <a class="code" href="structCamRLEImage.html#d9e2df73020d95c9a50fcc142f8881f4">height</a>;
711
+ <a name="l01370"></a><a class="code" href="structCamRLEImage.html#16f405dc2b03c68fc8c4960fe701aec0">01370</a> <span class="keywordtype">int</span> <a class="code" href="structCamRLEImage.html#16f405dc2b03c68fc8c4960fe701aec0">width</a>;
712
+ <a name="l01371"></a><a class="code" href="structCamRLEImage.html#0ba602c1f880d45f1fe7e409e6dcad57">01371</a> <span class="keywordtype">int</span> <a class="code" href="structCamRLEImage.html#0ba602c1f880d45f1fe7e409e6dcad57">nbRuns</a>;
713
+ <a name="l01372"></a><a class="code" href="structCamRLEImage.html#5326cf5ca424a8ef9606d005eda3f102">01372</a> <span class="keywordtype">int</span> <a class="code" href="structCamRLEImage.html#5326cf5ca424a8ef9606d005eda3f102">allocated</a>;
714
+ <a name="l01373"></a><a class="code" href="structCamRLEImage.html#2bc1862869be59e019ea0248581e0c83">01373</a> <a class="code" href="structCamRun.html">CamRun</a> *<a class="code" href="structCamRLEImage.html#2bc1862869be59e019ea0248581e0c83">runs</a>;
715
+ <a name="l01374"></a>01374
716
+ <a name="l01375"></a>01375 <span class="preprocessor">#ifdef __cplusplus</span>
717
+ <a name="l01376"></a><a class="code" href="structCamRLEImage.html#fd3f1e4e3bb6f19e0496a773d14ebac8">01376</a> <span class="preprocessor"></span> <a class="code" href="structCamRLEImage.html#fd3f1e4e3bb6f19e0496a773d14ebac8">CamRLEImage</a>() {allocated=0; <a class="code" href="structCamRLEImage.html#2bc1862869be59e019ea0248581e0c83">runs</a>=NULL; nbRuns=0;}
718
+ <a name="l01377"></a>01377 <a class="code" href="structCamRLEImage.html#fd3f1e4e3bb6f19e0496a773d14ebac8">CamRLEImage</a>(<span class="keywordtype">int</span> nbruns);
719
+ <a name="l01378"></a>01378 <a class="code" href="structCamRLEImage.html#fd3f1e4e3bb6f19e0496a773d14ebac8">CamRLEImage</a>(<span class="keyword">const</span> <a class="code" href="structCamRLEImage.html">CamRLEImage</a> &amp;image);
720
+ <a name="l01379"></a>01379 <a class="code" href="structCamRLEImage.html#275ae6ab66c9967d11b258abcb788d97">~CamRLEImage</a>();
721
+ <a name="l01380"></a>01380
722
+ <a name="l01381"></a>01381 <a class="code" href="structCamRLEImage.html">CamRLEImage</a>&amp; <a class="code" href="structCamRLEImage.html#03a37f55ec80771590115b09fe225ca4">operator=</a>(<span class="keyword">const</span> <a class="code" href="structCamRLEImage.html">CamRLEImage</a> &amp;image);
723
+ <a name="l01382"></a>01382 <a class="code" href="structCamRLEImage.html">CamRLEImage</a>* <a class="code" href="structCamRLEImage.html#81a5e9603c37515a745d3ee800426e47">clone</a>() <span class="keyword">const</span>;
724
+ <a name="l01383"></a>01383 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#b51b3a8952ac485ffd95f3890769e956">alloc</a>(<span class="keywordtype">int</span> nbruns);
725
+ <a name="l01384"></a>01384 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#834d276bdf1bed46846982cee867a3d0">realloc</a>(<span class="keywordtype">int</span> nbruns);
726
+ <a name="l01385"></a>01385
727
+ <a name="l01386"></a>01386 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#66382868c537ddd25b1bb30b725fd983">encode</a>(<span class="keyword">const</span> <a class="code" href="structCamImage.html">CamImage</a> &amp;image);
728
+ <a name="l01387"></a>01387 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#e7a31187d32a6c7eed8cb737a8accc69">encode_lut</a>(<span class="keyword">const</span> <a class="code" href="structCamImage.html">CamImage</a> &amp;image, <span class="keyword">const</span> <a class="code" href="structCamTable.html">CamTable</a> &amp;LUT);
729
+ <a name="l01388"></a>01388 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#f93bc29639595478c7a42af1169a3448">encode_threshold</a>(<span class="keyword">const</span> <a class="code" href="structCamImage.html">CamImage</a> &amp;image, <span class="keywordtype">int</span> threshold);
730
+ <a name="l01389"></a>01389 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#da3e74992e52c6bf02afbd1f5a25aa0c">encode_threshold_inv</a>(<span class="keyword">const</span> <a class="code" href="structCamImage.html">CamImage</a> &amp;image, <span class="keywordtype">int</span> threshold);
731
+ <a name="l01390"></a>01390 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#c118900e76107f3ea4cf77026bb771a8">encode_color</a>(<span class="keyword">const</span> <a class="code" href="structCamImage.html">CamImage</a> &amp;image, <span class="keyword">const</span> <a class="code" href="structCamTable.html">CamTable</a> &amp;clusters);
732
+ <a name="l01391"></a>01391 <a class="code" href="structCamBlobs.html">CamBlobs</a>* <a class="code" href="structCamRLEImage.html#4042d02abb2522ec7991230e63741aab">labeling</a>();
733
+ <a name="l01392"></a>01392 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#4042d02abb2522ec7991230e63741aab">labeling</a>(<a class="code" href="structCamBlobs.html">CamBlobs</a> &amp;results);
734
+ <a name="l01393"></a>01393 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#3cf6bfe8e3472bdfaea998a09fce6e5c">blob_analysis</a>(<a class="code" href="structCamBlobs.html">CamBlobs</a> &amp;results) <span class="keyword">const</span>;
735
+ <a name="l01394"></a>01394 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#49fc96274720aa9958c913b36119c505">apply_lut</a>(<span class="keyword">const</span> <a class="code" href="structCamTable.html">CamTable</a> &amp;LUT);
736
+ <a name="l01395"></a>01395 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#49fc96274720aa9958c913b36119c505">apply_lut</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamTable.html">CamTable</a> &amp;LUT) <span class="keyword">const</span>;
737
+ <a name="l01396"></a>01396 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#b767a51ef5625e38c78fddbaf80b0397">decode</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
738
+ <a name="l01397"></a>01397 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#b767a51ef5625e38c78fddbaf80b0397">decode</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamTable.html">CamTable</a> &amp;LUT) <span class="keyword">const</span>;
739
+ <a name="l01398"></a>01398 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#b256cf259d9affa9d580b565d4815162">decode_blobs</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest) <span class="keyword">const</span>;
740
+ <a name="l01399"></a>01399 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#b256cf259d9affa9d580b565d4815162">decode_blobs</a>(<a class="code" href="structCamImage.html">CamImage</a> &amp;dest, <span class="keyword">const</span> <a class="code" href="structCamTable.html">CamTable</a> &amp;LUT) <span class="keyword">const</span>;
741
+ <a name="l01400"></a>01400 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#24d7b9888fb00f83870a9fa4491c1049">inverse</a>();
742
+ <a name="l01401"></a>01401 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#97f90336b0f9c8c6208bd8d9959a6681">erode_cross</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a> &amp;dest) <span class="keyword">const</span>;
743
+ <a name="l01402"></a>01402 <a class="code" href="structCamRLEImage.html">CamRLEImage</a> *<a class="code" href="structCamRLEImage.html#97f90336b0f9c8c6208bd8d9959a6681">erode_cross</a>() <span class="keyword">const</span>;
744
+ <a name="l01403"></a>01403 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#01f73b2b78519748b0e0ab9c03f5940d">erode_3x3</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a> &amp;dest) <span class="keyword">const</span>;
745
+ <a name="l01404"></a>01404 <a class="code" href="structCamRLEImage.html">CamRLEImage</a> *<a class="code" href="structCamRLEImage.html#01f73b2b78519748b0e0ab9c03f5940d">erode_3x3</a>() <span class="keyword">const</span>;
746
+ <a name="l01405"></a>01405 <span class="keywordtype">bool</span> <a class="code" href="structCamRLEImage.html#bf0520ab2ad061c2c3c5250e24520b75">erode_3x2</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a> &amp;dest) <span class="keyword">const</span>;
747
+ <a name="l01406"></a>01406 <a class="code" href="structCamRLEImage.html">CamRLEImage</a> *<a class="code" href="structCamRLEImage.html#bf0520ab2ad061c2c3c5250e24520b75">erode_3x2</a>() <span class="keyword">const</span>;
748
+ <a name="l01407"></a>01407 };
749
+ <a name="l01408"></a>01408 <span class="preprocessor">#else</span>
750
+ <a name="l01409"></a>01409 <span class="preprocessor"></span>} <a class="code" href="structCamRLEImage.html">CamRLEImage</a>;
751
+ <a name="l01410"></a>01410 <span class="preprocessor">#endif</span>
752
+ <a name="l01411"></a>01411 <span class="preprocessor"></span>
753
+ <a name="l01413"></a>01413
754
+ <a name="l01434"></a>01434 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#7abff958da31df68c1e2e51876303592">camRLEAllocate</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a> *rle, <span class="keywordtype">int</span> max_runs);
755
+ <a name="l01435"></a>01435
756
+ <a name="l01437"></a>01437
757
+ <a name="l01445"></a>01445 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#2c150b160d28340ece465e8161eb8757">camRLEDeallocate</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a> *rle);
758
+ <a name="l01446"></a>01446
759
+ <a name="l01448"></a>01448
760
+ <a name="l01457"></a>01457 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#b2e398655ce514efabaf74a2caca3447">camRLEReallocate</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a> *rle, <span class="keywordtype">int</span> new_max_runs);
761
+ <a name="l01458"></a>01458
762
+ <a name="l01460"></a>01460
763
+ <a name="l01468"></a>01468 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#f6c8ab5acec8857c8299ba9a9e63fffd">camRLEClone</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a> *source, <a class="code" href="structCamRLEImage.html">CamRLEImage</a> *dest);
764
+ <a name="l01469"></a>01469
765
+ <a name="l01471"></a>01471
766
+ <a name="l01481"></a>01481 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#a699c24c3840fca04e838d731aea1b7a">camRLEEncode</a>(<a class="code" href="structCamImage.html">CamImage</a> *src, <a class="code" href="structCamRLEImage.html">CamRLEImage</a> *dest);
767
+ <a name="l01482"></a>01482
768
+ <a name="l01484"></a>01484
769
+ <a name="l01494"></a>01494 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#36b4ca7ddca5c72859d5cb88a3875887">camRLEEncodeLUT</a>(<a class="code" href="structCamImage.html">CamImage</a> *src, <a class="code" href="structCamRLEImage.html">CamRLEImage</a> *dest, <a class="code" href="structCamTable.html">CamTable</a> *LUT);
770
+ <a name="l01495"></a>01495
771
+ <a name="l01497"></a>01497
772
+ <a name="l01505"></a>01505 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#df671bd0479a0f1d78884878a7bdf3c3">camRLEEncodeThreshold</a>(<a class="code" href="structCamImage.html">CamImage</a> *src, <a class="code" href="structCamRLEImage.html">CamRLEImage</a> *dest, <span class="keywordtype">int</span> threshold);
773
+ <a name="l01506"></a>01506
774
+ <a name="l01508"></a>01508
775
+ <a name="l01516"></a>01516 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#2fab509f921ec4f4a8aef3ef93344347">camRLEEncodeThresholdInv</a>(<a class="code" href="structCamImage.html">CamImage</a> *src, <a class="code" href="structCamRLEImage.html">CamRLEImage</a> *dest, <span class="keywordtype">int</span> threshold);
776
+ <a name="l01517"></a>01517
777
+ <a name="l01518"></a>01518 <span class="keywordtype">int</span> camRLEEncodeColor(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamRLEImage.html">CamRLEImage</a> *dest, <a class="code" href="structCamTable.html">CamTable</a> *clusters);
778
+ <a name="l01519"></a>01519
779
+ <a name="l01521"></a>01521
780
+ <a name="l01545"></a>01545 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#348632f8fe184c8a0340d1adaf316e0d">camRLELabeling</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a> *src, <a class="code" href="structCamBlobs.html">CamBlobs</a> *results);
781
+ <a name="l01546"></a>01546
782
+ <a name="l01548"></a>01548
783
+ <a name="l01555"></a>01555 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#7bdba2a8e16e2f3bd55dc8250bbafd39">camRLEBlobAnalysis</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a> *src, <a class="code" href="structCamBlobs.html">CamBlobs</a> *results);
784
+ <a name="l01556"></a>01556
785
+ <a name="l01558"></a>01558
786
+ <a name="l01568"></a>01568 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#117c49e467f08ecec1f4f48b8059d37a">camRLEApplyLUT</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a> *src, <a class="code" href="structCamRLEImage.html">CamRLEImage</a> *dest, <a class="code" href="structCamTable.html">CamTable</a> *LUT);
787
+ <a name="l01569"></a>01569
788
+ <a name="l01571"></a>01571
789
+ <a name="l01582"></a>01582 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#ebccaa8cc9e341ef28bc1184db25ac58">camRLEDecode</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a> *src, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamTable.html">CamTable</a> *LUT);
790
+ <a name="l01583"></a>01583
791
+ <a name="l01585"></a>01585
792
+ <a name="l01596"></a>01596 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#7b4e74dc430b35b0e7faf5243f705ffd">camRLEDecodeBlobs</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a> *src, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamTable.html">CamTable</a> *LUT);
793
+ <a name="l01597"></a>01597
794
+ <a name="l01599"></a>01599
795
+ <a name="l01603"></a>01603 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#3916b4991abbef547603dc205381a251">camRLEInverse</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a> *image);
796
+ <a name="l01604"></a>01604
797
+ <a name="l01606"></a>01606 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#b18d8a0893fc962226c70f0fbe7d5276">camRLEBlobSides</a>(<a class="code" href="structCamBlobInfo.html">CamBlobInfo</a> *blob, <span class="keywordtype">int</span> *left, <span class="keywordtype">int</span> *top, <span class="keywordtype">int</span> *right, <span class="keywordtype">int</span> *bottom);
798
+ <a name="l01607"></a>01607
799
+ <a name="l01609"></a>01609 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#9b2aa4574f7ea43c845032725fa088d2">camRLEBlobROIIntersect</a>(<a class="code" href="structCamBlobInfo.html">CamBlobInfo</a> *blob, <a class="code" href="structCamROI.html">CamROI</a> *roi);
800
+ <a name="l01610"></a>01610
801
+ <a name="l01612"></a>01612 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#a4f8b9e5f17dfbbde1aa4718aa1d166d">camRLEBlobMeasures</a>(<a class="code" href="structCamBlobInfo.html">CamBlobInfo</a> *blob, <a class="code" href="structCamImage.html">CamImage</a> *original);
802
+ <a name="l01613"></a>01613
803
+ <a name="l01615"></a>01615
804
+ <a name="l01620"></a>01620 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#e68c93597753418b22d257ede896e4b9">camRLEErodeCross</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a> *image, <a class="code" href="structCamRLEImage.html">CamRLEImage</a> *result);
805
+ <a name="l01621"></a>01621
806
+ <a name="l01623"></a>01623
807
+ <a name="l01628"></a>01628 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#b8204547f72749bab5e21100d07c5d8a">camRLEErode3x3</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a> *image, <a class="code" href="structCamRLEImage.html">CamRLEImage</a> *result);
808
+ <a name="l01629"></a>01629
809
+ <a name="l01631"></a>01631
810
+ <a name="l01636"></a>01636 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#741866f17383569eb9ef8549848d36bd">camRLEErode3x2</a>(<a class="code" href="structCamRLEImage.html">CamRLEImage</a> *image, <a class="code" href="structCamRLEImage.html">CamRLEImage</a> *result);
811
+ <a name="l01637"></a>01637
812
+ <a name="l01639"></a>01639
813
+ <a name="l01643"></a>01643
814
+ <a name="l01645"></a>01645
815
+ <a name="l01655"></a>01655 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#2c8d0d19b76ab2b70bdb0863d265bc26">camHistogram</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <a class="code" href="structCamTable.html">CamTable</a> *histo);
816
+ <a name="l01656"></a>01656
817
+ <a name="l01658"></a>01658
818
+ <a name="l01667"></a>01667 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#de060106e377a48e599e782eb0331e81">camHistogram2Channels</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">int</span> ch1, <span class="keywordtype">int</span> ch2, <a class="code" href="structCamImage.html">CamImage</a> *result, <span class="keywordtype">int</span> size);
819
+ <a name="l01668"></a>01668
820
+ <a name="l01670"></a>01670 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#ce8f5c621078474e934a52b895ce9f1d">camFindThreshold</a>(<a class="code" href="structCamTable.html">CamTable</a> *histo, <span class="keywordtype">int</span> percent);
821
+ <a name="l01672"></a>01672
822
+ <a name="l01673"></a>01673 <span class="comment">/* Horizontal and vertical summing</span>
823
+ <a name="l01674"></a>01674 <span class="comment"> */</span>
824
+ <a name="l01675"></a>01675
825
+ <a name="l01677"></a>01677
826
+ <a name="l01685"></a>01685 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#4ba2c4e9781a3673450d209cc0b67aad">camSumHV</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <a class="code" href="structCamTable.html">CamTable</a> *hsum, <a class="code" href="structCamTable.html">CamTable</a> *vsum);
827
+ <a name="l01686"></a>01686
828
+ <a name="l01688"></a>01688
829
+ <a name="l01695"></a>01695 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#b3bf851a2a4e3239812265c3500a3465">camSumV</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <a class="code" href="structCamTable.html">CamTable</a> *results);
830
+ <a name="l01696"></a>01696
831
+ <a name="l01698"></a>01698
832
+ <a name="l01705"></a>01705 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#e7d48717a112c84b2b75e67e012b9cfa">camSumH</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <a class="code" href="structCamTable.html">CamTable</a> *results);
833
+ <a name="l01706"></a>01706
834
+ <a name="l01707"></a>01707 <span class="preprocessor">#endif // SWIG</span>
835
+ <a name="l01708"></a>01708 <span class="preprocessor"></span>
836
+ <a name="l01709"></a>01709 <span class="comment">/* Measures in an image : min, max, average computation</span>
837
+ <a name="l01710"></a>01710 <span class="comment"> */</span>
838
+ <a name="l01711"></a>01711 <span class="preprocessor">#ifdef __cplusplus</span>
839
+ <a name="l01712"></a>01712 <span class="preprocessor"></span>
840
+ <a name="l01713"></a><a class="code" href="structCamMeasuresResults.html">01713</a> <span class="keyword">struct </span><a class="code" href="structCamMeasuresResults.html">CamMeasuresResults</a> {
841
+ <a name="l01714"></a>01714 <span class="preprocessor">#else</span>
842
+ <a name="l01715"></a>01715 <span class="preprocessor"></span>
843
+ <a name="l01716"></a>01716 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
844
+ <a name="l01717"></a>01717 <span class="preprocessor">#endif</span>
845
+ <a name="l01718"></a><a class="code" href="structCamMeasuresResults.html#d66c40567e32fa482146ff1932aad7cb">01718</a> <span class="preprocessor"></span> <span class="keywordtype">int</span> min, xmin, <a class="code" href="structCamMeasuresResults.html#d66c40567e32fa482146ff1932aad7cb">ymin</a>;
846
+ <a name="l01719"></a><a class="code" href="structCamMeasuresResults.html#955d294fae684bafdb6ac0859749d881">01719</a> <span class="keywordtype">int</span> max, xmax, <a class="code" href="structCamMeasuresResults.html#955d294fae684bafdb6ac0859749d881">ymax</a>;
847
+ <a name="l01720"></a><a class="code" href="structCamMeasuresResults.html#38e831868ffabe670e7e8a77e3635deb">01720</a> <span class="keywordtype">int</span> <a class="code" href="structCamMeasuresResults.html#38e831868ffabe670e7e8a77e3635deb">average</a>;
848
+ <a name="l01721"></a><a class="code" href="structCamMeasuresResults.html#a2d4eb9d23e28758bc67dd8b12902d4d">01721</a> <span class="keywordtype">int</span> <a class="code" href="structCamMeasuresResults.html#a2d4eb9d23e28758bc67dd8b12902d4d">sum</a>;
849
+ <a name="l01722"></a>01722 <span class="preprocessor">#ifdef __cplusplus</span>
850
+ <a name="l01723"></a>01723 <span class="preprocessor"></span> <a class="code" href="structCamMeasuresResults.html">CamMeasuresResults</a>() {min=0;xmin=0;ymin=0;max=0;xmax=0;ymax=0;average=0;sum=0;}
851
+ <a name="l01724"></a>01724 };
852
+ <a name="l01725"></a>01725 <span class="preprocessor">#else</span>
853
+ <a name="l01726"></a>01726 <span class="preprocessor"></span>} <a class="code" href="structCamMeasuresResults.html">CamMeasuresResults</a>;
854
+ <a name="l01727"></a>01727 <span class="preprocessor">#endif</span>
855
+ <a name="l01728"></a>01728 <span class="preprocessor"></span>
856
+ <a name="l01729"></a>01729 <span class="preprocessor">#ifndef SWIG</span>
857
+ <a name="l01730"></a>01730 <span class="preprocessor"></span>
858
+ <a name="l01732"></a>01732
859
+ <a name="l01738"></a>01738 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#0d49d0d48bae1e33557913d5b46c2c56">camMeasures</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <a class="code" href="structCamMeasuresResults.html">CamMeasuresResults</a> *results);
860
+ <a name="l01739"></a>01739
861
+ <a name="l01741"></a>01741
862
+ <a name="l01749"></a>01749 <span class="keywordtype">float</span> <a class="code" href="camellia_8h.html#55f4073da0fd5b396807694f34351edd">camMeasureAverageDeviation</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">int</span> average);
863
+ <a name="l01750"></a>01750
864
+ <a name="l01754"></a>01754
865
+ <a name="l01756"></a>01756
866
+ <a name="l01764"></a>01764 <span class="preprocessor">#ifdef CAM_VOLBERG_ORIGINAL</span>
867
+ <a name="l01765"></a>01765 <span class="preprocessor"></span><span class="keywordtype">void</span> volbergfvd(<span class="keywordtype">double</span> f[], <span class="keywordtype">int</span> in[] , <span class="keywordtype">int</span> out[] , <span class="keywordtype">int</span> inlen, <span class="keywordtype">int</span> outlen);
868
+ <a name="l01766"></a>01766 <span class="preprocessor">#else</span>
869
+ <a name="l01767"></a>01767 <span class="preprocessor"></span><span class="keywordtype">void</span> <a class="code" href="camellia_8h.html#78547e1ee667ba06ec613ea7e1a9a132">camVolbergFwdScanline</a>(CAM_PIXEL *in, <span class="keywordtype">int</span> inlen, CAM_PIXEL *out, <span class="keywordtype">int</span> outlen, <span class="keywordtype">double</span> f[]);
870
+ <a name="l01768"></a>01768 <span class="preprocessor">#endif</span>
871
+ <a name="l01769"></a>01769 <span class="preprocessor"></span>
872
+ <a name="l01771"></a><a class="code" href="structCamVolbergFwdParams.html">01771</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
873
+ <a name="l01772"></a>01772 void (*hfwd)(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">double</span> *xp);
874
+ <a name="l01773"></a>01773 void (*vfwd)(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">double</span> *yp);
875
+ <a name="l01774"></a>01774 } <a class="code" href="structCamVolbergFwdParams.html">CamVolbergFwdParams</a>;
876
+ <a name="l01775"></a>01775
877
+ <a name="l01777"></a>01777
878
+ <a name="l01782"></a>01782 <span class="keywordtype">void</span> <a class="code" href="camellia_8h.html#748bad57cb453f2394a2f2a287993553">camVolbergFwd</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, CamVolbergFwdParams *params);
879
+ <a name="l01783"></a>01783
880
+ <a name="l01784"></a>01784 <span class="comment">/* Backward warping</span>
881
+ <a name="l01785"></a>01785 <span class="comment"> */</span>
882
+ <a name="l01786"></a>01786
883
+ <a name="l01787"></a>01787 <span class="preprocessor">#define CAM_NN_INTERPOLATION 0</span>
884
+ <a name="l01788"></a>01788 <span class="preprocessor"></span><span class="preprocessor">#define CAM_BILINEAR_INTERPOLATION 1</span>
885
+ <a name="l01789"></a>01789 <span class="preprocessor"></span>
886
+ <a name="l01791"></a><a class="code" href="structCamWarpingParams.html">01791</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>{
887
+ <a name="l01792"></a><a class="code" href="structCamWarpingParams.html#292143342daa8bec2bc94774d6350eac">01792</a> <span class="keywordtype">int</span> interpolation;
888
+ <a name="l01793"></a><a class="code" href="structCamWarpingParams.html#5cd36e460566878fa3cf8a3517a9d415">01793</a> <span class="keywordtype">int</span> perspective;
889
+ <a name="l01794"></a>01794
890
+ <a name="l01796"></a>01796
891
+ <a name="l01804"></a><a class="code" href="structCamWarpingParams.html#5e43b43a527f2863194bc8f21bc96259">01804</a> <a class="code" href="structCamPoint.html">CamPoint</a> p[4];
892
+ <a name="l01805"></a>01805 } <a class="code" href="structCamWarpingParams.html">CamWarpingParams</a>;
893
+ <a name="l01806"></a>01806
894
+ <a name="l01808"></a>01808
895
+ <a name="l01817"></a>01817 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#ad957d473fde58077a501728e5aa8f13">camWarping</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamWarpingParams.html">CamWarpingParams</a> *params);
896
+ <a name="l01818"></a>01818
897
+ <a name="l01820"></a>01820
898
+ <a name="l01826"></a>01826 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#d35645928b902a2716cd4d3d79799970">camScale</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
899
+ <a name="l01827"></a>01827
900
+ <a name="l01828"></a>01828 <span class="keywordtype">int</span> camWarpingSuperSampling(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamWarpingParams.html">CamWarpingParams</a> *params);
901
+ <a name="l01829"></a>01829
902
+ <a name="l01831"></a>01831
903
+ <a name="l01837"></a>01837 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#1dddcefcb50d0e498810bfc075cd6533">camIntersectionSegments</a>(<a class="code" href="structCamPoint.html">CamPoint</a> p[4], <a class="code" href="structCamPoint.html">CamPoint</a> *res);
904
+ <a name="l01839"></a>01839
905
+ <a name="l01843"></a>01843
906
+ <a name="l01844"></a>01844 <span class="comment">// For compatibility with older versions</span>
907
+ <a name="l01845"></a>01845 <span class="preprocessor">#define CamSobel3x3 camSobel</span>
908
+ <a name="l01846"></a>01846 <span class="preprocessor"></span><span class="preprocessor">#define CamSobelAbs3x3 camSobelAbs</span>
909
+ <a name="l01847"></a>01847 <span class="preprocessor"></span>
910
+ <a name="l01848"></a>01848 <span class="preprocessor">#define CAM_LINEAR_FILTER_KERNEL_MAX_SIZE 7</span>
911
+ <a name="l01849"></a>01849 <span class="preprocessor"></span>
912
+ <a name="l01850"></a>01850 <span class="preprocessor">#endif //SWIG</span>
913
+ <a name="l01851"></a>01851 <span class="preprocessor"></span>
914
+ <a name="l01852"></a>01852 <span class="preprocessor">#ifdef __cplusplus</span>
915
+ <a name="l01853"></a>01853 <span class="preprocessor"></span>
916
+ <a name="l01854"></a><a class="code" href="structCamLinearFilterKernel.html">01854</a> <span class="keyword">struct </span><a class="code" href="structCamLinearFilterKernel.html">CamLinearFilterKernel</a> {
917
+ <a name="l01855"></a>01855 <span class="preprocessor">#else</span>
918
+ <a name="l01856"></a>01856 <span class="preprocessor"></span>
919
+ <a name="l01857"></a>01857 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
920
+ <a name="l01858"></a>01858 <span class="preprocessor">#endif</span>
921
+ <a name="l01859"></a>01859 <span class="preprocessor"></span><span class="preprocessor">#ifndef SWIG</span>
922
+ <a name="l01860"></a><a class="code" href="structCamLinearFilterKernel.html#3f0ab4a558d738670905c540ba83ab62">01860</a> <span class="preprocessor"></span> <span class="keywordtype">int</span> <a class="code" href="structCamLinearFilterKernel.html#3f0ab4a558d738670905c540ba83ab62">kernel</a>[CAM_LINEAR_FILTER_KERNEL_MAX_SIZE][CAM_LINEAR_FILTER_KERNEL_MAX_SIZE];
923
+ <a name="l01861"></a>01861 <span class="preprocessor">#endif</span>
924
+ <a name="l01862"></a><a class="code" href="structCamLinearFilterKernel.html#99fb7d2bb8325fa30631f929bffb6da0">01862</a> <span class="preprocessor"></span> <span class="keywordtype">int</span> <a class="code" href="structCamLinearFilterKernel.html#99fb7d2bb8325fa30631f929bffb6da0">coeff1</a>;
925
+ <a name="l01863"></a><a class="code" href="structCamLinearFilterKernel.html#8764d71f840637149ee781c2d2752fd5">01863</a> <span class="keywordtype">int</span> <a class="code" href="structCamLinearFilterKernel.html#8764d71f840637149ee781c2d2752fd5">coeff2</a>;
926
+ <a name="l01864"></a>01864 <span class="preprocessor">#ifdef __cplusplus</span>
927
+ <a name="l01865"></a>01865 <span class="preprocessor"></span>
928
+ <a name="l01866"></a><a class="code" href="structCamLinearFilterKernel.html#695f3f4a991616d82b5a53414c049dd9">01866</a> <a class="code" href="structCamLinearFilterKernel.html#695f3f4a991616d82b5a53414c049dd9">CamLinearFilterKernel</a>() {
929
+ <a name="l01867"></a>01867 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0;i&lt;CAM_LINEAR_FILTER_KERNEL_MAX_SIZE;i++) {
930
+ <a name="l01868"></a>01868 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> j=0;j&lt;CAM_LINEAR_FILTER_KERNEL_MAX_SIZE;j++) {
931
+ <a name="l01869"></a>01869 kernel[i][j]=0;
932
+ <a name="l01870"></a>01870 }
933
+ <a name="l01871"></a>01871 }
934
+ <a name="l01872"></a>01872 <a class="code" href="structCamLinearFilterKernel.html#99fb7d2bb8325fa30631f929bffb6da0">coeff1</a>=1;
935
+ <a name="l01873"></a>01873 <a class="code" href="structCamLinearFilterKernel.html#8764d71f840637149ee781c2d2752fd5">coeff2</a>=0;
936
+ <a name="l01874"></a>01874 }
937
+ <a name="l01876"></a><a class="code" href="structCamLinearFilterKernel.html#5632f2671fffc024d3f5c3920a240450">01876</a> <span class="keywordtype">bool</span> set(<span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> val) {
938
+ <a name="l01877"></a>01877 <span class="keywordflow">if</span> ((x&gt;=0)&amp;&amp;(x&lt;CAM_LINEAR_FILTER_KERNEL_MAX_SIZE)&amp;&amp;(y&gt;=0)&amp;&amp;(y&lt;CAM_LINEAR_FILTER_KERNEL_MAX_SIZE)) {
939
+ <a name="l01878"></a>01878 kernel[x][y]=val; <span class="keywordflow">return</span> <span class="keyword">true</span>;
940
+ <a name="l01879"></a>01879 } <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
941
+ <a name="l01880"></a>01880 }
942
+ <a name="l01882"></a><a class="code" href="structCamLinearFilterKernel.html#4413bb444ea155508bb65c8ddcec4db2">01882</a> <span class="keywordtype">int</span> get(<span class="keywordtype">int</span> x,<span class="keywordtype">int</span> y) {
943
+ <a name="l01883"></a>01883 <span class="keywordflow">if</span> ((x&gt;=0)&amp;&amp;(x&lt;CAM_LINEAR_FILTER_KERNEL_MAX_SIZE)&amp;&amp;(y&gt;=0)&amp;&amp;(y&lt;CAM_LINEAR_FILTER_KERNEL_MAX_SIZE)) {
944
+ <a name="l01884"></a>01884 <span class="keywordflow">return</span> kernel[x][y];
945
+ <a name="l01885"></a>01885 } <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
946
+ <a name="l01886"></a>01886 }
947
+ <a name="l01887"></a>01887 };
948
+ <a name="l01888"></a>01888 <span class="preprocessor">#else</span>
949
+ <a name="l01889"></a>01889 <span class="preprocessor"></span>} <a class="code" href="structCamLinearFilterKernel.html">CamLinearFilterKernel</a>;
950
+ <a name="l01890"></a>01890 <span class="preprocessor">#endif</span>
951
+ <a name="l01891"></a>01891 <span class="preprocessor"></span>
952
+ <a name="l01892"></a>01892 <span class="preprocessor">#ifndef SWIG</span>
953
+ <a name="l01893"></a>01893 <span class="preprocessor"></span>
954
+ <a name="l01895"></a>01895
955
+ <a name="l01906"></a>01906 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#de3c164ac56119fc763e7b3060cba706">camLinearFilter3x3</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamLinearFilterKernel.html">CamLinearFilterKernel</a> *params);
956
+ <a name="l01907"></a>01907
957
+ <a name="l01909"></a>01909
958
+ <a name="l01920"></a>01920 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#5dca8ce13c5257c51f680383ede892bd">camLinearFilter5x5</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamLinearFilterKernel.html">CamLinearFilterKernel</a> *params);
959
+ <a name="l01921"></a>01921
960
+ <a name="l01923"></a>01923
961
+ <a name="l01934"></a>01934 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#2dd8fc9c63273b19eafe861814e207a3">camLinearFilterAbs3x3</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamLinearFilterKernel.html">CamLinearFilterKernel</a> *params);
962
+ <a name="l01935"></a>01935
963
+ <a name="l01937"></a>01937
964
+ <a name="l01948"></a>01948 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#786ba4a350d731400324e2d98a1194ff">camLinearFilterAbs5x5</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamLinearFilterKernel.html">CamLinearFilterKernel</a> *params);
965
+ <a name="l01949"></a>01949
966
+ <a name="l01950"></a>01950 <span class="comment">/* Obsolete</span>
967
+ <a name="l01951"></a>01951 <span class="comment"> * int camSobel(CamImage *source, CamImage *dest, int vert_edges);</span>
968
+ <a name="l01952"></a>01952 <span class="comment"> * int camSobelAbs(CamImage *source, CamImage *dest, int vert_edges);</span>
969
+ <a name="l01953"></a>01953 <span class="comment"> */</span>
970
+ <a name="l01954"></a>01954
971
+ <a name="l01955"></a>01955 <span class="preprocessor">#endif //SWIG</span>
972
+ <a name="l01956"></a>01956 <span class="preprocessor"></span>
973
+ <a name="l01957"></a>01957 <span class="preprocessor">#ifdef __cplusplus</span>
974
+ <a name="l01958"></a>01958 <span class="preprocessor"></span>
975
+ <a name="l01959"></a><a class="code" href="structCamSepFilterKernel.html">01959</a> <span class="keyword">struct </span><a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> {
976
+ <a name="l01960"></a>01960 <span class="preprocessor">#else</span>
977
+ <a name="l01961"></a>01961 <span class="preprocessor"></span>
978
+ <a name="l01962"></a>01962 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
979
+ <a name="l01963"></a>01963 <span class="preprocessor">#endif</span>
980
+ <a name="l01964"></a>01964 <span class="preprocessor"></span><span class="preprocessor">#ifndef SWIG</span>
981
+ <a name="l01965"></a><a class="code" href="structCamSepFilterKernel.html#445cbfd248f29d5ffc6d1ff5546c3f3b">01965</a> <span class="preprocessor"></span> <span class="keywordtype">int</span> <a class="code" href="structCamSepFilterKernel.html#445cbfd248f29d5ffc6d1ff5546c3f3b">x</a>[CAM_LINEAR_FILTER_KERNEL_MAX_SIZE];
982
+ <a name="l01966"></a><a class="code" href="structCamSepFilterKernel.html#5c1dfef9c667a51d95a5af07766fd896">01966</a> <span class="keywordtype">int</span> <a class="code" href="structCamSepFilterKernel.html#5c1dfef9c667a51d95a5af07766fd896">y</a>[CAM_LINEAR_FILTER_KERNEL_MAX_SIZE];
983
+ <a name="l01967"></a>01967 <span class="preprocessor">#endif</span>
984
+ <a name="l01968"></a><a class="code" href="structCamSepFilterKernel.html#3c5afce80c70533cff39af1d4cbbb1a1">01968</a> <span class="preprocessor"></span> <span class="keywordtype">int</span> <a class="code" href="structCamSepFilterKernel.html#3c5afce80c70533cff39af1d4cbbb1a1">coeff1</a>;
985
+ <a name="l01969"></a><a class="code" href="structCamSepFilterKernel.html#ae4e4c844d92bfa57001efab5838a058">01969</a> <span class="keywordtype">int</span> <a class="code" href="structCamSepFilterKernel.html#ae4e4c844d92bfa57001efab5838a058">coeff2</a>;
986
+ <a name="l01970"></a>01970 <span class="preprocessor">#ifdef __cplusplus</span>
987
+ <a name="l01971"></a>01971 <span class="preprocessor"></span>
988
+ <a name="l01972"></a><a class="code" href="structCamSepFilterKernel.html#d1721315dca1d1346c576683634310a0">01972</a> <a class="code" href="structCamSepFilterKernel.html#d1721315dca1d1346c576683634310a0">CamSepFilterKernel</a>() {
989
+ <a name="l01973"></a>01973 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0;i&lt;CAM_LINEAR_FILTER_KERNEL_MAX_SIZE;i++) {
990
+ <a name="l01974"></a>01974 x[i]=0; y[i]=0;
991
+ <a name="l01975"></a>01975 }
992
+ <a name="l01976"></a>01976 coeff1=1;
993
+ <a name="l01977"></a>01977 coeff2=0;
994
+ <a name="l01978"></a>01978 }
995
+ <a name="l01980"></a><a class="code" href="structCamSepFilterKernel.html#009596ee576180b56f67c41afc9d735d">01980</a> <span class="keywordtype">bool</span> <a class="code" href="structCamSepFilterKernel.html#009596ee576180b56f67c41afc9d735d">set_x</a>(<span class="keywordtype">int</span> <a class="code" href="structCamSepFilterKernel.html#5c1dfef9c667a51d95a5af07766fd896">y</a>, <span class="keywordtype">int</span> val) {
996
+ <a name="l01981"></a>01981 <span class="keywordflow">if</span> ((y&gt;=0)&amp;&amp;(y&lt;CAM_LINEAR_FILTER_KERNEL_MAX_SIZE)) {
997
+ <a name="l01982"></a>01982 <a class="code" href="structCamSepFilterKernel.html#445cbfd248f29d5ffc6d1ff5546c3f3b">x</a>[y]=val; <span class="keywordflow">return</span> <span class="keyword">true</span>;
998
+ <a name="l01983"></a>01983 } <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
999
+ <a name="l01984"></a>01984 }
1000
+ <a name="l01985"></a>01985 <span class="keywordtype">bool</span> set_y(<span class="keywordtype">int</span> <a class="code" href="structCamSepFilterKernel.html#445cbfd248f29d5ffc6d1ff5546c3f3b">x</a>, <span class="keywordtype">int</span> val) {
1001
+ <a name="l01986"></a>01986 <span class="keywordflow">if</span> ((x&gt;=0)&amp;&amp;(x&lt;CAM_LINEAR_FILTER_KERNEL_MAX_SIZE)) {
1002
+ <a name="l01987"></a>01987 <a class="code" href="structCamSepFilterKernel.html#5c1dfef9c667a51d95a5af07766fd896">y</a>[x]=val; <span class="keywordflow">return</span> <span class="keyword">true</span>;
1003
+ <a name="l01988"></a>01988 } <span class="keywordflow">else</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;
1004
+ <a name="l01989"></a>01989 }
1005
+ <a name="l01991"></a><a class="code" href="structCamSepFilterKernel.html#e98aa1bf87621f42bd120b3e7cb8dbd0">01991</a> <span class="keywordtype">int</span> <a class="code" href="structCamSepFilterKernel.html#e98aa1bf87621f42bd120b3e7cb8dbd0">get_x</a>(<span class="keywordtype">int</span> <a class="code" href="structCamSepFilterKernel.html#5c1dfef9c667a51d95a5af07766fd896">y</a>) {
1006
+ <a name="l01992"></a>01992 <span class="keywordflow">if</span> ((y&gt;=0)&amp;&amp;(y&lt;CAM_LINEAR_FILTER_KERNEL_MAX_SIZE)) {
1007
+ <a name="l01993"></a>01993 <span class="keywordflow">return</span> x[y];
1008
+ <a name="l01994"></a>01994 } <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
1009
+ <a name="l01995"></a>01995 }
1010
+ <a name="l01996"></a>01996 <span class="keywordtype">int</span> get_y(<span class="keywordtype">int</span> x) {
1011
+ <a name="l01997"></a>01997 <span class="keywordflow">if</span> ((x&gt;=0)&amp;&amp;(x&lt;CAM_LINEAR_FILTER_KERNEL_MAX_SIZE)) {
1012
+ <a name="l01998"></a>01998 <span class="keywordflow">return</span> <a class="code" href="structCamSepFilterKernel.html#5c1dfef9c667a51d95a5af07766fd896">y</a>[x];
1013
+ <a name="l01999"></a>01999 } <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0;
1014
+ <a name="l02000"></a>02000 }
1015
+ <a name="l02001"></a>02001 };
1016
+ <a name="l02002"></a>02002 <span class="preprocessor">#else</span>
1017
+ <a name="l02003"></a>02003 <span class="preprocessor"></span>} <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a>;
1018
+ <a name="l02004"></a>02004 <span class="preprocessor">#endif</span>
1019
+ <a name="l02005"></a>02005 <span class="preprocessor"></span>
1020
+ <a name="l02006"></a>02006 <span class="preprocessor">#define CAM_SOBEL_H 1</span>
1021
+ <a name="l02007"></a>02007 <span class="preprocessor"></span><span class="preprocessor">#define CAM_SOBEL_V 2</span>
1022
+ <a name="l02008"></a>02008 <span class="preprocessor"></span><span class="preprocessor">#define CAM_GAUSSIAN_3x3 3</span>
1023
+ <a name="l02009"></a>02009 <span class="preprocessor"></span><span class="preprocessor">#define CAM_GAUSSIAN_5x5 4</span>
1024
+ <a name="l02010"></a>02010 <span class="preprocessor"></span><span class="preprocessor">#define CAM_GAUSSIAN_7x7 5</span>
1025
+ <a name="l02011"></a>02011 <span class="preprocessor"></span><span class="preprocessor">#define CAM_SCHARR_H 6</span>
1026
+ <a name="l02012"></a>02012 <span class="preprocessor"></span><span class="preprocessor">#define CAM_SCHARR_V 7</span>
1027
+ <a name="l02013"></a>02013 <span class="preprocessor"></span>
1028
+ <a name="l02014"></a>02014 <span class="preprocessor">#ifndef SWIG</span>
1029
+ <a name="l02015"></a>02015 <span class="preprocessor"></span>
1030
+ <a name="l02017"></a>02017
1031
+ <a name="l02027"></a>02027 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#c4ff2c7004422882592e56e30245ae80">camSepFilter3x3</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> *kernel);
1032
+ <a name="l02028"></a>02028
1033
+ <a name="l02030"></a>02030
1034
+ <a name="l02040"></a>02040 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#d3f008ee8a5885f955273fdcde72a105">camSepFilterAbs3x3</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> *kernel);
1035
+ <a name="l02041"></a>02041
1036
+ <a name="l02043"></a>02043
1037
+ <a name="l02053"></a>02053 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#85fc004b87bd87bdba6bb8a1f597aeb7">camSepFilter5x5</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> *kernel);
1038
+ <a name="l02054"></a>02054
1039
+ <a name="l02056"></a>02056
1040
+ <a name="l02066"></a>02066 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#33145b07e332bafe9dad7cee22ead5df">camSepFilterAbs5x5</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> *kernel);
1041
+ <a name="l02067"></a>02067
1042
+ <a name="l02069"></a>02069
1043
+ <a name="l02079"></a>02079 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#bcd6d660fc22ead9c89038345e378b83">camSepFilter7x7</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> *kernel);
1044
+ <a name="l02080"></a>02080
1045
+ <a name="l02082"></a>02082
1046
+ <a name="l02092"></a>02092 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#9d331944cb5958c8da918d9f8fa17f87">camSepFilterAbs7x7</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamSepFilterKernel.html">CamSepFilterKernel</a> *kernel);
1047
+ <a name="l02093"></a>02093
1048
+ <a name="l02095"></a>02095
1049
+ <a name="l02104"></a>02104 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#4bd1a772ca2635653c867ed63abf80d4">camSobelH</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1050
+ <a name="l02105"></a>02105
1051
+ <a name="l02107"></a>02107
1052
+ <a name="l02116"></a>02116 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#42707f0ff29d6e629c46fe1b96b78d20">camSobelHAbs</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1053
+ <a name="l02117"></a>02117
1054
+ <a name="l02119"></a>02119
1055
+ <a name="l02128"></a>02128 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#925277229ae31d55a76bc54ad8d3f4bd">camSobelV</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1056
+ <a name="l02129"></a>02129
1057
+ <a name="l02131"></a>02131
1058
+ <a name="l02140"></a>02140 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#345e98b33f2ad94c87129acdfc539bfe">camSobelVAbs</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1059
+ <a name="l02141"></a>02141
1060
+ <a name="l02143"></a>02143
1061
+ <a name="l02162"></a>02162 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#099ac7ec4a0693a86314fb3eaabaf017">camFixedFilter</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <span class="keywordtype">int</span> filter);
1062
+ <a name="l02163"></a>02163
1063
+ <a name="l02164"></a>02164 <span class="keywordtype">int</span> camScharrH(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1064
+ <a name="l02165"></a>02165 <span class="keywordtype">int</span> camScharrV(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1065
+ <a name="l02166"></a>02166 <span class="keywordtype">int</span> camScharrHAbs(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1066
+ <a name="l02167"></a>02167 <span class="keywordtype">int</span> camScharrVAbs(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1067
+ <a name="l02168"></a>02168
1068
+ <a name="l02170"></a>02170
1069
+ <a name="l02174"></a>02174
1070
+ <a name="l02175"></a>02175 <span class="preprocessor">#define camMedianFiltering3x3 camMedianFilter3x3</span>
1071
+ <a name="l02176"></a>02176 <span class="preprocessor"></span><span class="preprocessor">#define camMedianFiltering5x5 camMedianFilter5x5</span>
1072
+ <a name="l02177"></a>02177 <span class="preprocessor"></span>
1073
+ <a name="l02179"></a>02179
1074
+ <a name="l02188"></a>02188 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#a73779e31db619f5a35c45b707ee2732">camMedianFilter3x3</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1075
+ <a name="l02189"></a>02189
1076
+ <a name="l02191"></a>02191
1077
+ <a name="l02200"></a>02200 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#0d9d8073e45c5f4ddd874acc919e16e7">camMedianFilter5x5</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1078
+ <a name="l02202"></a>02202
1079
+ <a name="l02206"></a>02206
1080
+ <a name="l02208"></a>02208
1081
+ <a name="l02225"></a>02225 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#7d5bb74a1500990197be468f1119f274">camWatershed1D</a>(<span class="keywordtype">int</span> *input, <span class="keywordtype">int</span> size, <span class="keywordtype">int</span> *results);
1082
+ <a name="l02226"></a>02226 <span class="preprocessor">#else</span>
1083
+ <a name="l02227"></a>02227 <span class="preprocessor"></span>%immutable;
1084
+ <a name="l02228"></a>02228 <span class="preprocessor">#endif // SWIG</span>
1085
+ <a name="l02229"></a>02229 <span class="preprocessor"></span>
1086
+ <a name="l02231"></a><a class="code" href="structCamBasin.html">02231</a> <span class="keyword">typedef</span> <span class="keyword">struct </span>
1087
+ <a name="l02232"></a>02232 <span class="keyword"></span>{
1088
+ <a name="l02233"></a><a class="code" href="structCamBasin.html#e0b35629ce1a3f3ec3248e0807864eb7">02233</a> <span class="keywordtype">int</span> dynamics;
1089
+ <a name="l02234"></a><a class="code" href="structCamBasin.html#617795806b6493becebf251b3b643bcd">02234</a> <span class="keywordtype">int</span> minimum;
1090
+ <a name="l02235"></a><a class="code" href="structCamBasin.html#fb971c9bea4476ffcef167b72fde632d">02235</a> <span class="keywordtype">int</span> flooded;
1091
+ <a name="l02236"></a><a class="code" href="structCamBasin.html#81a8ec38adcdfa2dcfc17a233377b911">02236</a> <span class="keywordtype">int</span> surface;
1092
+ <a name="l02237"></a><a class="code" href="structCamBasin.html#b6de516b321813ed790ca992ae8a6170">02237</a> <span class="keywordtype">int</span> accsurface;
1093
+ <a name="l02238"></a><a class="code" href="structCamBasin.html#32333c7aa40c130bbc30bdadceab5cc8">02238</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> x,y;
1094
+ <a name="l02239"></a>02239 } <a class="code" href="structCamBasin.html">CamBasin</a>;
1095
+ <a name="l02240"></a>02240
1096
+ <a name="l02241"></a>02241 <span class="preprocessor">#define CAM_NOT_COMPUTED 65536</span>
1097
+ <a name="l02242"></a>02242 <span class="preprocessor"></span>
1098
+ <a name="l02243"></a>02243 <span class="preprocessor">#ifndef SWIG</span>
1099
+ <a name="l02244"></a>02244 <span class="preprocessor"></span><span class="preprocessor">#ifdef __cplusplus</span>
1100
+ <a name="l02245"></a>02245 <span class="preprocessor"></span>
1101
+ <a name="l02246"></a><a class="code" href="structCamTableOfBasins.html">02246</a> <span class="keyword">struct </span><a class="code" href="structCamTableOfBasins.html">CamTableOfBasins</a> {
1102
+ <a name="l02247"></a>02247 <span class="keywordtype">int</span> sizeMax;
1103
+ <a name="l02248"></a>02248 <span class="keywordtype">int</span> nbBasins;
1104
+ <a name="l02249"></a>02249 <a class="code" href="structCamBasin.html">CamBasin</a> *tab;
1105
+ <a name="l02250"></a>02250 <a class="code" href="structCamBasin.html">CamBasin</a>&amp; operator[](<span class="keywordtype">int</span> index) {<span class="keywordflow">return</span> tab[index];}
1106
+ <a name="l02251"></a>02251 <span class="keywordtype">void</span> get_rid_of(<a class="code" href="structCamBasin.html">CamBasin</a> &amp;basin) {basin.<a class="code" href="structCamBasin.html#81a8ec38adcdfa2dcfc17a233377b911">surface</a>=0;}
1107
+ <a name="l02252"></a>02252 <a class="code" href="structCamTableOfBasins.html">CamTableOfBasins</a>() {tab=NULL;sizeMax=0;nbBasins=0;}
1108
+ <a name="l02253"></a>02253 ~<a class="code" href="structCamTableOfBasins.html">CamTableOfBasins</a>();
1109
+ <a name="l02254"></a>02254 };
1110
+ <a name="l02255"></a>02255 <span class="preprocessor">#else</span>
1111
+ <a name="l02256"></a>02256 <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keyword">struct</span>
1112
+ <a name="l02257"></a>02257 <span class="keyword"></span>{
1113
+ <a name="l02258"></a>02258 <span class="keywordtype">int</span> sizeMax;
1114
+ <a name="l02259"></a>02259 <span class="keywordtype">int</span> nbBasins;
1115
+ <a name="l02260"></a>02260 <a class="code" href="structCamBasin.html">CamBasin</a> *tab;
1116
+ <a name="l02261"></a>02261 } <a class="code" href="structCamTableOfBasins.html">CamTableOfBasins</a>;
1117
+ <a name="l02262"></a>02262 <span class="preprocessor">#endif</span>
1118
+ <a name="l02263"></a>02263 <span class="preprocessor"></span>
1119
+ <a name="l02265"></a>02265 <span class="keywordtype">void</span> <a class="code" href="camellia_8h.html#b0ada0b41b9b3d5e20a8deeeb5285988">camFreeTableOfBasins</a>(<a class="code" href="structCamTableOfBasins.html">CamTableOfBasins</a> *t);
1120
+ <a name="l02266"></a>02266
1121
+ <a name="l02268"></a>02268
1122
+ <a name="l02284"></a>02284 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#24e77c449137eb273e6da49d84ad114a">camHierarchicalWatershed</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamTableOfBasins.html">CamTableOfBasins</a> *tob);
1123
+ <a name="l02285"></a>02285
1124
+ <a name="l02287"></a>02287
1125
+ <a name="l02304"></a>02304 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#d6d60c91f0e41c7f367b97870913c26b">camHierarchicalWatershedContours</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest, <a class="code" href="structCamTableOfBasins.html">CamTableOfBasins</a> *tob);
1126
+ <a name="l02305"></a>02305
1127
+ <a name="l02307"></a>02307
1128
+ <a name="l02313"></a>02313 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#cd8315716d2699af0a2879ceee3f31ad">camHierarchicalWatershedRegions</a>(<a class="code" href="structCamImage.html">CamImage</a> *watershed, <a class="code" href="structCamTableOfBasins.html">CamTableOfBasins</a> *tob);
1129
+ <a name="l02315"></a>02315
1130
+ <a name="l02319"></a>02319
1131
+ <a name="l02321"></a>02321
1132
+ <a name="l02333"></a>02333 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#8d5f43e0d5e8d51ab70573bdc8f986e9">camHoughCircle</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">int</span> percent, <span class="keywordtype">int</span> rmin, <span class="keywordtype">int</span> rmax, <span class="keywordtype">int</span> *xc, <span class="keywordtype">int</span> *yc, <span class="keywordtype">int</span> *rc);
1133
+ <a name="l02334"></a>02334
1134
+ <a name="l02338"></a>02338
1135
+ <a name="l02339"></a>02339 <span class="comment">/* Image allocation utility routines</span>
1136
+ <a name="l02340"></a>02340 <span class="comment"> */</span>
1137
+ <a name="l02341"></a>02341
1138
+ <a name="l02343"></a>02343 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#912e006e9f07a11ec36dbf8c3219d638">camAllocateImage</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">int</span> depth);
1139
+ <a name="l02345"></a>02345 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#c4c5be480b06529eca08f1b0df99c5dc">camAllocateYUVImage</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);
1140
+ <a name="l02347"></a>02347 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#9ab8678168958b15a014b09899575f6b">camAllocateRGBImage</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);
1141
+ <a name="l02349"></a>02349 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#71efb458354b38be740b155c2644463d">camAllocateRGBAImage</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);
1142
+ <a name="l02351"></a>02351 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#f9e0cfd15d26b78ad54684acb9aafb35">camDeallocateImage</a>(<a class="code" href="structCamImage.html">CamImage</a> *image);
1143
+ <a name="l02352"></a>02352
1144
+ <a name="l02353"></a>02353 <span class="comment">/* Other useful functions</span>
1145
+ <a name="l02354"></a>02354 <span class="comment"> */</span>
1146
+ <a name="l02356"></a>02356 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#35499ec3aab3b8bd15565f15bcbc434f">camSetROI</a>(<a class="code" href="structCamROI.html">CamROI</a> *roi, <span class="keywordtype">int</span> coi, <span class="keywordtype">int</span> xOffset, <span class="keywordtype">int</span> yOffset, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);
1147
+ <a name="l02358"></a>02358 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#5b388099a71fda354a7de927203b5056">camSetMaxROI</a>(<a class="code" href="structCamROI.html">CamROI</a> *roi, <a class="code" href="structCamImage.html">CamImage</a> *image);
1148
+ <a name="l02360"></a>02360 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#9126b44faaeaa69e7b04f0738aa7a8b9">camReduceROI</a>(<a class="code" href="structCamROI.html">CamROI</a> *roi, <span class="keywordtype">int</span> pixels);
1149
+ <a name="l02362"></a>02362 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#2dfe31c691e6b5c8686815c1e74aba66">camEnlargeROI</a>(<a class="code" href="structCamROI.html">CamROI</a> *roi, <span class="keywordtype">int</span> pixels);
1150
+ <a name="l02364"></a>02364 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#9a4a1542a049e0a321db75c5db12c681">camZoom2x</a>(<a class="code" href="structCamImage.html">CamImage</a> *src, <a class="code" href="structCamImage.html">CamImage</a> *dst);
1151
+ <a name="l02366"></a>02366 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#8924fb25405730e75099c28b6415693f">camDecimateNN</a>(<a class="code" href="structCamImage.html">CamImage</a> *src, <a class="code" href="structCamImage.html">CamImage</a> *dest, <span class="keywordtype">int</span> factor);
1152
+ <a name="l02368"></a>02368 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#0fc42c0fed9f1c909a7e3b4a97330aad">camSetRLEMask</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <a class="code" href="structCamRLEImage.html">CamRLEImage</a> *mask);
1153
+ <a name="l02370"></a>02370 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#73dd3205a41d8a460f1d5057124475ed">camSetMask</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <a class="code" href="structCamImage.html">CamImage</a> *mask);
1154
+ <a name="l02371"></a>02371
1155
+ <a name="l02372"></a>02372 <span class="preprocessor">#define camDownScaling2x2 camDownscaling2x2</span>
1156
+ <a name="l02373"></a>02373 <span class="preprocessor"></span>
1157
+ <a name="l02374"></a>02374 <span class="keywordtype">int</span> camDownScaling2x2(<a class="code" href="structCamImage.html">CamImage</a> *src, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1158
+ <a name="l02376"></a>02376
1159
+ <a name="l02380"></a>02380 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#7b021e7ba78039afe11819d1bc9e906b">camCopy</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1160
+ <a name="l02382"></a>02382
1161
+ <a name="l02385"></a>02385 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#1a6430576f1b718bc261009289418d9d">camClone</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1162
+ <a name="l02387"></a>02387
1163
+ <a name="l02390"></a>02390 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#c5b250ed6063c5813d6ba085e7c7227e">camRefCopy</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1164
+ <a name="l02392"></a>02392 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#6d88497c65ae028554a214a325a58d88">camSet</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">int</span> fillValue);
1165
+ <a name="l02394"></a>02394
1166
+ <a name="l02398"></a>02398 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#29df19c4f072e54051e16dbae679d8ec">camAlphaComposite</a>(<a class="code" href="structCamImage.html">CamImage</a> *source1, <a class="code" href="structCamImage.html">CamImage</a> *source2, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1167
+ <a name="l02399"></a>02399
1168
+ <a name="l02401"></a>02401 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#0cf71999d7a1fbae3c61a4dae8e3aa0a">camSetBorder</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">int</span> borderValue);
1169
+ <a name="l02403"></a>02403 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#5adebabc6e39eaafb1ec6abc0756f8c3">camClipROI</a>(<a class="code" href="structCamImage.html">CamImage</a> *image);
1170
+ <a name="l02405"></a>02405 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#2a8f67c7fc1a9736f789a2458b8c1a3f">camClip</a>(<a class="code" href="structCamROI.html">CamROI</a> *roi, <a class="code" href="structCamImage.html">CamImage</a> *image);
1171
+ <a name="l02407"></a>02407 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#3185c266234556bd2f120096f1f08da5">camROIIntersect</a>(<a class="code" href="structCamROI.html">CamROI</a> *roi1, <a class="code" href="structCamROI.html">CamROI</a> *roi2, <a class="code" href="structCamROI.html">CamROI</a> *dest);
1172
+ <a name="l02408"></a>02408
1173
+ <a name="l02409"></a>02409 <span class="preprocessor">#endif //SWIG</span>
1174
+ <a name="l02410"></a>02410 <span class="preprocessor"></span><span class="keywordtype">int</span> camSetImageViewer(<span class="keywordtype">char</span> *s);
1175
+ <a name="l02411"></a>02411 <span class="preprocessor">#ifndef SWIG</span>
1176
+ <a name="l02412"></a>02412 <span class="preprocessor"></span>
1177
+ <a name="l02414"></a>02414 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#9d3a1aac17bb5d79d1d5ffa7c6d081c5">camView</a>(<a class="code" href="structCamImage.html">CamImage</a> *image);
1178
+ <a name="l02416"></a>02416 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="camellia_8h.html#29e7e764723f9f6e9c9222ddf8d5cd0d">camVersion</a>();
1179
+ <a name="l02417"></a>02417
1180
+ <a name="l02418"></a>02418 <span class="comment">/* Drawing functions</span>
1181
+ <a name="l02419"></a>02419 <span class="comment"> */</span>
1182
+ <a name="l02421"></a>02421 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#4043dc2be0ba8d7a173f280f5d007d61">camDrawLine</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">int</span> x1, <span class="keywordtype">int</span> y1, <span class="keywordtype">int</span> x2, <span class="keywordtype">int</span> y2, <span class="keywordtype">int</span> color);
1183
+ <a name="l02423"></a>02423 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#58ab689dd945c0a44c13bfc1690567d9">camAccumulateLine</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">int</span> x1, <span class="keywordtype">int</span> y1, <span class="keywordtype">int</span> x2, <span class="keywordtype">int</span> y2, <span class="keywordtype">int</span> acc);
1184
+ <a name="l02425"></a>02425 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#cffc60a3e19b28ee96d0ae9e56eabc3d">camDrawRectangle</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">int</span> x1, <span class="keywordtype">int</span> y1, <span class="keywordtype">int</span> x2, <span class="keywordtype">int</span> y2, <span class="keywordtype">int</span> color);
1185
+ <a name="l02427"></a>02427 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#f988af691f73e1402f3cfd2d4d3520c1">camDrawText16s</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">char</span> *text, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> cwidth, <span class="keywordtype">int</span> cheight, <span class="keywordtype">int</span> orientation, <span class="keywordtype">int</span> color);
1186
+ <a name="l02429"></a>02429 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#4adc874143a32e767aad5f3329fccb9c">camDrawCircle</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> r, <span class="keywordtype">int</span> color);
1187
+ <a name="l02431"></a>02431 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#46d433af3bb1ca759be272291622b130">camDrawEllipse</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> rx, <span class="keywordtype">int</span> ry, <span class="keywordtype">int</span> color);
1188
+ <a name="l02433"></a>02433
1189
+ <a name="l02435"></a>02435 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#7e7bab9a4ef6bc165f2cf12290d014fc">camPlot</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> color, <span class="keywordtype">int</span> kind);
1190
+ <a name="l02437"></a>02437
1191
+ <a name="l02448"></a>02448 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#1cb0a4ab978407d47b9117430d33c3ae">camFillColor</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <span class="keywordtype">int</span> fillcolor, <span class="keywordtype">int</span> tolerance);
1192
+ <a name="l02449"></a>02449
1193
+ <a name="l02450"></a>02450 <span class="preprocessor">#endif // SWIG</span>
1194
+ <a name="l02451"></a>02451 <span class="preprocessor"></span>
1195
+ <a name="l02452"></a>02452 <span class="preprocessor">#ifdef __cplusplus</span>
1196
+ <a name="l02453"></a>02453 <span class="preprocessor"></span>
1197
+ <a name="l02454"></a><a class="code" href="structCamBitmapFont.html">02454</a> <span class="keyword">struct </span><a class="code" href="structCamBitmapFont.html">CamBitmapFont</a> {
1198
+ <a name="l02455"></a>02455 <span class="preprocessor">#else</span>
1199
+ <a name="l02456"></a>02456 <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{
1200
+ <a name="l02457"></a>02457 <span class="preprocessor">#endif</span>
1201
+ <a name="l02458"></a>02458 <span class="preprocessor"></span> <span class="keywordtype">int</span> first_char;
1202
+ <a name="l02459"></a>02459 <span class="keywordtype">int</span> nb_chars;
1203
+ <a name="l02460"></a>02460 <span class="keywordtype">int</span> height;
1204
+ <a name="l02461"></a>02461 <a class="code" href="structCamRLEImage.html">CamRLEImage</a> *masks;
1205
+ <a name="l02462"></a>02462 <a class="code" href="structCamImage.html">CamImage</a> *letters;
1206
+ <a name="l02463"></a>02463 <span class="preprocessor">#ifdef __cplusplus</span>
1207
+ <a name="l02464"></a>02464 <span class="preprocessor"></span> <a class="code" href="structCamBitmapFont.html">CamBitmapFont</a>() {first_char=33; nb_chars=0; masks=NULL; letters=NULL;}
1208
+ <a name="l02465"></a>02465 <a class="code" href="structCamBitmapFont.html">CamBitmapFont</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename);
1209
+ <a name="l02466"></a>02466 ~<a class="code" href="structCamBitmapFont.html">CamBitmapFont</a>();
1210
+ <a name="l02467"></a>02467 <span class="keywordtype">bool</span> load(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename);
1211
+ <a name="l02468"></a>02468 };
1212
+ <a name="l02469"></a>02469 <span class="preprocessor">#else</span>
1213
+ <a name="l02470"></a>02470 <span class="preprocessor"></span>} <a class="code" href="structCamBitmapFont.html">CamBitmapFont</a>;
1214
+ <a name="l02471"></a>02471 <span class="preprocessor">#endif</span>
1215
+ <a name="l02472"></a>02472 <span class="preprocessor"></span>
1216
+ <a name="l02473"></a>02473 <span class="preprocessor">#ifndef SWIG</span>
1217
+ <a name="l02474"></a>02474 <span class="preprocessor"></span>
1218
+ <a name="l02475"></a>02475 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#6122c582eb47fbba0e9bfd2756dd366e">camBitmapFontLoad</a>(<a class="code" href="structCamBitmapFont.html">CamBitmapFont</a> *font, <span class="keywordtype">char</span> *filename);
1219
+ <a name="l02477"></a>02477 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#3080c1d48c8d7f75570d83c087610564">camBitmapFontDeallocate</a>(<a class="code" href="structCamBitmapFont.html">CamBitmapFont</a> *font);
1220
+ <a name="l02479"></a>02479 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#0dd59e044492e92d83b97fa895239398">camDrawTextBitmap</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">char</span> *text, <span class="keywordtype">int</span> x, <span class="keywordtype">int</span> y, <a class="code" href="structCamBitmapFont.html">CamBitmapFont</a> *font);
1221
+ <a name="l02480"></a>02480 <span class="preprocessor">#endif // SWIG</span>
1222
+ <a name="l02481"></a>02481 <span class="preprocessor"></span>
1223
+ <a name="l02483"></a>02483
1224
+ <a name="l02485"></a>02485 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#f26daf901d61d38ed4b5c2dfe82b9691">camRGB</a>(<span class="keywordtype">int</span> r, <span class="keywordtype">int</span> g, <span class="keywordtype">int</span> b);
1225
+ <a name="l02486"></a>02486
1226
+ <a name="l02488"></a>02488 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#7527f24b971c50e84ee2438dd415c71f">camRGBA</a>(<span class="keywordtype">int</span> r, <span class="keywordtype">int</span> g, <span class="keywordtype">int</span> b, <span class="keywordtype">int</span> a);
1227
+ <a name="l02489"></a>02489
1228
+ <a name="l02490"></a>02490 <span class="preprocessor">#ifndef SWIG</span>
1229
+ <a name="l02491"></a>02491 <span class="preprocessor"></span>
1230
+ <a name="l02492"></a>02492 <span class="comment">/* Load and save PGM images</span>
1231
+ <a name="l02493"></a>02493 <span class="comment"> */</span>
1232
+ <a name="l02495"></a>02495 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#b795d824e2bd8f384980b79729b974a6">camLoadPGM</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">char</span> *fn);
1233
+ <a name="l02497"></a>02497 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#15f25150d0d3607c6e82d39ce713bfc3">camSavePGM</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">char</span> *filename);
1234
+ <a name="l02498"></a>02498
1235
+ <a name="l02499"></a>02499 <span class="comment">/* Load and save BMP images</span>
1236
+ <a name="l02500"></a>02500 <span class="comment"> */</span>
1237
+ <a name="l02502"></a>02502 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#c7b9f5883f486f1af9971009347faf6f">camLoadBMP</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">char</span> *fn);
1238
+ <a name="l02504"></a>02504 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#06cd51a111de95af501a3e7425868f9c">camSaveBMP</a>(<a class="code" href="structCamImage.html">CamImage</a> *image, <span class="keywordtype">char</span> *filename);
1239
+ <a name="l02505"></a>02505
1240
+ <a name="l02506"></a>02506 <span class="comment">/* Load config files</span>
1241
+ <a name="l02507"></a>02507 <span class="comment"> */</span>
1242
+ <a name="l02508"></a>02508 <span class="preprocessor">#define CAM_CONFIG_MAX_ENTRIES 256</span>
1243
+ <a name="l02509"></a>02509 <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{
1244
+ <a name="l02510"></a>02510 <span class="keywordtype">int</span> nbEntries;
1245
+ <a name="l02511"></a>02511 <span class="keywordtype">char</span> parameter[CAM_CONFIG_MAX_ENTRIES][128];
1246
+ <a name="l02512"></a>02512 <span class="keywordtype">char</span> value[CAM_CONFIG_MAX_ENTRIES][128];
1247
+ <a name="l02513"></a>02513 } CamConfig;
1248
+ <a name="l02514"></a>02514
1249
+ <a name="l02515"></a>02515 <span class="keywordtype">int</span> camLoadConfig(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename, CamConfig *config);
1250
+ <a name="l02516"></a>02516 <span class="keywordtype">int</span> camConfigInt(<span class="keyword">const</span> CamConfig *config, <span class="keyword">const</span> <span class="keywordtype">char</span> *entry);
1251
+ <a name="l02517"></a>02517 <span class="keywordtype">float</span> camConfigFloat(<span class="keyword">const</span> CamConfig *config, <span class="keyword">const</span> <span class="keywordtype">char</span> *entry);
1252
+ <a name="l02518"></a>02518 <span class="keyword">const</span> <span class="keywordtype">char</span> *camConfigString(<span class="keyword">const</span> CamConfig *config, <span class="keyword">const</span> <span class="keywordtype">char</span> *entry);
1253
+ <a name="l02519"></a>02519
1254
+ <a name="l02521"></a>02521 <span class="keywordtype">void</span> <a class="code" href="camellia_8h.html#dd5488e303f8e030cca6dd592f987c89">camError</a>(<span class="keywordtype">char</span> *module, <span class="keywordtype">char</span> *error);
1255
+ <a name="l02522"></a>02522 <span class="keyword">typedef</span> void (*camErrorFunct)(<span class="keywordtype">char</span> *,<span class="keywordtype">char</span>*);
1256
+ <a name="l02523"></a>02523 <span class="keywordtype">void</span> camSetErrorFunct(camErrorFunct funct);
1257
+ <a name="l02525"></a>02525
1258
+ <a name="l02529"></a>02529 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#36862e66ce65a8ea856b3cd1948bc9bf">camYUV2RGB</a>(<a class="code" href="structCamImage.html">CamImage</a>* source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1259
+ <a name="l02530"></a>02530 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#13dd49f78d364201f6242b7ebe5defd6">camRGB2YUV</a>(<a class="code" href="structCamImage.html">CamImage</a>* source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1260
+ <a name="l02531"></a>02531 <span class="keywordtype">int</span> <a class="code" href="camellia_8h.html#b0bbdcdb9e8960a91e7519de8d02cea4">camRGB2Y</a>(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest);
1261
+ <a name="l02532"></a>02532
1262
+ <a name="l02533"></a>02533
1263
+ <a name="l02537"></a>02537 <span class="comment">/*</span>
1264
+ <a name="l02538"></a>02538 <span class="comment"> * Computes the Sum of Absolute Values between two 8x8 blocks</span>
1265
+ <a name="l02539"></a>02539 <span class="comment"> *</span>
1266
+ <a name="l02540"></a>02540 <span class="comment"> * This function takes into account the blocks lying partially outside the image.</span>
1267
+ <a name="l02541"></a>02541 <span class="comment"> * MMX optimized if &lt;DFN&gt;CAM_OPT_MMX&lt;/DFN&gt; compilation option is set (requires Intel C++ compiler).</span>
1268
+ <a name="l02542"></a>02542 <span class="comment"> *</span>
1269
+ <a name="l02543"></a>02543 <span class="comment"> *</span>
1270
+ <a name="l02544"></a>02544 <span class="comment"> * \param image1 Current image</span>
1271
+ <a name="l02545"></a>02545 <span class="comment"> * \param image2 Previous image</span>
1272
+ <a name="l02546"></a>02546 <span class="comment"> * \param bleft The x coordinate of the current block</span>
1273
+ <a name="l02547"></a>02547 <span class="comment"> * \param btop The y coordinate of the current block</span>
1274
+ <a name="l02548"></a>02548 <span class="comment"> * \param dx The x offset to reach the candidate block</span>
1275
+ <a name="l02549"></a>02549 <span class="comment"> * \param dy The y offset to reach the candidate block</span>
1276
+ <a name="l02550"></a>02550 <span class="comment"> *</span>
1277
+ <a name="l02551"></a>02551 <span class="comment"> * \return The SAD value between the given two blocks</span>
1278
+ <a name="l02552"></a>02552 <span class="comment"> */</span>
1279
+ <a name="l02553"></a>02553 <span class="keywordtype">int</span> camSAD8x8(<a class="code" href="structCamImage.html">CamImage</a> *image1, <a class="code" href="structCamImage.html">CamImage</a> *image2, <span class="keywordtype">int</span> bleft, <span class="keywordtype">int</span> btop, <span class="keywordtype">int</span> dx, <span class="keywordtype">int</span> dy);
1280
+ <a name="l02554"></a>02554
1281
+ <a name="l02555"></a>02555 <span class="comment">/*</span>
1282
+ <a name="l02556"></a>02556 <span class="comment"> * Computes the Sum of Absolute Values between two 16x16 blocks</span>
1283
+ <a name="l02557"></a>02557 <span class="comment"> *</span>
1284
+ <a name="l02558"></a>02558 <span class="comment"> * This function takes into account the blocks lying partially outside the image.</span>
1285
+ <a name="l02559"></a>02559 <span class="comment"> * MMX optimized if &lt;DFN&gt;CAM_OPT_MMX&lt;/DFN&gt; compilation option is set (requires Intel C++ compiler).</span>
1286
+ <a name="l02560"></a>02560 <span class="comment"> *</span>
1287
+ <a name="l02561"></a>02561 <span class="comment"> *</span>
1288
+ <a name="l02562"></a>02562 <span class="comment"> * \param image1 Current image</span>
1289
+ <a name="l02563"></a>02563 <span class="comment"> * \param image2 Previous image</span>
1290
+ <a name="l02564"></a>02564 <span class="comment"> * \param bleft The x coordinate of the current block</span>
1291
+ <a name="l02565"></a>02565 <span class="comment"> * \param btop The y coordinate of the current block</span>
1292
+ <a name="l02566"></a>02566 <span class="comment"> * \param dx The x offset to reach the candidate block</span>
1293
+ <a name="l02567"></a>02567 <span class="comment"> * \param dy The y offset to reach the candidate block</span>
1294
+ <a name="l02568"></a>02568 <span class="comment"> *</span>
1295
+ <a name="l02569"></a>02569 <span class="comment"> * \return The SAD value between the given two blocks</span>
1296
+ <a name="l02570"></a>02570 <span class="comment"> */</span>
1297
+ <a name="l02571"></a>02571 <span class="keywordtype">int</span> camSAD16x16(<a class="code" href="structCamImage.html">CamImage</a> *image1, <a class="code" href="structCamImage.html">CamImage</a> *image2, <span class="keywordtype">int</span> bleft, <span class="keywordtype">int</span> btop, <span class="keywordtype">int</span> dx, <span class="keywordtype">int</span> dy);
1298
+ <a name="l02572"></a>02572
1299
+ <a name="l02573"></a>02573 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
1300
+ <a name="l02574"></a>02574 <span class="keywordtype">int</span> niter;
1301
+ <a name="l02575"></a>02575 <span class="keywordtype">int</span> seed;
1302
+ <a name="l02576"></a>02576 <span class="keywordtype">int</span> lsearch;
1303
+ <a name="l02577"></a>02577 <span class="keywordtype">int</span> rsearch;
1304
+ <a name="l02578"></a>02578 <span class="keywordtype">int</span> blockSize;
1305
+ <a name="l02579"></a>02579 <span class="keywordtype">int</span> scans;
1306
+ <a name="l02580"></a>02580 <span class="keywordtype">int</span> candidates;
1307
+ <a name="l02581"></a>02581 <span class="keywordtype">int</span> test0;
1308
+ <a name="l02582"></a>02582 } CamMotionEstimation3DRSParams;
1309
+ <a name="l02583"></a>02583
1310
+ <a name="l02584"></a>02584 <span class="keyword">typedef</span> <span class="keyword">struct </span>{
1311
+ <a name="l02585"></a>02585 <span class="keywordtype">int</span> vx[CAM_MAX_SCANLINE/8][CAM_MAX_FRAME_HEIGHT/8];
1312
+ <a name="l02586"></a>02586 <span class="keywordtype">int</span> vy[CAM_MAX_SCANLINE/8][CAM_MAX_FRAME_HEIGHT/8];
1313
+ <a name="l02587"></a>02587 <span class="keywordtype">int</span> SAD[CAM_MAX_SCANLINE/8][CAM_MAX_FRAME_HEIGHT/8];
1314
+ <a name="l02588"></a>02588 } CamMotionEstimation3DRSResults;
1315
+ <a name="l02589"></a>02589
1316
+ <a name="l02590"></a>02590 <span class="keywordtype">int</span> camMotionEstimation3DRSInit(CamMotionEstimation3DRSParams *params, <span class="keywordtype">int</span> seed, <span class="keywordtype">int</span> lsearch, <span class="keywordtype">int</span> rsearch, <span class="keywordtype">int</span> bs, <span class="keywordtype">int</span> scans, <span class="keywordtype">int</span> candidates, <span class="keywordtype">int</span> test0);
1317
+ <a name="l02591"></a>02591 <span class="keywordtype">int</span> camMotionEstimation3DRS(<a class="code" href="structCamImage.html">CamImage</a> *current, <a class="code" href="structCamImage.html">CamImage</a> *previous, CamMotionEstimation3DRSParams *params, CamMotionEstimation3DRSResults *results);
1318
+ <a name="l02593"></a>02593
1319
+ <a name="l02597"></a>02597
1320
+ <a name="l02598"></a>02598 <span class="keywordtype">void</span> camProject(<span class="keyword">const</span> <span class="keywordtype">double</span> extr[4][4], <span class="keyword">const</span> <span class="keywordtype">double</span> fc[2], <span class="keyword">const</span> <span class="keywordtype">double</span> cc[2], <span class="keywordtype">double</span> x, <span class="keywordtype">double</span> y, <span class="keywordtype">double</span> z, <span class="keywordtype">int</span> *xp, <span class="keywordtype">int</span> *yp);
1321
+ <a name="l02599"></a>02599
1322
+ <a name="l02600"></a>02600 <span class="keywordtype">void</span> camBackproject(<span class="keyword">const</span> <span class="keywordtype">double</span> extr[4][4], <span class="keyword">const</span> <span class="keywordtype">double</span> fc[2], <span class="keyword">const</span> <span class="keywordtype">double</span> cc[2], <span class="keywordtype">int</span> xp, <span class="keywordtype">int</span> yp, <span class="keywordtype">double</span> z, <span class="keywordtype">double</span> *x, <span class="keywordtype">double</span> *y);
1323
+ <a name="l02601"></a>02601
1324
+ <a name="l02602"></a>02602 <span class="keywordtype">int</span> camUndistort(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest,
1325
+ <a name="l02603"></a>02603 <span class="keyword">const</span> <span class="keywordtype">float</span>* intrinsic_matrix,
1326
+ <a name="l02604"></a>02604 <span class="keyword">const</span> <span class="keywordtype">float</span>* dist_coeffs);
1327
+ <a name="l02605"></a>02605 <span class="keywordtype">int</span> camUndistortFixed(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest,
1328
+ <a name="l02606"></a>02606 <span class="keyword">const</span> CAM_FIXED_POINT* intrinsic_matrix,
1329
+ <a name="l02607"></a>02607 <span class="keyword">const</span> CAM_FIXED_POINT* dist_coeffs);
1330
+ <a name="l02608"></a>02608 <span class="keywordtype">int</span> camUndistortBuildLUT(<a class="code" href="structCamImage.html">CamImage</a> *source,
1331
+ <a name="l02609"></a>02609 <span class="keyword">const</span> <span class="keywordtype">float</span>* intrinsic_matrix,
1332
+ <a name="l02610"></a>02610 <span class="keyword">const</span> <span class="keywordtype">float</span>* dist_coeffs,
1333
+ <a name="l02611"></a>02611 <a class="code" href="structCamImage.html">CamImage</a> *LUTX, <a class="code" href="structCamImage.html">CamImage</a> *LUTY);
1334
+ <a name="l02612"></a>02612 <span class="keywordtype">int</span> camUndistortLUT(<a class="code" href="structCamImage.html">CamImage</a> *source, <a class="code" href="structCamImage.html">CamImage</a> *dest,
1335
+ <a name="l02613"></a>02613 <a class="code" href="structCamImage.html">CamImage</a> *LUTX, <a class="code" href="structCamImage.html">CamImage</a> *LUTY);
1336
+ <a name="l02614"></a>02614
1337
+ <a name="l02616"></a>02616
1338
+ <a name="l02617"></a>02617 <span class="preprocessor">#endif // SWIG</span>
1339
+ <a name="l02618"></a>02618 <span class="preprocessor"></span>
1340
+ <a name="l02619"></a>02619 <span class="preprocessor">#ifdef __cplusplus</span>
1341
+ <a name="l02620"></a>02620 <span class="preprocessor"></span>}
1342
+ <a name="l02621"></a>02621 <span class="preprocessor">#endif</span>
1343
+ <a name="l02622"></a>02622 <span class="preprocessor"></span>
1344
+ <a name="l02623"></a>02623 <span class="preprocessor">#endif</span>
1345
+ <a name="l02624"></a>02624 <span class="preprocessor"></span>
1346
+ </pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Aug 2 14:00:17 2006 for Camellia by&nbsp;
1347
+ <a href="http://www.doxygen.org/index.html">
1348
+ <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.6 </small></address>
1349
+ </body>
1350
+ </html>