Renesas / opencv-lib

Dependents:   RZ_A2M_Mbed_samples

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers cuda.hpp Source File

cuda.hpp

00001 /*M///////////////////////////////////////////////////////////////////////////////////////
00002 //
00003 //  IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
00004 //
00005 //  By downloading, copying, installing or using the software you agree to this license.
00006 //  If you do not agree to this license, do not download, install,
00007 //  copy or use the software.
00008 //
00009 //
00010 //                           License Agreement
00011 //                For Open Source Computer Vision Library
00012 //
00013 // Copyright (C) 2000-2008, Intel Corporation, all rights reserved.
00014 // Copyright (C) 2008-2012, Willow Garage Inc., all rights reserved.
00015 // Third party copyrights are property of their respective owners.
00016 //
00017 // Redistribution and use in source and binary forms, with or without modification,
00018 // are permitted provided that the following conditions are met:
00019 //
00020 //   * Redistribution's of source code must retain the above copyright notice,
00021 //     this list of conditions and the following disclaimer.
00022 //
00023 //   * Redistribution's in binary form must reproduce the above copyright notice,
00024 //     this list of conditions and the following disclaimer in the documentation
00025 //     and/or other materials provided with the distribution.
00026 //
00027 //   * The name of the copyright holders may not be used to endorse or promote products
00028 //     derived from this software without specific prior written permission.
00029 //
00030 // This software is provided by the copyright holders and contributors "as is" and
00031 // any express or implied warranties, including, but not limited to, the implied
00032 // warranties of merchantability and fitness for a particular purpose are disclaimed.
00033 // In no event shall the Intel Corporation or contributors be liable for any direct,
00034 // indirect, incidental, special, exemplary, or consequential damages
00035 // (including, but not limited to, procurement of substitute goods or services;
00036 // loss of use, data, or profits; or business interruption) however caused
00037 // and on any theory of liability, whether in contract, strict liability,
00038 // or tort (including negligence or otherwise) arising in any way out of
00039 // the use of this software, even if advised of the possibility of such damage.
00040 //
00041 //M*/
00042 
00043 #ifndef OPENCV_PHOTO_CUDA_HPP
00044 #define OPENCV_PHOTO_CUDA_HPP
00045 
00046 #include "opencv2/core/cuda.hpp"
00047 
00048 namespace cv { namespace cuda {
00049 
00050 //! @addtogroup photo_denoise
00051 //! @{
00052 
00053 /** @brief Performs pure non local means denoising without any simplification, and thus it is not fast.
00054 
00055 @param src Source image. Supports only CV_8UC1, CV_8UC2 and CV_8UC3.
00056 @param dst Destination image.
00057 @param h Filter sigma regulating filter strength for color.
00058 @param search_window Size of search window.
00059 @param block_size Size of block used for computing weights.
00060 @param borderMode Border type. See borderInterpolate for details. BORDER_REFLECT101 ,
00061 BORDER_REPLICATE , BORDER_CONSTANT , BORDER_REFLECT and BORDER_WRAP are supported for now.
00062 @param stream Stream for the asynchronous version.
00063 
00064 @sa
00065    fastNlMeansDenoising
00066  */
00067 CV_EXPORTS void nonLocalMeans(InputArray src, OutputArray dst,
00068                               float h,
00069                               int search_window = 21,
00070                               int block_size = 7,
00071                               int borderMode = BORDER_DEFAULT,
00072                               Stream& stream = Stream::Null());
00073 
00074 /** @brief Perform image denoising using Non-local Means Denoising algorithm
00075 <http://www.ipol.im/pub/algo/bcm_non_local_means_denoising> with several computational
00076 optimizations. Noise expected to be a gaussian white noise
00077 
00078 @param src Input 8-bit 1-channel, 2-channel or 3-channel image.
00079 @param dst Output image with the same size and type as src .
00080 @param h Parameter regulating filter strength. Big h value perfectly removes noise but also
00081 removes image details, smaller h value preserves details but also preserves some noise
00082 @param search_window Size in pixels of the window that is used to compute weighted average for
00083 given pixel. Should be odd. Affect performance linearly: greater search_window - greater
00084 denoising time. Recommended value 21 pixels
00085 @param block_size Size in pixels of the template patch that is used to compute weights. Should be
00086 odd. Recommended value 7 pixels
00087 @param stream Stream for the asynchronous invocations.
00088 
00089 This function expected to be applied to grayscale images. For colored images look at
00090 FastNonLocalMeansDenoising::labMethod.
00091 
00092 @sa
00093    fastNlMeansDenoising
00094  */
00095 CV_EXPORTS void fastNlMeansDenoising(InputArray src, OutputArray dst,
00096                                      float h,
00097                                      int search_window = 21,
00098                                      int block_size = 7,
00099                                      Stream& stream = Stream::Null());
00100 
00101 /** @brief Modification of fastNlMeansDenoising function for colored images
00102 
00103 @param src Input 8-bit 3-channel image.
00104 @param dst Output image with the same size and type as src .
00105 @param h_luminance Parameter regulating filter strength. Big h value perfectly removes noise but
00106 also removes image details, smaller h value preserves details but also preserves some noise
00107 @param photo_render float The same as h but for color components. For most images value equals 10 will be
00108 enough to remove colored noise and do not distort colors
00109 @param search_window Size in pixels of the window that is used to compute weighted average for
00110 given pixel. Should be odd. Affect performance linearly: greater search_window - greater
00111 denoising time. Recommended value 21 pixels
00112 @param block_size Size in pixels of the template patch that is used to compute weights. Should be
00113 odd. Recommended value 7 pixels
00114 @param stream Stream for the asynchronous invocations.
00115 
00116 The function converts image to CIELAB colorspace and then separately denoise L and AB components
00117 with given h parameters using FastNonLocalMeansDenoising::simpleMethod function.
00118 
00119 @sa
00120    fastNlMeansDenoisingColored
00121  */
00122 CV_EXPORTS void fastNlMeansDenoisingColored(InputArray src, OutputArray dst,
00123                                             float h_luminance, float photo_render,
00124                                             int search_window = 21,
00125                                             int block_size = 7,
00126                                             Stream& stream = Stream::Null());
00127 
00128 //! @} photo
00129 
00130 }} // namespace cv { namespace cuda {
00131 
00132 #endif /* OPENCV_PHOTO_CUDA_HPP */