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

主题

 用于快速边缘检测的结构化森林
 
 边缘框
 
 滤波器
 
 超像素
 
 图像分割
 
 快速直线检测器
 
 边缘绘制
 
 傅里叶描述子
 
 基于游程编码图像的二值形态学
 

详细说明

枚举

enum  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 中使用的二值化方法。 更多...
 
enum  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)
 使用投影不变修剪 (projective invariant pruning) 快速查找图像中的椭圆。
 
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)
 使用裴-林归一化计算归一化给定图像的仿射变换。
 
void cv::ximgproc::PeiLinNormalization (InputArray I, OutputArray T)
 
void cv::ximgproc::thinning (InputArray src, OutputArray dst, int thinningType=THINNING_ZHANGSUEN)
 应用二值斑点细化操作,以实现输入图像的骨架化。
 

枚举类型文档 (Enumeration Type Documentation)

◆ LocalBinarizationMethods

#include <opencv2/ximgproc.hpp>

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

枚举值 (Enumerator)
BINARIZATION_NIBLACK 
Python: cv.ximgproc.BINARIZATION_NIBLACK

经典的 Niblack 二值化。参见 [212]

BINARIZATION_SAUVOLA 
Python: cv.ximgproc.BINARIZATION_SAUVOLA

Sauvola 技术。参见 [241]

BINARIZATION_WOLF 
Python: cv.ximgproc.BINARIZATION_WOLF

Wolf 技术。参见 [305]

BINARIZATION_NICK 
Python: cv.ximgproc.BINARIZATION_NICK

NICK 技术。参见 [151]

◆ ThinningTypes

#include <opencv2/ximgproc.hpp>

枚举值 (Enumerator)
THINNING_ZHANGSUEN 
Python: cv.ximgproc.THINNING_ZHANGSUEN
THINNING_GUOHALL 
Python: cv.ximgproc.THINNING_GUOHALL

函数文档 (Function Documentation)

◆ 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与源图像大小和类型相同的目标图像。
d滤波过程中使用的每个像素邻域的直径。必须大于或等于 3。
阈值 (threshold)区分噪声、异常值和数据的阈值。

◆ findEllipses()

void cv::ximgproc::findEllipses ( InputArray 图像,
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>

使用投影不变修剪 (projective invariant pruning) 快速查找图像中的椭圆。

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

参数
图像输入图像,可以是灰度或彩色。
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 方法,它等于均值减去 \( k \) 倍的标准差,其中标准差是在 \((x, y)\) 的 \(\texttt{blockSize} \times\texttt{blockSize}\) 邻域内计算的。

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

参数
_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 技术使用的用户可调参数。这是标准差的动态范围。
另请参阅
threshold, adaptiveThreshold

◆ PeiLinNormalization() [1/2]

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

#include <opencv2/ximgproc/peilin.hpp>

使用裴-林归一化计算归一化给定图像的仿射变换。

假设给定图像 \(I=T(\bar{I})\),其中 \(\bar{I}\) 是归一化图像,而 \(T\) 是通过平移、旋转、缩放和倾斜扭曲该图像的仿射变换。该函数返回一个与 [PeiLin95] 中描述的变换 \(T^{-1}\) 对应的仿射变换矩阵。有关此实现的更多详细信息,请参阅 [PeiLin95] Soo-Chang Pei 和 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>

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

该函数使用 Zhang-Suen 技术将二值斑块图像转换为骨架化形式。

参数
src源 8 位单通道图像,包含二值斑块,斑块具有 255 像素值。
dst与 src 具有相同大小和相同类型的目的图像。该函数可以就地工作。
thinningType定义应使用哪种细化算法的值。请参阅 cv::ximgproc::ThinningTypes