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