triclopsvalidation.h
Go to the documentation of this file.
00001 /**************************************************************************************************
00002  Software License Agreement (BSD License)
00003 
00004  Copyright (c) 2011-2013, LAR toolkit developers - University of Aveiro - http://lars.mec.ua.pt
00005  All rights reserved.
00006 
00007  Redistribution and use in source and binary forms, with or without modification, are permitted
00008  provided that the following conditions are met:
00009 
00010   *Redistributions of source code must retain the above copyright notice, this list of
00011    conditions and the following disclaimer.
00012   *Redistributions in binary form must reproduce the above copyright notice, this list of
00013    conditions and the following disclaimer in the documentation and/or other materials provided
00014    with the distribution.
00015   *Neither the name of the University of Aveiro nor the names of its contributors may be used to
00016    endorse or promote products derived from this software without specific prior written permission.
00017  
00018  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
00019  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
00020  FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
00021  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00022  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
00023  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
00024  IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
00025  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00026 ***************************************************************************************************/
00032 //=============================================================================
00033 // Copyright © 2004 Point Grey Research, Inc. All Rights Reserved.
00034 // 
00035 // This software is the confidential and proprietary information of Point
00036 // Grey Research, Inc. ("Confidential Information").  You shall not
00037 // disclose such Confidential Information and shall use it only in
00038 // accordance with the terms of the license agreement you entered into
00039 // with Point Grey Research, Inc. (PGR).
00040 // 
00041 // PGR MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
00042 // SOFTWARE, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
00043 // IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
00044 // PURPOSE, OR NON-INFRINGEMENT. PGR SHALL NOT BE LIABLE FOR ANY DAMAGES
00045 // SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
00046 // THIS SOFTWARE OR ITS DERIVATIVES.
00047 //
00048 //=============================================================================
00049 //=============================================================================
00050 // $Id: triclopsvalidation.h,v 2.2 2007/11/30 00:43:03 soowei Exp $
00051 //=============================================================================
00052 #ifndef TRICLOPSVALIDATION_H
00053 #define TRICLOPSVALIDATION_H
00054 
00055 //=============================================================================
00056 //
00057 // This file defines the API for Stereo Validation methods in the 
00058 // Triclops Stereo Vision SDK.
00059 //
00060 //=============================================================================
00061 
00062 
00063 //=============================================================================
00064 // Defines
00065 //=============================================================================
00066 
00067 //=============================================================================
00068 // System Includes  
00069 //=============================================================================
00070 
00071 #include <triclops.h>
00072 
00073 #ifdef __cplusplus
00074 extern "C"
00075 {
00076 #endif
00077    
00078 //=============================================================================
00079 // Macros  
00080 //=============================================================================
00081 
00082 
00083 //=============================================================================
00084 // Enumerations  
00085 //=============================================================================
00086 
00087 //=============================================================================
00088 // Types 
00089 //=============================================================================
00090 
00091 //=============================================================================
00092 // Function Prototypes  
00093 //=============================================================================
00094 
00095 //=============================================================================
00096 // Validation Support
00097 //=============================================================================
00098 //
00099 // Group = Validation Support 
00100 
00101 //
00102 // Name: triclopsSetTextureValidation
00103 //
00104 // Synopsis:
00105 //  Turns texture validation on or off.
00106 //
00107 // Input:
00108 //  context - The context.
00109 //  on      - Texture validation flag.
00110 //
00111 // Returns:
00112 //  TriclopsErrorOk             - The operation succeeded.
00113 //  InvalidContext - The input context was invalid.
00114 //
00115 // Description:
00116 //  Sets the context texture validation flag.  When set to true, 
00117 //  texture-based validation is enabled.  Pixels that do not pass 
00118 //  the validation test will be marked with the texture validation 
00119 //  mapping value in the disparity image.
00120 //
00121 // See Also:
00122 //  triclopsGetTextureValidation()
00123 //
00124 TriclopsError
00125 triclopsSetTextureValidation( const TriclopsContext      context,
00126                               TriclopsBool               on );
00127 
00128 //
00129 //  Name: triclopsGetTextureValidation
00130 //
00131 // Synopsis:
00132 //  Retrieves the state of the texture validation flag.
00133 //
00134 // Input:
00135 //  context - The context.
00136 //
00137 // Output:
00138 //  on - Container that receives the texture validation flag value.
00139 //
00140 // Returns:
00141 //  TriclopsErrorOk             - The operation succeeded.
00142 //  InvalidContext - The input context was invalid.
00143 //
00144 // See Also:
00145 //  TriclopsSetTextureValidation()
00146 //
00147 TriclopsError
00148 triclopsGetTextureValidation( const TriclopsContext      context,
00149                               TriclopsBool*              on );
00150 
00151 //
00152 // Name: triclopsSetTextureValidationThreshold
00153 //
00154 // Synopsis:
00155 //  Sets the texture validation threshold.
00156 //
00157 // Input:
00158 //  context - The context
00159 //  value   - The new texture validation threshold.
00160 //
00161 // Returns:
00162 //  TriclopsErrorOk             - The operation succeeded.
00163 //  InvalidContext - The input context was invalid.
00164 //
00165 // Description:
00166 //  Sets the texture validation threshold.  This threshold allows one
00167 //  to tune the texture-based rejection of pixels.  Values range from 
00168 //  0.0 (no rejection) to 128.0 (complete rejection) but good operating 
00169 //  range is between 0.0 and 2.0.
00170 //
00171 // See Also:
00172 //  TriclopsGetTextureValidationThreshold()
00173 //
00174 TriclopsError
00175 triclopsSetTextureValidationThreshold( TriclopsContext   context,
00176                                        float             value );
00177 
00178 //
00179 // Name: triclopsGetTextureValidationThreshold
00180 //
00181 // Synopsis:
00182 //  Retrieves the texture validation threshold.
00183 //
00184 // Input:
00185 //  context - The context.
00186 // 
00187 // Output:      
00188 //  value - The location for the retrieved threshold.
00189 //
00190 // Returns:
00191 //  TriclopsErrorOk             - The operation succeeded.
00192 //  InvalidContext - The input context was invalid.
00193 //
00194 // See Also:
00195 //  TriclopsSetTextureValidationThreshold()
00196 //
00197 TriclopsError
00198 triclopsGetTextureValidationThreshold( const TriclopsContext    context,
00199                                        float*                   value );
00200 
00201 //
00202 // Name: triclopsSetTextureValidationMapping 
00203 //
00204 // Description:
00205 //  Sets the value that appears in the disparity image for pixels that
00206 //  fail texture validation.
00207 //
00208 // Input:
00209 //  context - The TriclopsContext to set the texture validation mapping for.
00210 //  value   - The new value to map invalid pixels to.  The range is from
00211 //            0 to 255.
00212 //
00213 // Returns:
00214 //  TriclopsErrorOk - Upon the successful completion of the operation.
00215 //
00216 TriclopsError
00217 triclopsSetTextureValidationMapping( TriclopsContext    context,
00218                                      unsigned char      value );
00219 
00220 //
00221 // Name: triclopsGetTextureValidationMapping
00222 //
00223 // Description:
00224 //  Gets the value that appears in the disparity image for pixels 
00225 //  that fail texture validation.
00226 //
00227 // Input:
00228 //  context - The TriclopsContext to get the texture validation mapping from.
00229 //
00230 // Output:
00231 //  value - The current texture validation mapping setting.
00232 //
00233 // Returns:
00234 //  TriclopsErrorOk - Upon the successful completion of the operation.
00235 //
00236 TriclopsError
00237 triclopsGetTextureValidationMapping( const TriclopsContext      context,
00238                                      unsigned char*             value );
00239 
00240 //
00241 // Name: triclopsSetUniquenessValidation
00242 //
00243 // Synopsis:
00244 //  Turns uniqueness validation on or off.
00245 //
00246 // Input:
00247 //  context - The context.
00248 //  on      - A Boolean value indicating whether validation is on or off.
00249 //
00250 // Returns:
00251 //  TriclopsErrorOk             - The operation succeeded.
00252 //  InvalidContext - The input context was invalid.
00253 //
00254 // Description:
00255 //  Turns uniqueness validation on or off.  Uniqueness validation verifies 
00256 //  that the match of a given pixel to its corresponding pixels in the top 
00257 //  and left images is unique enough to be considered the definite correct 
00258 //  match.  If pixels at other disparities have almost as good matching to the 
00259 //  given pixel as the best disparity, the pixel can be rejected as an 
00260 //  unconfident match.
00261 //
00262 // See Also:
00263 //  TriclopsGetUniquenessValidation()
00264 //
00265 TriclopsError
00266 triclopsSetUniquenessValidation( TriclopsContext context,
00267                                  TriclopsBool    on );
00268 
00269 //
00270 // Name: triclopsGetUniquenessValidation
00271 //
00272 // Synopsis:
00273 //  Retrieves the state of the uniqueness validation
00274 //
00275 // Input:
00276 //  context - The context.
00277 //
00278 // Output:
00279 //  on - A pointer to a Boolean.
00280 //
00281 // Returns:
00282 //  TriclopsErrorOk             - The operation succeeded.
00283 //  InvalidContext - The input context was invalid.
00284 //
00285 // See Also:
00286 //  TriclopsSetUniquenessValidation()
00287 //
00288 TriclopsError
00289 triclopsGetUniquenessValidation( const TriclopsContext context,
00290                                  TriclopsBool*         on );
00291 
00292 //
00293 // Name: triclopsSetUniquenessValidationThreshold
00294 //
00295 // Synopsis:
00296 //  Sets the uniqueness validation threshold.
00297 // 
00298 // Input:
00299 //  context - The context.
00300 //  value   - A float indicating the new threshold.
00301 //
00302 // Returns:
00303 //  TriclopsErrorOk             - The operation succeeded.
00304 //  InvalidContext - The input context was invalid.
00305 //
00306 // Description:
00307 //  This function sets the uniqueness matching criteria threshold.  
00308 //  This value can range from 0.0 to 10.0. The larger the number, 
00309 //  the less rejection occurs.  Common operating ranges are between 
00310 //  0.5 and 3.0.
00311 //
00312 // See Also:
00313 //  TriclopsGetUniquenessValidationThreshold()
00314 //
00315 TriclopsError
00316 triclopsSetUniquenessValidationThreshold( TriclopsContext context,
00317                                           float           value );
00318 
00319 //
00320 // Name: triclopsGetUniquenessValidationThreshold
00321 //
00322 // Synopsis:
00323 //  Retrieves the uniqueness validation threshold.
00324 //
00325 // Input:
00326 //  context - The context.
00327 // 
00328 // Output:
00329 //  value - A pointer to a float indicating the current threshold.
00330 //
00331 // Returns:
00332 //  TriclopsErrorOk             - The operation succeeded.
00333 //  InvalidContext - The input context was invalid.
00334 //
00335 // See Also:
00336 //  TriclopsSetUniquenessThreshold()
00337 //
00338 TriclopsError
00339 triclopsGetUniquenessValidationThreshold( const TriclopsContext context,
00340                                           float*                value );
00341 
00342 //
00343 // Name: triclopsSetUniquenessValidationMapping
00344 //
00345 // Synopsis:
00346 //  Sets the value that appears in the disparity image for pixels 
00347 //  that fail uniqueness validation.
00348 //
00349 // Input:
00350 //  context - The context.
00351 //  value   - The value to which failing pixels are mapped.
00352 //  
00353 // Returns:
00354 //  TriclopsErrorOk             - The operation succeeded.
00355 //  InvalidContext - The input context was invalid.
00356 //
00357 // Description:
00358 //  Sets the unique matching validation mapping value.  This is the value that 
00359 //  is assigned to pixels in the disparity image that fail the uniqueness 
00360 //  validation test.  The range is between 0 and 255.
00361 //
00362 // See Also:
00363 //  TriclopsGetUniquenessValidationMapping()
00364 //
00365 TriclopsError
00366 triclopsSetUniquenessValidationMapping( TriclopsContext   context,
00367                                         unsigned char     value );
00368 
00369 //
00370 // Name: triclopsGetUniquenessValidationMapping
00371 //
00372 // Synopsis:
00373 //  Retrieves the value that appears in the disparity image for pixels 
00374 //  that fail uniqueness validation.
00375 // 
00376 // Input:
00377 //  context - The context.
00378 // 
00379 // Output:
00380 //  value - A pointer to an unsigned char that will contain the current value 
00381 //          of the mapping.
00382 //
00383 // Returns:
00384 //  TriclopsErrorOk             - The operation succeeded.
00385 //  InvalidContext - The input context was invalid.
00386 //
00387 // See Also:
00388 //  TriclopsSetUniquenessValidationMapping()
00389 //
00390 TriclopsError
00391 triclopsGetUniquenessValidationMapping( const TriclopsContext   context,
00392                                         unsigned char*          value );
00393 
00394 //
00395 // Name: triclopsSetBackForthValidation
00396 //
00397 // Synopsis:
00398 //  Enables or disables back-forth validation.
00399 //
00400 // Input:
00401 //  context - TriclopsContext for the operation.
00402 //  on      - A Boolean flag indicating if back-forth validation should be enabled
00403 //            or disabled.
00404 //
00405 // Returns:
00406 //  TriclopsErrorOk             - Operation successful.
00407 //  TriclopsErrorInvalidContext - Context is not a valid TriclopsContext.
00408 // 
00409 // Description:
00410 //  This function is used to enable or disable back-forth validation. 
00411 //
00412 // See Also:
00413 //  triclopsGetSurfaceValidation ()
00414 //
00415 TriclopsError
00416 triclopsSetBackForthValidation( TriclopsContext         context,
00417                                 TriclopsBool            on );
00418 //
00419 // Name: triclopsGetBackForthValidation
00420 //
00421 // Synopsis:
00422 //  Gets the current back-forth validation setting.
00423 //
00424 // Input:
00425 //  context - TriclopsContext for the operation.
00426 //
00427 // Output:
00428 //  on  - A pointer for the returned value of the current setting of the 
00429 //        back-forth validation flag.
00430 //
00431 // Returns:
00432 //  TriclopsErrorOk             - Operation successful.
00433 //  TriclopsErrorInvalidContext - Context is not a valid TriclopsContext.
00434 //
00435 // Description:
00436 //  This function is used to obtain the current setting of back-forth validation.  
00437 //
00438 // See Also:
00439 //  triclopsSetBackForthValidation ()
00440 //
00441 TriclopsError
00442 triclopsGetBackForthValidation( const TriclopsContext   context,
00443                                  TriclopsBool   *on );
00444 
00445 //
00446 // Name: triclopsSetBackForthValidationMapping
00447 //
00448 // Synopsis:
00449 //  Sets the value that appears in the disparity image for pixels 
00450 //  that fail back-forth validation.
00451 //
00452 // Input:
00453 //  context - The context.
00454 //  value   - The value to which failing pixels are mapped.
00455 //  
00456 // Returns:
00457 //  TriclopsErrorOk  - The operation succeeded.
00458 //  InvalidContext   - The input context was invalid.
00459 //
00460 // Description:
00461 //  Sets the back-forth validation mapping value.  This is the value that 
00462 //  is assigned to pixels in the disparity image that fail the back-forth 
00463 //  validation test.  The range is between 0 and 255.
00464 //
00465 // See Also:
00466 //  triclopsGetBackForthValidationMapping()
00467 //
00468 TriclopsError
00469 triclopsSetBackForthValidationMapping( TriclopsContext  context,
00470                                        unsigned char    value );
00471 
00472 //
00473 // Name: triclopsGetBackForthValidationMapping
00474 //
00475 // Synopsis:
00476 //  Retrieves the back-forth validation threshold.
00477 //
00478 // Input:
00479 //  context - The context.
00480 // 
00481 // Output:
00482 //  value - A pointer that will return the current value of the back-forth
00483 //          validation mapping parameter.
00484 //
00485 // Returns:
00486 //  TriclopsErrorOk  - The operation succeeded.
00487 //  InvalidContext   - The input context was invalid.
00488 //
00489 // See Also:
00490 //  triclopsSetBackForthValidationMapping()
00491 //
00492 TriclopsError
00493 triclopsGetBackForthValidationMapping( const TriclopsContext    context,
00494                                        unsigned char            *value );
00495 
00496 //
00497 // Name: triclopsSetSurfaceValidation
00498 //
00499 // Synopsis:
00500 //  Enables or disables surface validation.
00501 //
00502 // Input:
00503 //  context - TriclopsContext for the operation.
00504 //  on      - A Boolean flag indicating if surface validation should be enabled
00505 //            or disabled.
00506 //
00507 // Returns:
00508 //  TriclopsErrorOk                          - Operation successful.
00509 //  TriclopsErrorInvalidContext - Context is not a valid TriclopsContext.
00510 // 
00511 // Description:
00512 //  This function is used to enable or disable surface validation. 
00513 //
00514 TriclopsError
00515 triclopsSetSurfaceValidation( TriclopsContext   context,
00516                               TriclopsBool      on );
00517 
00518 //
00519 // Name: triclopsGetSurfaceValidation
00520 //
00521 // Synopsis:
00522 //  Gets the current surface validation setting.
00523 //
00524 // Input:
00525 //  context - TriclopsContext for the operation.
00526 //
00527 // Output:
00528 //  on  - A pointer for the returned value of the current  setting of the 
00529 //        surface validation flag.
00530 //
00531 // Returns:
00532 //  TriclopsErrorOk                          - Operation successful.
00533 //  TriclopsErrorInvalidContext - Context is not a valid TriclopsContext.
00534 //
00535 // Description:
00536 //  This function is used to obtain the current setting of surface validation.  
00537 //
00538 // See Also:
00539 //  triclopsSetSurfaceValidation ()
00540 //
00541 TriclopsError
00542 triclopsGetSurfaceValidation( const TriclopsContext      context,
00543                               TriclopsBool*              on );
00544 
00545 
00546 //
00547 // Name: triclopsSetSurfaceValidationSize
00548 //
00549 // Synopsis:
00550 //  Sets the minimum number of pixels a surface can cover and still be
00551 //  considered valid.
00552 //
00553 // Input:
00554 //  context - TriclopsContext for the operation.                        
00555 //  size    - The minimum number of pixels a surface can cover and still be
00556 //            considered valid.
00557 //
00558 // Returns:
00559 //  TriclopsErrorOk                          - Operation successful.
00560 //  TriclopsErrorInvalidContext - Context is not a valid TriclopsContext.                                             
00561 //  TriclopsErrorInvalidSetting - A negative size was given.
00562 //
00563 // Description:
00564 //  This function is used to set the minimum number of pixels a surface can
00565 //  cover and still be considered valid.  The larger the number is, the fewer
00566 //  surfaces will be accepted.  The lower the number is, the more surfaces will
00567 //  be accepted.  Common parameter values range from 100 to 500, depending on 
00568 //  image resolution.
00569 //
00570 TriclopsError
00571 triclopsSetSurfaceValidationSize( TriclopsContext context,
00572                                   int             size );
00573 
00574 //
00575 // Name: triclopsGetSurfaceValidationSize
00576 //
00577 // Synopsis:
00578 //  Retrieves the current validation size.
00579 //
00580 // Input:
00581 //  context - TriclopsContext for the operation.
00582 // 
00583 // Output:
00584 //  size - A pointer that returns the current value of the size  parameter.
00585 //
00586 // Returns:
00587 //  TriclopsErrorOk                          - Operation Successful.    
00588 //  TriclopsErrorInvalidContext - Context is not a valid TriclopsContext.
00589 //
00590 // Description:
00591 //  This function is used to extract the surface size parameter for surface
00592 //  validation. 
00593 // 
00594 // See Also:
00595 //  triclopsSetSurfaceValidationSize 
00596 //
00597 TriclopsError
00598 triclopsGetSurfaceValidationSize( const TriclopsContext context,
00599                                   int*                  size );
00600 
00601 //
00602 // Name: triclopsSetSurfaceValidationDifference
00603 //
00604 // Synopsis:
00605 //  Set the maximum disparity difference between two adjacent pixels that will
00606 //  still allow the two pixels to be considered part of the same surface.
00607 //
00608 // Input:
00609 //  context - TriclopsContext for the operation.                        
00610 //  diff    - The maximum disparity difference between two  adjacent pixels 
00611 //            that will still allow the two pixels  to be considered part of 
00612 //            the same surface.
00613 //
00614 // Returns:
00615 //  TriclopsErrorOk                          - Operation successful. 
00616 //  TriclopsErrorInvalidContext - Context is not a valid TriclopsContext.
00617 //  TriclopsErrorInvalidSetting - A negative difference was given.      
00618 // 
00619 TriclopsError
00620 triclopsSetSurfaceValidationDifference( TriclopsContext context,
00621                                         float           diff  );
00622 
00623 //
00624 // Name: triclopsGetSurfaceValidationDifference
00625 // 
00626 // Synopsis:
00627 //  Returns the maximum disparity difference between two adjacent pixels that 
00628 //  will still allow the two pixels to be considered part of the same surface.
00629 // 
00630 // Input:
00631 //  context - TriclopsContext for the operation.
00632 //  
00633 // Output:
00634 //  diff - A pointer that returns the current value of the surface validation 
00635 //         difference parameter.
00636 //
00637 // Returns:
00638 //  TriclopsErrorOk                          - Operation successful.
00639 //  TriclopsErrorInvalidContext - Context is not a valid TriclopsContext.
00640 //
00641 TriclopsError
00642 triclopsGetSurfaceValidationDifference( const TriclopsContext   context,
00643                                         float*                  diff  );
00644 
00645 //
00646 // Name: triclopsSetSurfaceValidationMapping
00647 //
00648 // Synopsis:
00649 //  Sets the current surface validation mapping.
00650 //
00651 // Input:
00652 //  context - TriclopsContext for the operation.                        
00653 //  value   - Mapping value for pixels that fail surface validation. The range
00654 //            is between 0 and 255.
00655 //
00656 // Returns:
00657 //  TriclopsErrorOk                          - Operation successful.
00658 //  TriclopsErrorInvalidContext - Context is not a valid TriclopsContext
00659 //
00660 // Description:
00661 //  Surface validation is a noise rejection method.  By setting the mapping 
00662 //  value to 0x??, an invalid pixel that failed this validation step will be
00663 //  marked 0xFF??.
00664 //
00665 TriclopsError
00666 triclopsSetSurfaceValidationMapping( TriclopsContext    context,
00667                                         unsigned char   value );
00668 
00669 //
00670 // Name: triclopsGetSurfaceValidationMapping
00671 //
00672 // Synopsis:
00673 //  Retrieves the current surface validation mapping.
00674 //
00675 // Input:
00676 //  context - TriclopsContext for the operation.
00677 //
00678 // Output:
00679 //  value - A pointer that will return the current value of the surface
00680 //          validation mapping parameter.
00681 //
00682 // Returns:
00683 //  TriclopsErrorOk                          - Operation successful. 
00684 //  TriclopsErrorInvalidContext - Context is not a valid TriclopsContext.
00685 //
00686 // Description:
00687 //  This function returns the current setting for the surface validation 
00688 //  parameter.
00689 //
00690 TriclopsError
00691 triclopsGetSurfaceValidationMapping( const TriclopsContext context,
00692                                      unsigned char*        value );
00693 
00694 //
00695 // Name: triclopsSetStrictSubpixelValidation
00696 //
00697 // Synopsis:
00698 //  Sets the state of the subpixel validation setting.
00699 //
00700 // Input:
00701 //  context -  The context
00702 //  on      - A Boolean value indicating whether validation is on or off. 
00703 //
00704 // Returns:
00705 //  TriclopsErrorOk             - The operation succeeded.
00706 //  InvalidContext - The input context was invalid.
00707 //
00708 // Description:
00709 //  The strict subpixel validation option is used when the subpixel 
00710 //  interpolation flag is turned on.  Strict subpixel validation enables 
00711 //  a more restrictive validation method for subpixel validation.  With 
00712 //  strict subpixel validation on, there will be less data in the output
00713 //  image, but it will be more reliable.
00714 //
00715 // See Also:
00716 //  triclopsGetStrictSubpixelValidation(), triclopsSetSubpixelInterpolation(), 
00717 //  triclopsGetSubpixelInterpolation()
00718 //
00719 TriclopsError
00720 triclopsSetStrictSubpixelValidation( TriclopsContext     context,
00721                                      TriclopsBool        on );
00722 
00723 //
00724 // Name: triclopsGetStrictSubpixelValidation
00725 //
00726 // Synopsis:
00727 //  Retrieves the value that appears in the disparity image for pixels that 
00728 //  fail uniqueness validation.
00729 //
00730 // Input:
00731 //  context - The context.
00732 //
00733 // Output:
00734 //  on - A pointer to a Boolean that will contain the current setting.
00735 //
00736 // Returns:
00737 //  TriclopsErrorOk             - The operation succeeded.
00738 //  InvalidContext - The input context was invalid.
00739 //
00740 // See Also:
00741 //  triclopsSetStrictSubpixelValidation(), triclopsSetSubpixelInterpolation(), 
00742 //  triclopsGetSubpixelInterpolation()
00743 //
00744 TriclopsError
00745 triclopsGetStrictSubpixelValidation( TriclopsContext    context,
00746                                      TriclopsBool*      on );
00747 
00748 //
00749 // Name: triclopsSetSubpixelValidationMapping
00750 //
00751 // Synopsis:
00752 //  Sets the value that appears in the disparity image for pixels that fail 
00753 //  subpixel validation.
00754 //
00755 // Input:
00756 //  context - TriclopsContext for the operation.
00757 //  value   - The new subpixel validation mapping value.  The range is between
00758 //            0 and 255.
00759 //
00760 // Returns:
00761 //  TriclopsErrorOk                          - The operation succeeded.
00762 //  TriclopsErrorInvalidContext - Context is not a valid TriclopsContext.
00763 //
00764 // Description:
00765 //  Strict subpixel validation verifies that the disparity values contribute 
00766 //  to the subpixel interpolation make sense.  By setting the mapping value to 
00767 //  0x??, an invalid pixel that failed this validation step will be marked 
00768 //  0xFF??.
00769 //
00770 TriclopsError
00771 triclopsSetSubpixelValidationMapping( TriclopsContext   context,
00772                                       unsigned char     value );
00773 
00774 //
00775 // Name: triclopsGetSubpixelValidationMapping
00776 //
00777 // Synopsis:
00778 //  Retrieves the value that appears in the disparity image for pixels that 
00779 //  fail subpixel validation.
00780 //
00781 // Input:       
00782 //  context - TriclopsContext for the operation.
00783 //
00784 // Output:
00785 //  value - A pointer that will hold the subpixel validation mapping value.
00786 //
00787 // Returns:
00788 //  TriclopsErrorOk                          - Operation successful.
00789 //  TriclopsErrorInvalidContext - Context is not a valid TriclopsContext.
00790 //
00791 // See Also:
00792 //  triclopsSetSubpixelValidationMapping
00793 //
00794 TriclopsError
00795 triclopsGetSubpixelValidationMapping( const TriclopsContext     context,
00796                                       unsigned char*            value );
00797 
00798 
00799 #ifdef __cplusplus
00800 }
00801 #endif
00802 
00803 #endif  // #ifndef TRICLOPSVALIDATION_H


xb3
Author(s): Miguel Oliveira, Tiago Talhada
autogenerated on Thu Nov 20 2014 11:36:02