OpenCV 5.0.0
Open Source Computer Vision
読み込み中...
検索中...
見つかりません
🤖 AIによる機械翻訳(非公式) — これは OpenCV 5.0.0 公式リファレンス(英語)を AI (Claude) で自動翻訳したものです。訳に誤りを含む場合があります。正確な情報は 公式英語版(原文) を参照してください。
拡張画像処理

トピック

 高速エッジ検出向けStructured forests
 
 EdgeBoxes
 
 フィルタ
 
 スーパーピクセル
 
 画像セグメンテーション(領域分割)
 
 高速直線検出器
 
 エッジ描画
 
 フーリエ記述子
 
 ランレングス符号化画像に対する二値モルフォロジー
 

詳細説明

列挙型

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 で使用する2値化手法を指定する。 続き...
 
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)
 エッジ保存フィルタ (Edge-Preserving filter) を用いて画像を平滑化する。
 
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 で使用する2値化手法を指定する。

列挙値
BINARIZATION_NIBLACK 
Python: cv.ximgproc.BINARIZATION_NIBLACK

古典的なNiblack二値化。[214] を参照。

BINARIZATION_SAUVOLA 
Python: cv.ximgproc.BINARIZATION_SAUVOLA

Sauvolaの手法。[244] を参照。

BINARIZATION_WOLF 
Python: cv.ximgproc.BINARIZATION_WOLF

Wolfの手法。[309] を参照。

BINARIZATION_NICK 
Python: cv.ximgproc.BINARIZATION_NICK

NICKの手法。[150] を参照。

◆ 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}}} \]

引数
src3チャンネルのソース画像。
dstsrc と同じサイズかつ同じチャンネル数の出力画像。
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>

Edge-Preservingフィルタを使って画像を平滑化する。

この関数はガウシアンノイズおよびごま塩ノイズを平滑化する。この実装の詳細については、[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 を参照。

引数
src8ビット3チャンネルのソース画像。
dstsrcと同じサイズおよび型の出力画像。
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>

射影不変量による枝刈りを用いて画像中の楕円を高速に検出する。

この関数は、射影不変量による枝刈り (projective invariant pruning) を用いて画像中の楕円を検出する。この実装の詳細については [141] Jia, Qi et al, (2017). A Fast Ellipse Detector using Projective Invariant Pruning. IEEE Transactions on Image Processing. を参照。

引数
image入力画像。グレースケールでもカラーでもよい。
ellipses検出された楕円の出力ベクトル。各ベクトルは5つのfloat $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}\]

    where \(T(x,y)\) is a threshold calculated individually for each pixel.

しきい値 \(T(x, y)\) は選択した2値化手法に基づいて決定される。古典的なNiblackでは、\((x, y)\) の \(\texttt{blockSize} \times\texttt{blockSize}\) 近傍の平均から、標準偏差の \( k \) 倍を引いたものである。

この関数は画像をインプレースで処理できない。

引数
_src8ビット、シングルチャンネルの入力画像。
_dstsrc と同じサイズ・同じ型の出力画像。
maxValue条件を満たすピクセルに割り当てられる非ゼロ値。THRESH_BINARYおよびTHRESH_BINARY_INVのしきい値処理タイプで使用される。
typeしきい値処理タイプ。cv::ThresholdTypes を参照。
blockSizeピクセルのしきい値を計算するために使われる、ピクセル近傍のサイズ: 3、5、7 など。
kNiblackやそれに着想を得た手法で用いられるユーザ調整可能なパラメータ。Niblackでは通常0から1の間の値で、標準偏差に乗じられて平均から減算される。
binarizationMethod使用する2値化手法。デフォルトでは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>

2値ブロブの細線化処理を適用し、入力画像のスケルトン化を実現する。

この関数はZhang-Suenの手法を用いて2値ブロブ画像をスケルトン化された形に変換する。

引数
src8ビットシングルチャンネルのソース画像。2値のブロブを含み、ブロブは255のピクセル値を持つ。
dstsrcと同じサイズかつ同じ型の出力先画像。この関数はインプレースで動作できる。
thinningTypeどの細線化アルゴリズムを使用すべきかを定義する値。cv::ximgproc::ThinningTypes を参照