OpenCV  4.10.0
开源计算机视觉
加载中...
搜索中...
无匹配
| 枚举 | 函数
额外的照片处理算法

详细信息

class  cv::xphoto::GrayworldWB
 灰世界白平衡算法。 更多...
 
class  cv::xphoto::LearningBasedWB
 更复杂的学习基础自动白平衡算法。 更多...
 
class  cv::xphoto::SimpleWB
 一个简单的白平衡算法,通过独立拉伸每个输入图像通道到指定的范围来工作。为了提高鲁棒性,它忽略了像素值的前 \(p\%\) 和后 \(p\%\)。更多...
 
class  cv::xphoto::TonemapDurand
 此算法使用双边滤波器将图像分解为两层:基础层和细节层,并通过压缩基础层的对比度,从而保留所有细节。更多...
 
class  cv::xphoto::WhiteBalancer
 自动白平衡算法的基类。更多...
 

枚举

enum  cv::xphoto::Bm3dSteps {
  cv::xphoto::BM3D_STEPALL = 0 ,
  cv::xphoto::BM3D_STEP1 = 1 ,
  cv::xphoto::BM3D_STEP2 = 2
}
 BM3D算法步骤。 更多...
 
enum  cv::xphoto::InpaintTypes {
  cv::xphoto::INPAINT_SHIFTMAP = 0 ,
  cv::xphoto::INPAINT_FSR_BEST = 1 ,
  cv::xphoto::INPAINT_FSR_FAST = 2
}
 各种修复算法。 更多...
 
enum  cv::xphoto::TransformTypes { cv::xphoto::HAAR = 0 }
 BM3D转换类型。 更多...
 

函数

void cv::xphoto::applyChannelGains (InputArray src, OutputArray dst, float gainB, float gainG, float gainR)
 实现了一个高效的固定点近似,用于应用通道增益,这是多个白平衡算法的最后一步。
 
void cv::xphoto::bm3dDenoising (InputArray src, InputOutputArray dstStep1, OutputArray dstStep2, float h=1, int templateWindowSize=4, int searchWindowSize=16, int blockMatchingStep1=2500, int blockMatchingStep2=400, int groupSize=8, int slidingStep=1, float beta=2.0f, int normType=cv::NORM_L2, int step=cv::xphoto::BM3D_STEPALL, int transformType=cv::xphoto::HAAR)
 使用具有几个计算优化的Block-Matching和3D滤波算法(BM3D)进行图像降噪 http://www.cs.tut.fi/~foi/GCF-BM3D/BM3D_TIP_2007.pdf。期望的噪声为高斯白噪声。
 
void cv::xphoto::bm3dDenoising (InputArray src, OutputArray dst, float h=1, int templateWindowSize=4, int searchWindowSize=16, int blockMatchingStep1=2500, int blockMatchingStep2=400, int groupSize=8, int slidingStep=1, float beta=2.0f, int normType=cv::NORM_L2, int step=cv::xphoto::BM3D_STEPALL, int transformType=cv::xphoto::HAAR)
 使用具有几个计算优化的Block-Matching和3D滤波算法(BM3D)进行图像降噪 http://www.cs.tut.fi/~foi/GCF-BM3D/BM3D_TIP_2007.pdf。期望的噪声为高斯白噪声。
 
Ptr< GrayworldWBcv::xphoto::createGrayworldWB ()
 创建一个GrayworldWB的实例。
 
Ptr< LearningBasedWBcv::xphoto::createLearningBasedWB (const String &path_to_model=String()))
 创建一个LearningBasedWB的实例。
 
Ptr< SimpleWBcv::xphoto::createSimpleWB ()
 创建一个SimpleWB的实例。
 
Ptr< TonemapDurandcv::xphoto::createTonemapDurand (float gamma=1.0f, float contrast=4.0f, float saturation=1.0f, float sigma_color=2.0f, float sigma_space=2.0f)
 创建TonemapDurand对象。
 
void cv::xphoto::dctDenoising (const Mat &src, Mat &dst, const double sigma, const int psize=16)
 该函数实现了基于DCT的简单去噪。
 
virtual float cv::xphoto::TonemapDurand::getContrast () const =0
 
virtual float cv::xphoto::TonemapDurand::getSaturation () const =0
 
virtual float cv::xphoto::TonemapDurand::getSigmaColor () const =0
 
virtual float cv::xphoto::TonemapDurand::getSigmaSpace () const =0
 
void cv::xphoto::inpaint (const Mat &src, const Mat &mask, Mat &dst, const int algorithmType)
 该函数实现了不同的单图像修复算法。
 
void cv::xphoto::oilPainting (InputArray src, OutputArray dst, int size, int dynRatio)
 oilPainting 详细信息请参见书籍 [46]。
 
void cv::xphoto::oilPainting (InputArray src, OutputArray dst, int size, int dynRatio, int code)
 oilPainting 详细信息请参见书籍 [46]。
 
virtual void cv::xphoto::TonemapDurand::setContrast (float contrast)=0
 
virtual void cv::xphoto::TonemapDurand::setSaturation (float saturation)=0
 
virtual void cv::xphoto::TonemapDurand::setSigmaColor (float sigma_color)=0
 
virtual void cv::xphoto::TonemapDurand::setSigmaSpace (float sigma_space)=0
 

枚举类型文档

Bm3dSteps

#include <opencv2/xphoto/bm3d_image_denoising.hpp>

BM3D 算法步骤。

枚举值
BM3D_STEPALL 
Python: cv.xphoto.BM3D_STEPALL

执行算法的所有步骤

BM3D_STEP1 
Python: cv.xphoto.BM3D_STEP1

只执行算法的第一个步骤

BM3D_STEP2 
Python: cv.xphoto.BM3D_STEP2

只执行算法的第二个步骤

InpaintTypes

#include <opencv2/xphoto/inpainting.hpp>

各种修复算法。

参见
inpaint
枚举值
INPAINT_SHIFTMAP 
Python: cv.xphoto.INPAINT_SHIFTMAP

此算法寻找图像块的主要对应关系(变换),并尝试使用这些变换来无缝填充要修复的区域

INPAINT_FSR_BEST 
Python: cv.xphoto.INPAINT_FSR_BEST

执行频率选择性重建(FSR)。可以选择两个质量配置文件之一(最佳和快速),具体取决于重建时间。请参阅[104][236]以获取详细信息。

该算法可应用于以下应用领域

  1. 错误隐藏(修复图像)。采样遮罩指示要重建的损坏输入图像中缺失的像素。
  2. 非常规采样。有关如何选择良好采样遮罩的更多信息,请参阅[112][111]

接受的图像格式

常规接受范围

  • 0-255 for CV_8U
  • 0-65535 for CV_16U
  • 0-1 for CV_32F/CV_64F.
INPAINT_FSR_FAST 
Python: cv.xphoto.INPAINT_FSR_FAST

参见INPAINT_FSR_BEST

TransformTypes

#include <opencv2/xphoto/bm3d_image_denoising.hpp>

BM3D 转换类型。

枚举值
HAAR 
Python: cv.xphoto.HAAR

未归一化的 Haar 变换

函数文档

applyChannelGains()

void cv::xphoto::applyChannelGains ( InputArray  src,
OutputArray  dst,
float  gainB,
float  gainG,
float  gainR 
)
Python
cv.xphoto.applyChannelGains(src, gainB, gainG, gainR[, dst]) -> dst

#include <opencv2/xphoto/white_balance.hpp>

实现了一个高效的固定点近似,用于应用通道增益,这是多个白平衡算法的最后一步。

参数
src输入三个通道的图像,该图像在BGR颜色空间中(可以是CV_8UC3或CV_16UC3)
dst输出图像的大小和类型与src相同。
gainBB通道的增益
gainG绿通道的增益
gainRR通道的增益

◆ bm3dDenoising() [1/2]

void cv::xphoto::bm3dDenoising ( InputArray  src,
InputOutputArray  dstStep1,
OutputArray  dstStep2,
float  h = 1,
int  templateWindowSize = 4,
int  searchWindowSize = 16,
int  blockMatchingStep1 = 2500,
int  blockMatchingStep2 = 400,
int  groupSize = 8,
int  slidingStep = 1,
float  beta = 2.0f,
int  normType = cv::NORM_L2,
int  step = cv::xphoto::BM3D_STEPALL,
int  transformType = cv::xphoto::HAAR 
)
Python
cv.xphoto.bm3dDenoising(src, dstStep1[, dstStep2[, h[, templateWindowSize[, searchWindowSize[, blockMatchingStep1[, blockMatchingStep2[, groupSize[, slidingStep[, beta[, normType[, step[, transformType]]]]]]]]]]]]) -> dstStep1, dstStep2
cv.xphoto.bm3dDenoising(src[, dst[, h[, templateWindowSize[, searchWindowSize[, blockMatchingStep1[, blockMatchingStep2[, groupSize[, slidingStep[, beta[, normType[, step[, transformType]]]]]]]]]]]]) -> dst

#include <opencv2/xphoto/bm3d_image_denoising.hpp>

使用具有几个计算优化的Block-Matching和3D滤波算法(BM3D)进行图像降噪 http://www.cs.tut.fi/~foi/GCF-BM3D/BM3D_TIP_2007.pdf。期望的噪声为高斯白噪声。

参数
src输入8位或16位单通道图像。
dstStep1输出图像为BM3D的第一步,大小和类型与src相同。
dstStep2输出图像为BM3D的第二步,大小和类型与src相同。
h参数调节滤波强度。较大的h值可完美去除噪声,但也会去除图像细节;较小的h值可保留细节,但也会保留一些噪声。
templateWindowSize用于块匹配的模板块的大小,以像素为单位。应为2的幂。
searchWindowSize用于执行块匹配的窗口的大小,以像素为单位。线性影响性能:searchWindowsSize越大,去噪时间越长。必须大于templateWindowSize。
blockMatchingStep1BM3D第一步中块匹配的阈值(硬阈值),即两个块被视为相似的最大欧几里得距离。
blockMatchingStep2BM3D第二步中块匹配的阈值(维纳滤波),即两个块被视为相似的最大欧几里得距离。
groupSize3D协作滤波的最大组大小。
slidingStep滑动步长,用于处理每个下一个参考块。
beta影响窗口变换旁瓣衰减的高斯窗口参数。高斯窗口用于减少边界效应。为了防止使用窗口,将beta设置为零。
normType计算块间距离所使用的范数。L2比L1慢,但结果更准确。
step要执行的BM3D步骤。可能的变体是:step 1,step 2,两个步骤。
transformType在协作滤波步骤中使用的正交变换类型。目前仅支持Haar变换。

此函数预期应用于灰度图像。此函数的高级用法可以手动去除不同颜色空间中的彩色图像中的噪声。

参见
fastNlMeansDenoising

◆ bm3dDenoising() [2/2]

void cv::xphoto::bm3dDenoising ( InputArray  src,
OutputArray  dst,
float  h = 1,
int  templateWindowSize = 4,
int  searchWindowSize = 16,
int  blockMatchingStep1 = 2500,
int  blockMatchingStep2 = 400,
int  groupSize = 8,
int  slidingStep = 1,
float  beta = 2.0f,
int  normType = cv::NORM_L2,
int  step = cv::xphoto::BM3D_STEPALL,
int  transformType = cv::xphoto::HAAR 
)
Python
cv.xphoto.bm3dDenoising(src, dstStep1[, dstStep2[, h[, templateWindowSize[, searchWindowSize[, blockMatchingStep1[, blockMatchingStep2[, groupSize[, slidingStep[, beta[, normType[, step[, transformType]]]]]]]]]]]]) -> dstStep1, dstStep2
cv.xphoto.bm3dDenoising(src[, dst[, h[, templateWindowSize[, searchWindowSize[, blockMatchingStep1[, blockMatchingStep2[, groupSize[, slidingStep[, beta[, normType[, step[, transformType]]]]]]]]]]]]) -> dst

#include <opencv2/xphoto/bm3d_image_denoising.hpp>

使用具有几个计算优化的Block-Matching和3D滤波算法(BM3D)进行图像降噪 http://www.cs.tut.fi/~foi/GCF-BM3D/BM3D_TIP_2007.pdf。期望的噪声为高斯白噪声。

参数
src输入8位或16位单通道图像。
dst输出图像与src相同的大小和类型。
h参数调节滤波强度。较大的h值可完美去除噪声,但也会去除图像细节;较小的h值可保留细节,但也会保留一些噪声。
templateWindowSize用于块匹配的模板块的大小,以像素为单位。应为2的幂。
searchWindowSize用于执行块匹配的窗口的大小,以像素为单位。线性影响性能:searchWindowsSize越大,去噪时间越长。必须大于templateWindowSize。
blockMatchingStep1BM3D第一步中块匹配的阈值(硬阈值),即两个块被视为相似的最大欧几里得距离。
blockMatchingStep2BM3D第二步中块匹配的阈值(维纳滤波),即两个块被视为相似的最大欧几里得距离。
groupSize3D协作滤波的最大组大小。
slidingStep滑动步长,用于处理每个下一个参考块。
beta影响窗口变换旁瓣衰减的高斯窗口参数。高斯窗口用于减少边界效应。为了防止使用窗口,将beta设置为零。
normType计算块间距离所使用的范数。L2比L1慢,但结果更准确。
step要执行的BM3D步骤。允许的只有BM3D_STEP1和BM3D_STEPALL。不允许BM3D_STEP2,因为它需要基本估计。
transformType在协作滤波步骤中使用的正交变换类型。目前仅支持Haar变换。

此函数预期应用于灰度图像。此函数的高级用法可以手动去除不同颜色空间中的彩色图像中的噪声。

参见
fastNlMeansDenoising

◆ createGrayworldWB()

Ptr< GrayworldWB > cv::xphoto::createGrayworldWB ( )
Python
cv.xphoto.createGrayworldWB() -> retval

#include <opencv2/xphoto/white_balance.hpp>

创建一个GrayworldWB的实例。

◆ 创建基于学习的WB函数(createLearningBasedWB())

Ptr< LearningBasedWB > cv::xphoto::createLearningBasedWB ( const String مدل_ مسیر = String())
Python
cv.xphoto.createLearningBasedWB([, مدل_ مسیر]) -> retval

#include <opencv2/xphoto/white_balance.hpp>

创建一个LearningBasedWB的实例。

参数
模特尔_ مسیر模型的 .yml 文件路径。如果未指定,则使用默认模型

◆ 创建简单的WB函数(createSimpleWB())

Ptr< SimpleWB > cv::xphoto::createSimpleWB ( )
Python
cv.xphoto.createSimpleWB() -> retval

#include <opencv2/xphoto/white_balance.hpp>

创建一个SimpleWB的实例。

◆ 创建Durand色调映射函数(createTonemapDurand())

Ptr< TonemapDurand > cv::xphoto::createTonemapDurand ( float  gamma = 1.0f,
float  对比度 = 4.0f,
float  饱和度 = 1.0f,
float  颜色标准差 = 2.0f,
float  空间标准差 = 2.0f 
)
Python
cv.xphoto.createTonemapDurand([, gamma[, 对比度[, 饱和度[, 颜色标准差[, 空间标准差]]]]]) -> retval

#include <opencv2/xphoto/tonemap.hpp>

创建TonemapDurand对象。

您需要在cmake中设置OPENCV_ENABLE_NONFREE选项以使用这些。自行承担风险。

参数
gamma伽玛校正的gamma值。见createTonemap
对比度对数尺度上的结果对比度,即log(max / min),其中max和min是结果图像的最大和最小亮度值。
饱和度饱和度增强值。见createTonemapDrago
颜色标准差颜色空间中的双边滤波器标准差
空间标准差坐标空间中的双边滤波器标准差

◆ DCT去噪函数(dctDenoising())

void cv::xphoto::dctDenoising ( const Mat src,
Mat dst,
const double  sigma,
const int  psize = 16 
)
Python
cv.xphoto.dctDenoising(src, dst, sigma[, psize]) -> None

#include <opencv2/xphoto/dct_image_denoising.hpp>

该函数实现了基于DCT的简单去噪。

http://www.ipol.im/pub/art/2011/ys-dct/.

参数
src源图像
dst目标图像
sigma预期的噪声标准差
psizeDCT计算的方块边长的大小
参见
fastNlMeansDenoising

◆ 获取对比度(getContrast())

virtual float cv::xphoto::TonemapDurand::getContrast ( ) const
纯虚函数
Python
cv.xphoto.TonemapDurand.getContrast() -> retval

◆ 获取饱和度(getSaturation())

virtual float cv::xphoto::TonemapDurand::getSaturation ( ) const
纯虚函数
Python
cv.xphoto.TonemapDurand.getSaturation() -> retval

◆ 获取颜色标准差(getSigmaColor())

virtual float cv::xphoto::TonemapDurand::getSigmaColor ( ) const
纯虚函数
Python
cv.xphoto.TonemapDurand.getSigmaColor() -> retval

◆ 获取空间标准差(getSigmaSpace())

virtual float cv::xphoto::TonemapDurand::getSigmaSpace ( ) const
纯虚函数
Python
cv.xphoto.TonemapDurand.getSigmaSpace() -> retval

◆ 修复图像(inpaint())

void cv::xphoto::inpaint ( const Mat src,
const Mat 屏蔽,
Mat dst,
const int  算法类型 
)
Python
cv.xphoto.inpaint(src, mask, dst, 算法类型) -> None

#include <opencv2/xphoto/inpainting.hpp>

该函数实现了不同的单图像修复算法。

请参阅原始论文[119] (Shiftmap)或[104][236] (FSR)以了解详细信息。

参数
src源图像
  • INPAINT_SHIFTMAP:它可以属于任何类型,并且可以包含1到4个任意数量的通道。在3通道和4通道图像的情况下,函数期望在CIELab颜色空间或类似的颜色空间中,其中第一个颜色分量表示强度,而第二个和第三个颜色分量表示颜色。尽管如此,您可以尝试任何颜色空间。
  • INPAINT_FSR_BESTINPAINT_FSR_FAST:1通道灰度图像或3通道BGR图像。
屏蔽mask (CV_8UC1),其中非零像素表示有效图像区域,而零像素表示要修补的区域
dst目标图像
algorithmType参见 xphoto::InpaintTypes

◆ oilPainting() [1/2]

void cv::xphoto::oilPainting ( InputArray  src,
OutputArray  dst,
int  size,
int  dynRatio 
)
Python
cv.xphoto.oilPainting(src, size, dynRatio, code[, dst]) -> dst
cv.xphoto.oilPainting(src, size, dynRatio[, dst]) -> dst

#include <opencv2/xphoto/oilpainting.hpp>

oilPainting 详细信息请参见书籍 [46]。

参数
src输入三通道或单通道图像(CV_8UC3 或 CV_8UC1)
dst输出图像的大小和类型与src相同。
size相邻区域大小为2-size+1
dynRatio在直方图处理之前,图像按dynRatio分割

◆ oilPainting() [2/2]

void cv::xphoto::oilPainting ( InputArray  src,
OutputArray  dst,
int  size,
int  dynRatio,
int  code 
)
Python
cv.xphoto.oilPainting(src, size, dynRatio, code[, dst]) -> dst
cv.xphoto.oilPainting(src, size, dynRatio[, dst]) -> dst

#include <opencv2/xphoto/oilpainting.hpp>

oilPainting 详细信息请参见书籍 [46]。

参数
src输入三通道或单通道图像(CV_8UC3 或 CV_8UC1)
dst输出图像的大小和类型与src相同。
size相邻区域大小为2-size+1
dynRatio在直方图处理之前,图像按dynRatio分割
code颜色空间转换代码(参见ColorConversionCodes)。将仅使用第一个平面进行直方图计算

◆ setContrast()

virtual void cv::xphoto::TonemapDurand::setContrast ( float  对比度)
纯虚函数
Python
cv.xphoto.TonemapDurand.setContrast(对比度) -> None

◆ setSaturation()

virtual void cv::xphoto::TonemapDurand::setSaturation ( float  饱和度)
纯虚函数
Python
cv.xphoto.TonemapDurand.setSaturation(饱和度) -> None

◆ setSigmaColor()

virtual void cv::xphoto::TonemapDurand::setSigmaColor ( float  颜色标准差)
纯虚函数
Python
cv.xphoto.TonemapDurand.setSigmaColor(颜色标准差) -> None

◆ setSigmaSpace()

virtual void cv::xphoto::TonemapDurand::setSigmaSpace ( float  空间标准差)
纯虚函数
Python
cv.xphoto.TonemapDurand.setSigmaSpace(空间标准差) -> None