OpenCV 4.13.0
开源计算机视觉库 (Open Source Computer Vision)
正在加载...
正在搜索...
未找到匹配项

详细说明

函数

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::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, 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::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::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::fastNlMeansDenoisingColored (InputArray src, OutputArray dst, float h=3, float hColor=3, int templateWindowSize=7, int searchWindowSize=21)
 针对彩色图像修改的 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 函数的修改,适用于连续图像在短时间内捕获的图像序列。例如视频。此版本的函数适用于灰度图像或颜色空间的手动操作。更多详情请参见[46](可在此开放获取)。
 
void cv::fastNlMeansDenoisingMulti (InputArrayOfArrays srcImgs, OutputArray dst, int imgToDenoiseIndex, int temporalWindowSize, float h=3, int templateWindowSize=7, int searchWindowSize=21)
 对 fastNlMeansDenoising 函数的修改,适用于连续图像在短时间内捕获的图像序列。例如视频。此版本的函数适用于灰度图像或颜色空间的手动操作。更多详情请参见[46](可在此开放获取)。
 
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())
 执行纯非局部均值去噪,没有任何简化,因此速度不快。
 

函数文档 (Function Documentation)

◆ denoise_TVL1()

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

#include <opencv2/photo.hpp>

原对偶算法是一种求解特殊变分问题(即找到一个函数使某个泛函最小化)的算法。由于图像去噪,特别是,可以被视为一个变分问题,因此原对偶算法可以用于执行去噪,这正是此处实现的。

需要注意的是,这个实现来自2013年7月的博客文章 [204],其中也包含了(略微更通用)可直接使用的Python源代码。随后,Vadim Pisarevsky 于2013年7月底使用 OpenCV 将该代码用 C++ 重写,最终由后来的作者稍作修改。

尽管该算法的详细讨论和论证可在 [51] 中找到,但在此处简要概述一下可能会有所帮助,遵循 [204] 。首先,我们将1字节灰度图像视为从矩形像素域(可视为对于某些 \(m,\;n\in\mathbb{N}\) 的集合 \(\left\{(x,y)\in\mathbb{N}\times\mathbb{N}\mid 1\leq x\leq n,\;1\leq y\leq m\right\}\))到 \(\{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\) 视为一个函数,这正是我们试图最小化的泛函,而原对偶算法在此处发挥作用。

参数
观测值此数组应包含要恢复图像的一个或多个带噪声版本。
result去噪后的图像将存储在此处。无需预先分配存储空间,因为在必要时会自动分配。
lambda对应于上述公式中的 \(\lambda\)。随着它的增大,平滑(模糊)的图像比细节丰富(但可能噪声更多)的图像更受青睐。粗略地说,随着它的变小,结果会更模糊,但更严重的离群值将被去除。
迭代次数算法将运行的迭代次数。当然,迭代次数越多越好,但很难定量地细化这个说法,所以只需使用默认值,如果结果不佳则增加它。

◆ 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() )
内联
Python
cv.cuda.fastNlMeansDenoising(src, h[, dst[, search_window[, block_size[, stream]]]]) -> dst

#include <opencv2/photo/cuda.hpp>

此函数的调用图

◆ fastNlMeansDenoising() [2/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 执行图像去噪,并进行了多项计算优化。预期噪声为高斯白噪声。

参数
src输入 8 位 1 通道、2 通道或 3 通道图像。
dst输出图像与 src 具有相同的尺寸和类型。
h调节滤波器强度的参数。较大的 h 值可以完美去除噪声,但也去除图像细节;较小的 h 值保留细节,但也保留一些噪声。
搜索窗口用于计算给定像素加权平均值的窗口的像素大小。应为奇数。线性影响性能:搜索窗口越大 - 去噪时间越长。推荐值为 21 像素。
block_size用于计算权重的模板块的像素大小。应为奇数。推荐值为 7 像素。
用于异步调用的

此函数预期应用于灰度图像。对于彩色图像,请查看 FastNonLocalMeansDenoising::labMethod。

另请参阅
fastNlMeansDenoising

◆ fastNlMeansDenoising() [3/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 具有相同的尺寸和类型。
模板窗口大小用于计算权重的模板块的像素大小。应为奇数。推荐值为 7 像素。
搜索窗口大小用于计算给定像素加权平均值的窗口的像素大小。应为奇数。线性影响性能:搜索窗口越大 - 去噪时间越长。推荐值为 21 像素。
h调节滤波器强度的参数数组,可以是一个参数应用于所有通道,也可以是 dst 中每个通道一个参数。较大的 h 值可以完美去除噪声,但也去除图像细节;较小的 h 值保留细节,但也保留一些噪声。
normType用于权重计算的范数类型。可以是 NORM_L2 或 NORM_L1。

此函数预期应用于灰度图像。对于彩色图像,请查看 fastNlMeansDenoisingColored。此函数的更高级用法可以是手动对不同颜色空间中的彩色图像进行去噪。fastNlMeansDenoisingColored 中采用了这种方法,通过将图像转换为 CIELAB 颜色空间,然后使用不同的 h 参数分别对 L 和 AB 分量进行去噪。

◆ 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 具有相同的尺寸和类型。
模板窗口大小用于计算权重的模板块的像素大小。应为奇数。推荐值为 7 像素。
搜索窗口大小用于计算给定像素加权平均值的窗口的像素大小。应为奇数。线性影响性能:搜索窗口越大 - 去噪时间越长。推荐值为 21 像素。
h调节滤波器强度的参数。较大的 h 值可以完美去除噪声,但也去除图像细节;较小的 h 值保留细节,但也保留一些噪声。

此函数预期应用于灰度图像。对于彩色图像,请查看 fastNlMeansDenoisingColored。此函数的更高级用法可以是手动对不同颜色空间中的彩色图像进行去噪。fastNlMeansDenoisingColored 中采用了这种方法,通过将图像转换为 CIELAB 颜色空间,然后使用不同的 h 参数分别对 L 和 AB 分量进行去噪。

◆ fastNlMeansDenoisingColored() [1/3]

void cv::cuda::fastNlMeansDenoisingColored ( const GpuMat & src,
GpuMat & dst,
float 亮度h,
float 照片渲染,
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>

此函数的调用图

◆ fastNlMeansDenoisingColored() [2/3]

void cv::cuda::fastNlMeansDenoisingColored ( InputArray src,
OutputArray dst,
float 亮度h,
float 照片渲染,
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调节滤波器强度的参数。较大的 h 值可以完美去除噪声,但也去除图像细节;较小的 h 值保留细节,但也保留一些噪声。
照片渲染浮点数 与 h 相同,但用于颜色分量。对于大多数图像,值等于 10 将足以去除彩色噪声且不扭曲颜色。
搜索窗口用于计算给定像素加权平均值的窗口的像素大小。应为奇数。线性影响性能:搜索窗口越大 - 去噪时间越长。推荐值为 21 像素。
block_size用于计算权重的模板块的像素大小。应为奇数。推荐值为 7 像素。
用于异步调用的

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

另请参阅
fastNlMeansDenoisingColored

◆ fastNlMeansDenoisingColored() [3/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 具有相同的尺寸和类型。
模板窗口大小用于计算权重的模板块的像素大小。应为奇数。推荐值为 7 像素。
搜索窗口大小用于计算给定像素加权平均值的窗口的像素大小。应为奇数。线性影响性能:搜索窗口越大 - 去噪时间越长。推荐值为 21 像素。
h调节亮度分量滤波器强度的参数。h 值越大,去噪效果越好,但也会去除图像细节;h 值越小,保留细节,但也会保留一些噪声。
颜色h与 h 相同,但用于颜色分量。对于大多数图像,值等于 10 将足以去除彩色噪声且不扭曲颜色。

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

◆ fastNlMeansDenoisingColoredMulti()

void cv::fastNlMeansDenoisingColoredMulti ( InputArrayOfArrays 源图像,
OutputArray dst,
int 待去噪图像索引,
int 时间窗口大小,
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 函数的修改。

参数
源图像输入 8 位 3 通道图像序列。所有图像应具有相同的类型和大小。
待去噪图像索引srcImgs 序列中要去噪的目标图像索引。
时间窗口大小用于目标图像去噪的周围图像数量。应为奇数。srcImgs 中从 imgToDenoiseIndex - temporalWindowSize / 2 到 imgToDenoiseIndex + temporalWindowSize / 2 的图像将用于对 srcImgs[imgToDenoiseIndex] 图像进行去噪。
dst与 srcImgs 图像具有相同大小和类型的输出图像。
模板窗口大小用于计算权重的模板块的像素大小。应为奇数。推荐值为 7 像素。
搜索窗口大小用于计算给定像素加权平均值的窗口的像素大小。应为奇数。线性影响性能:搜索窗口越大 - 去噪时间越长。推荐值为 21 像素。
h调节亮度分量滤波器强度的参数。h 值越大,去噪效果越好,但也会去除图像细节;h 值越小,保留细节,但也会保留一些噪声。
颜色h与 h 相同,但用于颜色分量。

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

◆ fastNlMeansDenoisingMulti() [1/2]

void cv::fastNlMeansDenoisingMulti ( InputArrayOfArrays 源图像,
OutputArray dst,
int 待去噪图像索引,
int 时间窗口大小,
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 函数的修改,适用于连续图像在短时间内捕获的图像序列。例如视频。此版本的函数适用于灰度图像或颜色空间的手动操作。更多详情请参见[46](可在此开放获取)。

参数
源图像输入 8 位或 16 位(仅限 NORM_L1)1 通道、2 通道、3 通道或 4 通道图像序列。所有图像应具有相同的类型和大小。
待去噪图像索引srcImgs 序列中要去噪的目标图像索引。
时间窗口大小用于目标图像去噪的周围图像数量。应为奇数。srcImgs 中从 imgToDenoiseIndex - temporalWindowSize / 2 到 imgToDenoiseIndex + temporalWindowSize / 2 的图像将用于对 srcImgs[imgToDenoiseIndex] 图像进行去噪。
dst与 srcImgs 图像具有相同大小和类型的输出图像。
模板窗口大小用于计算权重的模板块的像素大小。应为奇数。推荐值为 7 像素。
搜索窗口大小用于计算给定像素加权平均值的窗口的像素大小。应为奇数。线性影响性能:搜索窗口越大 - 去噪时间越长。推荐值为 21 像素。
h调节滤波器强度的参数数组,可以是一个参数应用于所有通道,也可以是 dst 中每个通道一个参数。较大的 h 值可以完美去除噪声,但也去除图像细节;较小的 h 值保留细节,但也保留一些噪声。
normType用于权重计算的范数类型。可以是 NORM_L2 或 NORM_L1。

◆ fastNlMeansDenoisingMulti() [2/2]

void cv::fastNlMeansDenoisingMulti ( InputArrayOfArrays 源图像,
OutputArray dst,
int 待去噪图像索引,
int 时间窗口大小,
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 函数的修改,适用于连续图像在短时间内捕获的图像序列。例如视频。此版本的函数适用于灰度图像或颜色空间的手动操作。更多详情请参见[46](可在此开放获取)。

参数
源图像输入 8 位 1 通道、2 通道、3 通道或 4 通道图像序列。所有图像应具有相同的类型和大小。
待去噪图像索引srcImgs 序列中要去噪的目标图像索引。
时间窗口大小用于目标图像去噪的周围图像数量。应为奇数。srcImgs 中从 imgToDenoiseIndex - temporalWindowSize / 2 到 imgToDenoiseIndex + temporalWindowSize / 2 的图像将用于对 srcImgs[imgToDenoiseIndex] 图像进行去噪。
dst与 srcImgs 图像具有相同大小和类型的输出图像。
模板窗口大小用于计算权重的模板块的像素大小。应为奇数。推荐值为 7 像素。
搜索窗口大小用于计算给定像素加权平均值的窗口的像素大小。应为奇数。线性影响性能:搜索窗口越大 - 去噪时间越长。推荐值为 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() )
内联
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目标图像。
h滤波器 sigma,调节颜色滤波器的强度。
搜索窗口搜索窗口大小。
block_size用于计算权重的块大小。
borderMode边框类型。有关详细信息,请参见 borderInterpolate。目前支持 BORDER_REFLECT101、BORDER_REPLICATE、BORDER_CONSTANT、BORDER_REFLECT 和 BORDER_WRAP。
Stream 用于异步版本。
另请参阅
fastNlMeansDenoising