OpenCV 4.11.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技术。参见 [235]

BINARIZATION_WOLF 
Python: cv.ximgproc.BINARIZATION_WOLF

Wolf技术。参见 [300]

BINARIZATION_NICK 
Python: cv.ximgproc.BINARIZATION_NICK

NICK技术。参见 [145]

◆ 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。
阈值区分噪声、异常值和数据的阈值。

◆ findEllipses()

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

#include <opencv2/ximgproc/find_ellipses.hpp>

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

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

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

◆ 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 \)倍的\(\texttt{blockSize} \times\texttt{blockSize}\)邻域\((x, y)\)的标准差。

该函数不能就地处理图像。

参数
_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>

计算使用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>

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

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

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