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