~paparazzi-uav/paparazzi/v5.0-manual

« back to all changes in this revision

Viewing changes to sw/ext/opencv_bebop/opencv/modules/photo/include/opencv2/photo/cuda.hpp

  • Committer: Paparazzi buildbot
  • Date: 2016-05-18 15:00:29 UTC
  • Revision ID: felix.ruess+docbot@gmail.com-20160518150029-e8lgzi5kvb4p7un9
Manual import commit 4b8bbb730080dac23cf816b98908dacfabe2a8ec from v5.0 branch.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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__ */