OpenCVnbsp;4.10.0
Open Source计算机视觉
正在加载...
正在搜索...
没有匹配项
函数

详细说明

函数

void cv::denoise_TVL1 (const std::vector< Mat > &observations, Mat &result, double lambda=1.0, int niters=30)
 原始对偶算法是一种用于求解特殊类型变分问题(即寻找某个泛函最小值的函数)的算法。特别是,由于图像去噪可视为变分问题,因此原始对偶算法可用于执行去噪,这正是其实现内容。
 
void cv::cuda::fastNlMeansDenoising (const GpuMat &src, GpuMat &dst, float h, int search_window=21, int block_size=7, Stream &stream=Stream::Null())
 
void cv::fastNlMeansDenoising (InputArray src, OutputArray dst, const std::vector< float > &h, int templateWindowSize=7, int searchWindowSize=21, int normType=NORM_L2)
 使用非局部均值去噪算法执行图像去噪 http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/,并进行了一些计算优化。噪声预计为高斯白噪声。
 
void cv::cuda::fastNlMeansDenoising (InputArray src, OutputArray dst, float h, int search_window=21, int block_size=7, Stream &stream=Stream::Null())
 使用非局部均值去噪算法执行图像去噪 http://www.ipol.im/pub/algo/bcm_non_local_means_denoising,并进行了一些计算优化。噪声预计为高斯白噪声。
 
void cv::fastNlMeansDenoising (InputArray src, OutputArray dst, float h=3, int templateWindowSize=7, int searchWindowSize=21)
 使用非局部均值去噪算法执行图像去噪 http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/,并进行了一些计算优化。噪声预计为高斯白噪声。
 
void cv::cuda::fastNlMeansDenoisingColored (const GpuMat &src, GpuMat &dst, float h_luminance, float photo_render, int search_window=21, int block_size=7, Stream &stream=Stream::Null())
 
void cv::fastNlMeansDenoisingColored (InputArray src, OutputArray dst, float h=3, float hColor=3, int templateWindowSize=7, int searchWindowSize=21)
 彩图中的 fastNlMeansDenoising 函数的修改版。
 
void cv::cuda::fastNlMeansDenoisingColored (InputArray src, OutputArray dst, float h_luminance, float photo_render, int search_window=21, int block_size=7, Stream &stream=Stream::Null())
 彩图中的 fastNlMeansDenoising 函数的修改版。
 
void cv::fastNlMeansDenoisingColoredMulti (InputArrayOfArrays srcImgs, OutputArray dst, int imgToDenoiseIndex, int temporalWindowSize, float h=3, float hColor=3, int templateWindowSize=7, int searchWindowSize=21)
 彩图序列中 fastNlMeansDenoisingMulti 函数的修改版。
 
void cv::fastNlMeansDenoisingMulti (InputArrayOfArrays srcImgs, OutputArray dst, int imgToDenoiseIndex, int temporalWindowSize, const std::vector< float > &h, int templateWindowSize=7, int searchWindowSize=21, int normType=NORM_L2)
 图像序列中 fastNlMeansDenoising 函数的修改版,其中连续的图像在很短的时间内被捕获。例如视频。此版本的函数适用于灰度图像或手动操纵色彩空间。有关更多详细信息,请参阅 [44](开放访问权限 此处)。
 
void cv::fastNlMeansDenoisingMulti (InputArrayOfArrays srcImgs, OutputArray dst, int imgToDenoiseIndex, int temporalWindowSize, float h=3, int templateWindowSize=7, int searchWindowSize=21)
 图像序列中 fastNlMeansDenoising 函数的修改版,其中连续的图像在很短的时间内被捕获。例如视频。此版本的函数适用于灰度图像或手动操纵色彩空间。有关更多详细信息,请参阅 [44](开放访问权限 此处)。
 
void cv::cuda::nonLocalMeans (const GpuMat &src, GpuMat &dst, float h, int search_window=21, int block_size=7, int borderMode=BORDER_DEFAULT, Stream &stream=Stream::Null())
 
void cv::cuda::nonLocalMeans (InputArray src, OutputArray dst, float h, int search_window=21, int block_size=7, int borderMode=BORDER_DEFAULT, Stream &stream=Stream::Null())
 执行纯的非局部均值去噪,没有任何简化,因此这种方法并不快。
 

函数文档

◆ denoise_TVL1()

void cv::denoise_TVL1 ( const std::vector< Mat > &  observations,
Mat result,
double  lambda = 1.0,
int  niters = 30 
)
Python
cv.denoise_TVL1(observations, result[, lambda_[, niters]]) -> None

#include <opencv2/photo.hpp>

原始对偶算法是一种用于求解特殊类型变分问题(即寻找某个泛函最小值的函数)的算法。特别是,由于图像去噪可视为变分问题,因此原始对偶算法可用于执行去噪,这正是其实现内容。

值得注意的是,本实现取自 2013 年 7 月的博客文章 [198],其中还包含 Python 平台上可供使用的(稍微通用的)现成源代码。随后,这段代码在 Vadim Pisarevsky 的参与下于 2013 年 7 月底使用 OpenCV 重写为 C++,最后由后来的作者进行了少量改编。

虽然有关算法的详尽讨论和论证可以在 [49] 中找到,但按照 [198] 的思路,将它简要浏览一遍可能更有意义。首先,我们将 1 字节灰度图像视为从像素的矩形域(可以看作集合 \(\left\{(x,y)\in\mathbb{N}\times\mathbb{N}\mid 1\leq x\leq n,\;1\leq y\leq m\right\}\) 对一些 \(m,\;n\in\mathbb{N}\))到 \(\{0,1,\dots,255\}\) 的函数。我们将噪声图像表示为 \(f_i\) ,并以此视图为准,给定一个相同大小的图像 \(x\),我们可以通过以下公式测量图像的差度

\[\left\|\left\|\nabla x\right\|\right\| + \lambda\sum_i\left\|\left\|x-f_i\right\|\right\|\]

\(\|\|\cdot\|\|\) 在此表示 \(L_2\)-范数,您会看到第一加数说明我们希望图像平滑(理想状态下,梯度为零,因此保持恒定),第二加数说明我们希望结果接近于获得的观测。如果我们将 \(x\) 视为函数,这样正好是我们希望最小化的泛函,而原始对偶算法开始发挥作用。

参数
observations此数组应包含一张或多张待恢复图像的噪声版本。
result在此存储去噪图像。无需预先分配存储空间,因为在必要时会自动分配。
lambda对应于上面公式中的 \(\lambda\)。随着其扩大,平滑(模糊)图像的处理比详细(但可能更噪声)的图像更受青睐。粗略来说,随着其变小,结果将更模糊,但将移除更严重的离群值。
niters算法将运行的迭代次数。当然,迭代次数越多越好,但很难定量精化此声明,因此只需使用默认值,在结果较差时增加该值即可。

◆ fastNlMeansDenoising() [1/4]

void cv::cuda::fastNlMeansDenoising ( const GpuMat src,
GpuMat dst,
float  h,
int  search_window = 21,
int  block_size = 7,
Stream stream = Stream::Null() 
)
inline
Python
cv.cuda.fastNlMeansDenoising(src, h[, dst[, search_window[, block_size[, stream]]]]) -> dst

#include <opencv2/photo/cuda.hpp>

以下是此函数的调用图

◆ fastNlMeansDenoising() [2/4]

void cv::fastNlMeansDenoising ( InputArray  src,
OutputArray  dst,
const std::vector< float > &  h,
int  templateWindowSize = 7,
int  searchWindowSize = 21,
int  normType = NORM_L2 
)
Python
cv.fastNlMeansDenoising(src[, dst[, h[, templateWindowSize[, searchWindowSize]]]]) -> dst
cv.fastNlMeansDenoising(src, h[, dst[, templateWindowSize[, searchWindowSize[, normType]]]]) -> dst

#include <opencv2/photo.hpp>

使用非局部均值去噪算法执行图像去噪 http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/,并进行了一些计算优化。噪声预计为高斯白噪声。

参数
src输入 8 位或 16 位(仅适用于 NORM_L1)1 通道、2 通道、3 通道或 4 通道图像。
dst输出图像,其大小和类型与 src 相同。
templateWindowSize用于计算权重的模板块的像素大小。该值应为奇数。建议值 7 像素
searchWindowSize用于针对给定像素计算加权平均的窗口的像素大小。该值应为奇数。线性影响性能:searchWindowsSize 较大 - 去噪时间更长。建议值 21 像素
h用于调节滤波强度 (应用于 dst 中的一个参数或每个通道) 的参数数组。较大的 h 值可以很好地去除噪点,但也去除图像细节;较小的 h 值保留细节,但也保留一些噪点
normType用于计算权重的范数类型。可以为 NORM_L2 或 NORM_L1

此函数应适用于灰度图像。对于彩色图像,请参考 fastNlMeansDenoisingColored。此函数的高级用法可以是手动去噪不同颜色空间的彩色图像。这种方法在 fastNlMeansDenoisingColored 中使用,将图像转换为 CIELAB 颜色空间,然后分别使用不同的 h 参数去噪 L 和 AB 分量。

◆ fastNlMeansDenoising() [3/4]

void cv::cuda::fastNlMeansDenoising ( InputArray  src,
OutputArray  dst,
float  h,
int  search_window = 21,
int  block_size = 7,
Stream stream = Stream::Null() 
)
Python
cv.cuda.fastNlMeansDenoising(src, h[, dst[, search_window[, block_size[, stream]]]]) -> dst

#include <opencv2/photo/cuda.hpp>

使用非局部均值去噪算法执行图像去噪 http://www.ipol.im/pub/algo/bcm_non_local_means_denoising,并进行了一些计算优化。噪声预计为高斯白噪声。

参数
src8 位 1 通道、2 通道或 3 通道图像输入。
dst输出图像,其大小和类型与 src 相同。
h调节滤波强度的参数。较大的 h 值可以很好地去除噪点,但也去除图像细节;较小的 h 值保留细节,但也保留一些噪点
search_window用于针对给定像素计算加权平均的窗口的像素大小。该值应为奇数。线性影响性能:search_window 较大 - 去噪时间更长。建议值 21 像素
block_size用于计算权重的模板块的像素大小。该值应为奇数。建议值 7 像素
streamStream 用于异步调用。

此函数应适用于灰度图像。对于彩色图像,请参考 FastNonLocalMeansDenoising::labMethod。

另请参阅
fastNlMeansDenoising

◆ fastNlMeansDenoising() [4/4]

void cv::fastNlMeansDenoising ( InputArray  src,
OutputArray  dst,
float  h = 3,
int  templateWindowSize = 7,
int  searchWindowSize = 21 
)
Python
cv.fastNlMeansDenoising(src[, dst[, h[, templateWindowSize[, searchWindowSize]]]]) -> dst
cv.fastNlMeansDenoising(src, h[, dst[, templateWindowSize[, searchWindowSize[, normType]]]]) -> dst

#include <opencv2/photo.hpp>

使用非局部均值去噪算法执行图像去噪 http://www.ipol.im/pub/algo/bcm_non_local_means_denoising/,并进行了一些计算优化。噪声预计为高斯白噪声。

参数
src输入 8 位 1 通道、2 通道、3 通道或 4 通道图像。
dst输出图像,其大小和类型与 src 相同。
templateWindowSize用于计算权重的模板块的像素大小。该值应为奇数。建议值 7 像素
searchWindowSize用于针对给定像素计算加权平均的窗口的像素大小。该值应为奇数。线性影响性能:searchWindowsSize 较大 - 去噪时间更长。建议值 21 像素
h调节滤波强度的参数。较大的 h 值可以很好地去除噪点,但也去除图像细节;较小的 h 值保留细节,但也保留一些噪点

此函数应适用于灰度图像。对于彩色图像,请参考 fastNlMeansDenoisingColored。此函数的高级用法可以是手动去噪不同颜色空间的彩色图像。这种方法在 fastNlMeansDenoisingColored 中使用,将图像转换为 CIELAB 颜色空间,然后分别使用不同的 h 参数去噪 L 和 AB 分量。

◆ fastNlMeansDenoisingColored() [1/3]

void cv::cuda::fastNlMeansDenoisingColored ( const GpuMat src,
GpuMat dst,
float  h_luminance,
float  photo_render,
int  search_window = 21,
int  block_size = 7,
Stream stream = Stream::Null() 
)
inline
Python
cv.cuda.fastNlMeansDenoisingColored(src, h_luminance, photo_render[, dst[, search_window[, block_size[, stream]]]]) -> dst

#include <opencv2/photo/cuda.hpp>

以下是此函数的调用图

◆ fastNlMeansDenoisingColored() [2/3]

void cv::fastNlMeansDenoisingColored ( InputArray  src,
OutputArray  dst,
float  h = 3,
float  hColor = 3,
int  templateWindowSize = 7,
int  searchWindowSize = 21 
)
Python
cv.fastNlMeansDenoisingColored(src[, dst[, h[, hColor[, templateWindowSize[, searchWindowSize]]]]]) -> dst

#include <opencv2/photo.hpp>

彩图中的 fastNlMeansDenoising 函数的修改版。

参数
src输入 8 位 3 通道图像。
dst输出图像,其大小和类型与 src 相同。
templateWindowSize用于计算权重的模板块的像素大小。该值应为奇数。建议值 7 像素
searchWindowSize用于针对给定像素计算加权平均的窗口的像素大小。该值应为奇数。线性影响性能:searchWindowsSize 较大 - 去噪时间更长。建议值 21 像素
h调节明亮度分量的滤波强度的参数。较大的 h 值可以很好地去除噪点,但也去除图像细节;较小的 h 值保留细节,但也保留一些噪点
hColor与 h 相同,但适用于色彩分量。对于大多数图像,值为 10 就足以去除彩噪并且不会失真颜色

该函数将图像转化为 CIELAB 颜色空间,然后使用 fastNlMeansDenoising 函数分别去噪具有给定 h 参数的 L 和 AB 分量。

◆ fastNlMeansDenoisingColored() [3/3]

void cv::cuda::fastNlMeansDenoisingColored ( InputArray  src,
OutputArray  dst,
float  h_luminance,
float  photo_render,
int  search_window = 21,
int  block_size = 7,
Stream stream = Stream::Null() 
)
Python
cv.cuda.fastNlMeansDenoisingColored(src, h_luminance, photo_render[, dst[, search_window[, block_size[, stream]]]]) -> dst

#include <opencv2/photo/cuda.hpp>

彩图中的 fastNlMeansDenoising 函数的修改版。

参数
src输入 8 位 3 通道图像。
dst输出图像,其大小和类型与 src 相同。
h_luminance调节滤波强度的参数。较大的 h 值可以很好地去除噪点,但也去除图像细节;较小的 h 值保留细节,但也保留一些噪点
photo_renderfloat 与 h 相同,但适用于色彩分量。对于大多数图像,值为 10 就足以去除彩噪并且不会失真颜色
search_window用于针对给定像素计算加权平均的窗口的像素大小。该值应为奇数。线性影响性能:search_window 较大 - 去噪时间更长。建议值 21 像素
block_size用于计算权重的模板块的像素大小。该值应为奇数。建议值 7 像素
streamStream 用于异步调用。

该函数将图像转化为 CIELAB 颜色空间,然后使用 FastNonLocalMeansDenoising::simpleMethod 函数分别去噪具有给定 h 参数的 L 和 AB 分量。

另请参阅
fastNlMeansDenoisingColored

◆ fastNlMeansDenoisingColoredMulti()

void cv::fastNlMeansDenoisingColoredMulti ( InputArrayOfArrays  srcImgs,
OutputArray  dst,
int  imgToDenoiseIndex,
int  temporalWindowSize,
float  h = 3,
float  hColor = 3,
int  templateWindowSize = 7,
int  searchWindowSize = 21 
)
Python
cv.fastNlMeansDenoisingColoredMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize[, dst[, h[, hColor[, templateWindowSize[, searchWindowSize]]]]]) -> dst

#include <opencv2/photo.hpp>

彩图序列中 fastNlMeansDenoisingMulti 函数的修改版。

参数
srcImgs输入 8 位 3 通道图像序列。所有图像的类型和尺寸应该相同。
imgToDenoiseIndexsrcImgs 序列中 去噪目标图像的索引
temporalWindowSize用于目标图像去噪的周围图像数量。应该是奇数。srcImgs 中从 imgToDenoiseIndex - temporalWindowSize / 2 到 imgToDenoiseIndex - temporalWindowSize / 2 的图像将用于对 srcImgs[imgToDenoiseIndex] 图像去噪。
dst尺寸和类型与 srcImgs 图像相同的输出图像。
templateWindowSize用于计算权重的模板块的像素大小。该值应为奇数。建议值 7 像素
searchWindowSize用于针对给定像素计算加权平均的窗口的像素大小。该值应为奇数。线性影响性能:searchWindowsSize 较大 - 去噪时间更长。建议值 21 像素
h调整亮度分量滤波强度的参数。较大的 h 值可以完美去除噪声但也会去除图像细节,而较小的 h 值可以保留细节但也会保留一些噪声。
hColor与 h 相同,但适用于色彩分量。

该函数将图像转化为 CIELAB 颜色空间,然后使用 fastNlMeansDenoisingMulti 函数分别去噪具有给定 h 参数的 L 和 AB 分量。

◆ fastNlMeansDenoisingMulti() [1/2]

void cv::fastNlMeansDenoisingMulti ( InputArrayOfArrays  srcImgs,
OutputArray  dst,
int  imgToDenoiseIndex,
int  temporalWindowSize,
const std::vector< float > &  h,
int  templateWindowSize = 7,
int  searchWindowSize = 21,
int  normType = NORM_L2 
)
Python
cv.fastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize[, dst[, h[, templateWindowSize[, searchWindowSize]]]]) -> dst
cv.fastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, h[, dst[, templateWindowSize[, searchWindowSize[, normType]]]]) -> dst

#include <opencv2/photo.hpp>

图像序列中 fastNlMeansDenoising 函数的修改版,其中连续的图像在很短的时间内被捕获。例如视频。此版本的函数适用于灰度图像或手动操纵色彩空间。有关更多详细信息,请参阅 [44](开放访问权限 此处)。

参数
srcImgs输入 8 位或 16 位(仅适用于 NORM_L1)1 通道、2 通道、3 通道或 4 通道图像序列。所有图像的类型和尺寸应该相同。
imgToDenoiseIndexsrcImgs 序列中 去噪目标图像的索引
temporalWindowSize用于目标图像去噪的周围图像数量。应该是奇数。srcImgs 中从 imgToDenoiseIndex - temporalWindowSize / 2 到 imgToDenoiseIndex - temporalWindowSize / 2 的图像将用于对 srcImgs[imgToDenoiseIndex] 图像去噪。
dst尺寸和类型与 srcImgs 图像相同的输出图像。
templateWindowSize用于计算权重的模板块的像素大小。该值应为奇数。建议值 7 像素
searchWindowSize用于针对给定像素计算加权平均的窗口的像素大小。该值应为奇数。线性影响性能:searchWindowsSize 较大 - 去噪时间更长。建议值 21 像素
h用于调节滤波强度 (应用于 dst 中的一个参数或每个通道) 的参数数组。较大的 h 值可以很好地去除噪点,但也去除图像细节;较小的 h 值保留细节,但也保留一些噪点
normType用于计算权重的范数类型。可以为 NORM_L2 或 NORM_L1

◆ fastNlMeansDenoisingMulti() [2/2]

void cv::fastNlMeansDenoisingMulti ( InputArrayOfArrays  srcImgs,
OutputArray  dst,
int  imgToDenoiseIndex,
int  temporalWindowSize,
float  h = 3,
int  templateWindowSize = 7,
int  searchWindowSize = 21 
)
Python
cv.fastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize[, dst[, h[, templateWindowSize[, searchWindowSize]]]]) -> dst
cv.fastNlMeansDenoisingMulti(srcImgs, imgToDenoiseIndex, temporalWindowSize, h[, dst[, templateWindowSize[, searchWindowSize[, normType]]]]) -> dst

#include <opencv2/photo.hpp>

图像序列中 fastNlMeansDenoising 函数的修改版,其中连续的图像在很短的时间内被捕获。例如视频。此版本的函数适用于灰度图像或手动操纵色彩空间。有关更多详细信息,请参阅 [44](开放访问权限 此处)。

参数
srcImgs输入 8 位 1 通道、2 通道、3 通道或 4 通道图像序列。所有图像的类型和尺寸应该相同。
imgToDenoiseIndexsrcImgs 序列中 去噪目标图像的索引
temporalWindowSize用于目标图像去噪的周围图像数量。应该是奇数。srcImgs 中从 imgToDenoiseIndex - temporalWindowSize / 2 到 imgToDenoiseIndex - temporalWindowSize / 2 的图像将用于对 srcImgs[imgToDenoiseIndex] 图像去噪。
dst尺寸和类型与 srcImgs 图像相同的输出图像。
templateWindowSize用于计算权重的模板块的像素大小。该值应为奇数。建议值 7 像素
searchWindowSize用于针对给定像素计算加权平均的窗口的像素大小。该值应为奇数。线性影响性能:searchWindowsSize 较大 - 去噪时间更长。建议值 21 像素
h调整滤波强度的参数。较大的 h 值可以完美去除噪声但也会去除图像细节,而较小的 h 值可以保留细节但也会保留一些噪声

◆ nonLocalMeans() [1/2]

void cv::cuda::nonLocalMeans ( const GpuMat src,
GpuMat dst,
float  h,
int  search_window = 21,
int  block_size = 7,
int  borderMode = BORDER_DEFAULT,
Stream stream = Stream::Null() 
)
inline
Python
cv.cuda.nonLocalMeans(src, h[, dst[, search_window[, block_size[, borderMode[, stream]]]]]) -> dst

#include <opencv2/photo/cuda.hpp>

以下是此函数的调用图

◆ nonLocalMeans() [2/2]

void cv::cuda::nonLocalMeans ( InputArray  src,
OutputArray  dst,
float  h,
int  search_window = 21,
int  block_size = 7,
int  borderMode = BORDER_DEFAULT,
Stream stream = Stream::Null() 
)
Python
cv.cuda.nonLocalMeans(src, h[, dst[, search_window[, block_size[, borderMode[, stream]]]]]) -> dst

#include <opencv2/photo/cuda.hpp>

执行纯的非局部均值去噪,没有任何简化,因此这种方法并不快。

参数
src源图像。仅支持 CV_8UC1、CV_8UC2 和 CV_8UC3。
dst目标图像。
hFilter 调节颜色的滤波器强度。
search_window搜索窗口大小。
block_size用于计算权重而使用的块的大小。
borderMode边界类型。有关详细信息,请参阅 borderInterpolate。目前支持 BORDER_REFLECT101、BORDER_REPLICATE、BORDER_CONSTANT、BORDER_REFLECT 和 BORDER_WRAP。
streamStream 用于异步版本。
另请参阅
fastNlMeansDenoising