github.com/kaydxh/golang@v0.0.131/pkg/gocv/cgo/third_path/opencv4/include/opencv2/photo/cuda.hpp (about)

     1  /*M///////////////////////////////////////////////////////////////////////////////////////
     2  //
     3  //  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
     4  //
     5  //  By downloading, copying, installing or using the software you agree to this license.
     6  //  If you do not agree to this license, do not download, install,
     7  //  copy or use the software.
     8  //
     9  //
    10  //                           License Agreement
    11  //                For Open Source Computer Vision Library
    12  //
    13  // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
    14  // Copyright (C) 2008-2012, Willow Garage Inc., all rights reserved.
    15  // Third party copyrights are property of their respective owners.
    16  //
    17  // Redistribution and use in source and binary forms, with or without modification,
    18  // are permitted provided that the following conditions are met:
    19  //
    20  //   * Redistribution's of source code must retain the above copyright notice,
    21  //     this list of conditions and the following disclaimer.
    22  //
    23  //   * Redistribution's in binary form must reproduce the above copyright notice,
    24  //     this list of conditions and the following disclaimer in the documentation
    25  //     and/or other materials provided with the distribution.
    26  //
    27  //   * The name of the copyright holders may not be used to endorse or promote products
    28  //     derived from this software without specific prior written permission.
    29  //
    30  // This software is provided by the copyright holders and contributors "as is" and
    31  // any express or implied warranties, including, but not limited to, the implied
    32  // warranties of merchantability and fitness for a particular purpose are disclaimed.
    33  // In no event shall the Intel Corporation or contributors be liable for any direct,
    34  // indirect, incidental, special, exemplary, or consequential damages
    35  // (including, but not limited to, procurement of substitute goods or services;
    36  // loss of use, data, or profits; or business interruption) however caused
    37  // and on any theory of liability, whether in contract, strict liability,
    38  // or tort (including negligence or otherwise) arising in any way out of
    39  // the use of this software, even if advised of the possibility of such damage.
    40  //
    41  //M*/
    42  
    43  #ifndef OPENCV_PHOTO_CUDA_HPP
    44  #define OPENCV_PHOTO_CUDA_HPP
    45  
    46  #include "opencv2/core/cuda.hpp"
    47  
    48  namespace cv { namespace cuda {
    49  
    50  //! @addtogroup photo_denoise
    51  //! @{
    52  
    53  /** @brief Performs pure non local means denoising without any simplification, and thus it is not fast.
    54  
    55  @param src Source image. Supports only CV_8UC1, CV_8UC2 and CV_8UC3.
    56  @param dst Destination image.
    57  @param h Filter sigma regulating filter strength for color.
    58  @param search_window Size of search window.
    59  @param block_size Size of block used for computing weights.
    60  @param borderMode Border type. See borderInterpolate for details. BORDER_REFLECT101 ,
    61  BORDER_REPLICATE , BORDER_CONSTANT , BORDER_REFLECT and BORDER_WRAP are supported for now.
    62  @param stream Stream for the asynchronous version.
    63  
    64  @sa
    65     fastNlMeansDenoising
    66   */
    67  CV_EXPORTS void nonLocalMeans(InputArray src, OutputArray dst,
    68                                float h,
    69                                int search_window = 21,
    70                                int block_size = 7,
    71                                int borderMode = BORDER_DEFAULT,
    72                                Stream& stream = Stream::Null());
    73  
    74  /** @brief Perform image denoising using Non-local Means Denoising algorithm
    75  <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising> with several computational
    76  optimizations. Noise expected to be a gaussian white noise
    77  
    78  @param src Input 8-bit 1-channel, 2-channel or 3-channel image.
    79  @param dst Output image with the same size and type as src .
    80  @param h Parameter regulating filter strength. Big h value perfectly removes noise but also
    81  removes image details, smaller h value preserves details but also preserves some noise
    82  @param search_window Size in pixels of the window that is used to compute weighted average for
    83  given pixel. Should be odd. Affect performance linearly: greater search_window - greater
    84  denoising time. Recommended value 21 pixels
    85  @param block_size Size in pixels of the template patch that is used to compute weights. Should be
    86  odd. Recommended value 7 pixels
    87  @param stream Stream for the asynchronous invocations.
    88  
    89  This function expected to be applied to grayscale images. For colored images look at
    90  FastNonLocalMeansDenoising::labMethod.
    91  
    92  @sa
    93     fastNlMeansDenoising
    94   */
    95  CV_EXPORTS void fastNlMeansDenoising(InputArray src, OutputArray dst,
    96                                       float h,
    97                                       int search_window = 21,
    98                                       int block_size = 7,
    99                                       Stream& stream = Stream::Null());
   100  
   101  /** @brief Modification of fastNlMeansDenoising function for colored images
   102  
   103  @param src Input 8-bit 3-channel image.
   104  @param dst Output image with the same size and type as src .
   105  @param h_luminance Parameter regulating filter strength. Big h value perfectly removes noise but
   106  also removes image details, smaller h value preserves details but also preserves some noise
   107  @param photo_render float The same as h but for color components. For most images value equals 10 will be
   108  enough to remove colored noise and do not distort colors
   109  @param search_window Size in pixels of the window that is used to compute weighted average for
   110  given pixel. Should be odd. Affect performance linearly: greater search_window - greater
   111  denoising time. Recommended value 21 pixels
   112  @param block_size Size in pixels of the template patch that is used to compute weights. Should be
   113  odd. Recommended value 7 pixels
   114  @param stream Stream for the asynchronous invocations.
   115  
   116  The function converts image to CIELAB colorspace and then separately denoise L and AB components
   117  with given h parameters using FastNonLocalMeansDenoising::simpleMethod function.
   118  
   119  @sa
   120     fastNlMeansDenoisingColored
   121   */
   122  CV_EXPORTS void fastNlMeansDenoisingColored(InputArray src, OutputArray dst,
   123                                              float h_luminance, float photo_render,
   124                                              int search_window = 21,
   125                                              int block_size = 7,
   126                                              Stream& stream = Stream::Null());
   127  
   128  //! @} photo
   129  
   130  }} // namespace cv { namespace cuda {
   131  
   132  #endif /* OPENCV_PHOTO_CUDA_HPP */