OpenCV 4.11.0
开源计算机视觉库
加载中…
搜索中…
无匹配项

详细描述

函数

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函数的修改,其中连续图像是在短时间内捕获的。例如视频。此版本的函数适用于灰度图像或颜色空间的手动操作。更多详情请参见[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::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值保留细节,但也保留一些噪声。
search_window用于计算给定像素加权平均值的窗口大小(以像素为单位)。应为奇数。线性影响性能:search_window越大,去噪时间越长。推荐值为21像素。
block_size用于计算权重的模板块大小(以像素为单位)。应为奇数。推荐值为7像素。
stream用于异步调用的

此函数预期应用于灰度图像。对于彩色图像,请查看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大小和类型相同的输出图像。
templateWindowSize用于计算权重的模板块大小(以像素为单位)。应为奇数。推荐值为7像素。
searchWindowSize用于计算给定像素加权平均值的窗口大小(以像素为单位)。应为奇数。线性影响性能:searchWindowsSize越大,去噪时间越长。推荐值为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大小和类型相同的输出图像。
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::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_render与h相同,但用于颜色分量。对于大多数图像,值为10足以去除彩色噪声而不失真颜色。
search_window用于计算给定像素加权平均值的窗口大小(以像素为单位)。应为奇数。线性影响性能:search_window越大,去噪时间越长。推荐值为21像素。
block_size用于计算权重的模板块大小(以像素为单位)。应为奇数。推荐值为7像素。
stream用于异步调用的

该函数将图像转换为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大小和类型相同的输出图像。
templateWindowSize用于计算权重的模板块大小(以像素为单位)。应为奇数。推荐值为7像素。
searchWindowSize用于计算给定像素加权平均值的窗口大小(以像素为单位)。应为奇数。线性影响性能:searchWindowsSize越大,去噪时间越长。推荐值为21像素。
h调节亮度分量滤波器强度的参数。较大的h值可以完美去除噪声,但也去除图像细节;较小的h值保留细节,但也保留一些噪声。
hColor与h相同,但用于颜色分量。对于大多数图像,值为10足以去除彩色噪声而不失真颜色。

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

◆ fastNlMeansDenoisingColoredMulti()

void cv::fastNlMeansDenoisingColoredMulti ( 输入数组 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通道图像序列。所有图像应具有相同的类型和大小。
imgToDenoiseIndex在srcImgs序列中需要去噪的目标图像索引。
temporalWindowSize用于目标图像去噪的周围图像数量。应为奇数。将使用srcImgs中从imgToDenoiseIndex - temporalWindowSize / 2到imgToDenoiseIndex + temporalWindowSize / 2的图像来对srcImgs[imgToDenoiseIndex]图像进行去噪。
dst与srcImgs图像大小和类型相同的输出图像。
templateWindowSize用于计算权重的模板块大小(以像素为单位)。应为奇数。推荐值为7像素。
searchWindowSize用于计算给定像素加权平均值的窗口大小(以像素为单位)。应为奇数。线性影响性能:searchWindowsSize越大,去噪时间越长。推荐值为21像素。
h调节亮度分量滤波强度的参数。较大的h值可以完美去除噪声,但也去除图像细节;较小的h值保留细节,但也保留一些噪声。
hColor与h相同,但用于颜色分量。

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

◆ fastNlMeansDenoisingMulti() [1/2]

void cv::fastNlMeansDenoisingMulti ( 输入数组 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通道图像序列。所有图像应具有相同的类型和大小。
imgToDenoiseIndex在srcImgs序列中需要去噪的目标图像索引。
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 ( 输入数组 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通道图像序列。所有图像应具有相同的类型和大小。
imgToDenoiseIndex在srcImgs序列中需要去噪的目标图像索引。
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目标图像。
h调节颜色滤波器强度的滤波器 sigma。
search_window搜索窗口的大小。
block_size用于计算权重的块大小。
borderMode边界类型。详情参见borderInterpolate。目前支持BORDER_REFLECT101、BORDER_REPLICATE、BORDER_CONSTANT、BORDER_REFLECT和BORDER_WRAP。
stream异步版本的
另请参见
fastNlMeansDenoising