OpenCV  4.10.0
开源计算机视觉库
加载中...
搜索中...
没有匹配项
模块 | 枚举 | 函数
扩展图像处理

模块

 用于快速边缘检测的结构化森林
 
 EdgeBoxes
 
 滤波器
 
 超像素
 
 图像分割
 
 快速直线检测器
 
 边缘绘制
 
 傅里叶描述符
 
 对行程长度编码图像进行二进制形态学操作
 

详细描述

枚举

枚举  cv::ximgproc::LocalBinarizationMethods {
  cv::ximgproc::BINARIZATION_NIBLACK = 0 ,
  cv::ximgproc::BINARIZATION_SAUVOLA = 1 ,
  cv::ximgproc::BINARIZATION_WOLF = 2 ,
  cv::ximgproc::BINARIZATION_NICK = 3
}
 指定在 cv::ximgproc::niBlackThreshold 中使用的二值化方法。 更多...
 
枚举  cv::ximgproc::ThinningTypes {
  cv::ximgproc::THINNING_ZHANGSUEN = 0 ,
  cv::ximgproc::THINNING_GUOHALL = 1
}
 

函数

void cv::ximgproc::anisotropicDiffusion (InputArray src, OutputArray dst, float alpha, float K, int niters)
 对图像执行各向异性扩散。
 
void cv::ximgproc::edgePreservingFilter (InputArray src, OutputArray dst, int d, double threshold)
 使用边缘保持滤波器平滑图像。
 
void cv::ximgproc::findEllipses (InputArray image, OutputArray ellipses, float scoreThreshold=0.7f, float reliabilityThreshold=0.5f, float centerDistanceThreshold=0.05f)
 使用投影不变性修剪快速找到图像中的椭圆。
 
void cv::ximgproc::niBlackThreshold (InputArray _src, OutputArray _dst, double maxValue, int type, int blockSize, double k, int binarizationMethod=BINARIZATION_NIBLACK, double r=128)
 使用Niblack方法或其他流行变体对输入图像执行阈值操作。
 
Matx23d cv::ximgproc::PeiLinNormalization (InputArray I)
 计算使用Pei&Lin规范化对给定图像进行规范化的仿射变换。
 
void cv::ximgproc::PeiLinNormalization (InputArray I, OutputArray T)
 
void cv::ximgproc::thinning (InputArray src, OutputArray dst, int thinningType=THINNING_ZHANGSUEN)
 应用二进制斑点细化操作,以实现输入图像的骨架化。
 

枚举类型文档

◆ LocalBinarizationMethods

#include <opencv2/ximgproc.hpp>

指定在 cv::ximgproc::niBlackThreshold 中使用的二值化方法。

枚举器
BINARIZATION_NIBLACK 
Python: cv.ximgproc.BINARIZATION_NIBLACK

经典Niblack二值化。参见 [206]

BINARIZATION_SAUVOLA 
Python: cv.ximgproc.BINARIZATION_SAUVOLA

Sauvola方法。参见 [234]

BINARIZATION_WOLF 
Python: cv.ximgproc.BINARIZATION_WOLF

Wolf方法。参见 [299]

BINARIZATION_NICK 
Python: cv.ximgproc.BINARIZATION_NICK

NICK方法。参见 [146]

◆ ThinningTypes

#include <opencv2/ximgproc.hpp>

枚举器
THINNING_ZHANGSUEN 
Python: cv.ximgproc.THINNING_ZHANGSUEN
THINNING_GUOHALL 
Python: cv.ximgproc.THINNING_GUOHALL

函数文档

◆ anisotropicDiffusion()

void cv::ximgproc::anisotropicDiffusion ( InputArray  src,
OutputArray  dst,
float  alpha,
float  K,
int  niters 
)
Python
cv.ximgproc.anisotropicDiffusion(src, alpha, K, niters[, dst]) -> dst

#include <opencv2/ximgproc.hpp>

对图像执行各向异性扩散。

该函数将Perona-Malik各向异性扩散应用于图像。这是偏微分方程的解

\[{\frac {\partial I}{\partial t}}={\mathrm {div}}\left(c(x,y,t)\nabla I\right)=\nabla c\cdot \nabla I+c(x,y,t)\Delta I\]

建议用于c(x,y,t)的函数是

\[c\left(\|\nabla I\|\right)=e^{{-\left(\|\nabla I\|/K\right)^{2}}}\]

或者

\[ c\left(\|\nabla I\|\right)={\frac {1}{1+\left({\frac {\|\nabla I\|}{K}}\right)^{2}}} \]

参数
src具有3个通道的源图像。
dst与src大小和通道数相同的目标图像。
alpha每次迭代向前推进的时间量(通常在0到1之间)。
K对边缘的敏感度
niters迭代次数

◆ edgePreservingFilter()

void cv::ximgproc::edgePreservingFilter ( InputArray  src,
OutputArray  dst,
int  d,
double  threshold 
)
Python
cv.ximgproc.edgePreservingFilter(src, d, threshold[, dst]) -> dst

#include <opencv2/ximgproc/edgepreserving_filter.hpp>

使用边缘保持滤波器平滑图像。

该函数平滑高斯噪声以及椒盐噪声。有关此实现的更多详细信息,请参见 [ReiWoe18] Reich, S. and Wörgötter, F. and Dellen, B. (2018). A Real-Time Edge-Preserving Denoising Filter. Proceedings of the 13th International Joint Conference on Computer Vision, Imaging and Computer Graphics Theory and Applications (VISIGRAPP): Visapp, 85-94, 4. DOI: 10.5220/0006509000850094.

参数
src源 8 位 3 通道图像。
dst与src大小和类型相同的目标图像。
d滤波过程中使用的每个像素邻域的直径。必须大于或等于 3。
threshold阈值,用于区分噪声、异常值和数据。

◆ findEllipses()

void cv::ximgproc::findEllipses ( InputArray  image,
OutputArray  ellipses,
float  scoreThreshold = 0.7f,
float  reliabilityThreshold = 0.5f,
float  centerDistanceThreshold = 0.05f 
)
Python
cv.ximgproc.findEllipses(image[, ellipses[, scoreThreshold[, reliabilityThreshold[, centerDistanceThreshold]]]]) -> ellipses

#include <opencv2/ximgproc/find_ellipses.hpp>

使用投影不变性修剪快速找到图像中的椭圆。

该函数使用投影不变性修剪检测图像中的椭圆。有关此实现的更多详细信息,请参见 [137] Jia, Qi et al, (2017). A Fast Ellipse Detector using Projective Invariant Pruning. IEEE Transactions on Image Processing.

参数
image输入图像,可以是灰度或彩色。
ellipses找到的椭圆的输出向量。每个向量编码为五个浮点数 $x, y, a, b, radius, score$。
scoreThresholdfloat,椭圆分数的阈值。
reliabilityThresholdfloat,可靠性的阈值。
centerDistanceThresholdfloat,中心距离的阈值。

◆ niBlackThreshold()

void cv::ximgproc::niBlackThreshold ( InputArray  _src,
OutputArray  _dst,
double  maxValue,
int  type,
int  blockSize,
double  k,
int  binarizationMethod = BINARIZATION_NIBLACK,
double  r = 128 
)
Python
cv.ximgproc.niBlackThreshold(_src, maxValue, type, blockSize, k[, _dst[, binarizationMethod[, r]]]) -> _dst

#include <opencv2/ximgproc.hpp>

使用Niblack方法或其他流行变体对输入图像执行阈值操作。

该函数根据公式将灰度图像转换为二值图像

  • THRESH_BINARY

    \[dst(x,y) = \fork{\texttt{maxValue}}{if \(src(x,y) > T(x,y)\)}{0}{otherwise}\]

  • THRESH_BINARY_INV

    \[dst(x,y) = \fork{0}{if \(src(x,y) > T(x,y)\)}{\texttt{maxValue}}{otherwise}\]

    其中\(T(x,y)\)是针对每个像素单独计算的阈值。

阈值\(T(x, y)\)根据选择的二值化方法确定。对于经典的Niblack方法,它是\(\texttt{blockSize} \times\texttt{blockSize}\)的\((x, y)\)邻域的平均值减去\( k \)倍标准差。

该函数无法就地处理图像。

参数
_src源 8 位单通道图像。
_dst与src大小和类型相同的目标图像。
maxValue分配给满足条件的像素的非零值,用于THRESH_BINARY和THRESH_BINARY_INV阈值类型。
type阈值类型,请参见 cv::ThresholdTypes
blockSize用于计算像素阈值的像素邻域的大小:3、5、7,依此类推。
kNiblack方法和受其启发的技术使用的用户可调参数。对于Niblack方法,这通常是一个介于0和1之间的值,它乘以标准差并从平均值中减去。
binarizationMethod要使用的二值化方法。默认情况下,使用Niblack方法。可以指定其他方法,请参见 cv::ximgproc::LocalBinarizationMethods
rSauvola方法使用的用户可调参数。这是标准差的动态范围。
另请参见
thresholdadaptiveThreshold

◆ PeiLinNormalization() [1/2]

Matx23d cv::ximgproc::PeiLinNormalization ( InputArray  I)
Python
cv.ximgproc.PeiLinNormalization(I[, T]) -> T

#include <opencv2/ximgproc/peilin.hpp>

计算使用Pei&Lin规范化对给定图像进行规范化的仿射变换。

假设给定图像\(I=T(\bar{I})\),其中\(\bar{I}\)是归一化图像,\(T\)是通过平移、旋转、缩放和倾斜扭曲此图像的仿射变换。该函数返回对应于 [PeiLin95] 中描述的变换 \(T^{-1}\) 的仿射变换矩阵。有关此实现的更多详细信息,请参见 [PeiLin95] Soo-Chang Pei and Chao-Nan Lin. Image normalization for pattern recognition. Image and Vision Computing, Vol. 13, N.10, pp. 711-723, 1995.

参数
I给定变换后的图像。
返回值
与反向图像变换对应的变换矩阵

◆ PeiLinNormalization() [2/2]

void cv::ximgproc::PeiLinNormalization ( InputArray  I,
OutputArray  T 
)
Python
cv.ximgproc.PeiLinNormalization(I[, T]) -> T

#include <opencv2/ximgproc/peilin.hpp>

这是一个重载的成员函数,为了方便提供。它与上面的函数的不同之处仅在于它接受的参数。

◆ thinning()

void cv::ximgproc::thinning ( InputArray  src,
OutputArray  dst,
int  thinningType = THINNING_ZHANGSUEN 
)
Python
cv.ximgproc.thinning(src[, dst[, thinningType]]) -> dst

#include <opencv2/ximgproc.hpp>

应用二进制斑点细化操作,以实现输入图像的骨架化。

该函数使用张-苏en技术将二值 blob 图像转换为骨架形式。

参数
src源 8 位单通道图像,包含二值 blob,blob 的像素值为 255。
dst与 src 大小和类型相同的目标图像。该函数可以在原地运行。
thinningType定义要使用哪个细化算法的值。请参阅 cv::ximgproc::ThinningTypes