OpenCV 4.5.3(日本語機械翻訳)
|
列挙型 |
|
enum | SpecialFilter { FILTER_SCHARR = -1 } |
enum |
cv::MorphTypes
{
cv::MORPH_ERODE = 0 , cv::MORPH_DILATE = 1 , cv::MORPH_OPEN = 2 , cv::MORPH_CLOSE = 3 , cv::MORPH_GRADIENT = 4 , cv::MORPH_TOPHAT = 5 , cv::MORPH_BLACKHAT = 6 , cv::MORPH_HITMISS = 7 } |
モルフォロジー演算の種類[【詳解】(英語]
|
|
enum | cv::MorphShapes { cv::MORPH_RECT = 0 , cv::MORPH_CROSS = 1 , cv::MORPH_ELLIPSE = 2 } |
構造化要素の形状[【詳解】(英語]
|
|
関数 |
|
CV_EXPORTS_W Mat | cv::getGaussianKernel (int ksize, double sigma, int ktype=CV_64F) |
ガウシアンフィルタの係数を返します.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::getDerivKernels (OutputArray kx, OutputArray ky, int dx, int dy, int ksize, bool normalize=false, int ktype=CV_32F) |
空間画像導関数を計算するためのフィルタ係数を返します.[【詳解】(英語]
|
|
CV_EXPORTS_W Mat | cv::getGaborKernel (Size ksize, double sigma, double theta, double lambd, double gamma, double psi=CV_PI *0.5, int ktype=CV_64F) |
ガボールフィルタの係数を返します.[【詳解】(英語]
|
|
static Scalar | cv::morphologyDefaultBorderValue () |
は,侵食と拡張のための「魔法の」境界値を返します.これは、自動的に次のように変換されます。Scalar::all(-DBL_MAX) に自動的に変換されます。 |
|
CV_EXPORTS_W Mat | cv::getStructuringElement (int shape, Size ksize, Point anchor=Point(-1,-1)) |
IplConnection: 指定されたサイズと形状の構造化要素を、モフォロジカルな操作のために返します[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::medianBlur (InputArray src, OutputArray dst, int ksize) |
中央値フィルタを用いて,画像をぼかします.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::GaussianBlur (InputArray src, OutputArray dst, Size ksize, double sigmaX, double sigmaY=0, int borderType=BORDER_DEFAULT) |
ガウシアンフィルタを用いて,画像をぼかします.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::bilateralFilter (InputArray src, OutputArray dst, int d, double sigmaColor, double sigmaSpace, int borderType=BORDER_DEFAULT) |
バイラテラルフィルタを画像に適用します.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::boxFilter (InputArray src, OutputArray dst, int ddepth, Size ksize, Point anchor=Point(-1,-1), bool normalize=true, int borderType=BORDER_DEFAULT) |
ボックスフィルターを用いて,画像をぼかします.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::sqrBoxFilter (InputArray src, OutputArray dst, int ddepth, Size ksize, Point anchor=Point(-1, -1), bool normalize=true, int borderType=BORDER_DEFAULT) |
フィルタに重なるピクセル値の,正規化された二乗和を求めます.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::blur (InputArray src, OutputArray dst, Size ksize, Point anchor=Point(-1,-1), int borderType=BORDER_DEFAULT) |
正規化されたボックスフィルタを用いて,画像をぼかします.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::filter2D (InputArray src, OutputArray dst, int ddepth, InputArray kernel, Point anchor=Point(-1,-1), double delta=0, int borderType=BORDER_DEFAULT) |
画像をカーネルで畳み込みます.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::sepFilter2D (InputArray src, OutputArray dst, int ddepth, InputArray kernelX, InputArray kernelY, Point anchor=Point(-1,-1), double delta=0, int borderType=BORDER_DEFAULT) |
画像に分離可能な線形フィルタを適用します.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::Sobel (InputArray src, OutputArray dst, int ddepth, int dx, int dy, int ksize=3, double scale=1, double delta=0, int borderType=BORDER_DEFAULT) |
拡張Sobel演算子を用いて,1次,2次,3次,または混合画像微分を計算します.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::spatialGradient (InputArray src, OutputArray dx, OutputArray dy, int ksize=3, int borderType=BORDER_DEFAULT) |
Sobel演算子を用いて,xとyの両方で画像の1次微分を計算します.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::Scharr (InputArray src, OutputArray dst, int ddepth, int dx, int dy, double scale=1, double delta=0, int borderType=BORDER_DEFAULT) |
Scharr演算子を用いて,画像の1次x-またはy-微分を計算します.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::Laplacian (InputArray src, OutputArray dst, int ddepth, int ksize=1, double scale=1, double delta=0, int borderType=BORDER_DEFAULT) |
画像のラプラシアンを求めます.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::erode (InputArray src, OutputArray dst, InputArray kernel, Point anchor=Point(-1,-1), int iterations=1, int borderType=BORDER_CONSTANT, const Scalar &borderValue=morphologyDefaultBorderValue()) |
特定の構造化要素を用いて,画像を消去します.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::dilate (InputArray src, OutputArray dst, InputArray kernel, Point anchor=Point(-1,-1), int iterations=1, int borderType=BORDER_CONSTANT, const Scalar &borderValue=morphologyDefaultBorderValue()) |
特定の構造化要素を利用して,画像を拡張します.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::morphologyEx (InputArray src, OutputArray dst, int op, InputArray kernel, Point anchor=Point(-1,-1), int iterations=1, int borderType=BORDER_CONSTANT, const Scalar &borderValue=morphologyDefaultBorderValue()) |
高度な形態素変換を行います.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::pyrDown (InputArray src, OutputArray dst, const Size &dstsize=Size(), int borderType=BORDER_DEFAULT) |
画像をぼかし、ダウンサンプリングします。[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::pyrUp (InputArray src, OutputArray dst, const Size &dstsize=Size(), int borderType=BORDER_DEFAULT) |
画像をアップサンプリングしてから,それをぼかします.[【詳解】(英語]
|
|
CV_EXPORTS void | cv::buildPyramid (InputArray src, OutputArrayOfArrays dst, int maxlevel, int borderType=BORDER_DEFAULT) |
画像に対するガウシアンピラミッドを構築します.[【詳解】(英語]
|
|
CV_EXPORTS_W void | cv::pyrMeanShiftFiltering (InputArray src, OutputArray dst, double sp, double sr, int maxLevel=1, TermCriteria termcrit=TermCriteria(TermCriteria::MAX_ITER+TermCriteria::EPS, 5, 1)) |
画像のMeanshift Segmentationの初期段階を実行します.[【詳解】(英語]
|
|
Functions and classes described in this section are used to perform various linear or non-linear filtering operations on 2D images (represented as
Mat's). It means that for each pixel location
in the source image (normally, rectangular), its neighborhood is considered and used to compute the response. In case of a linear filter, it is a weighted sum of pixel values. In case of morphological operations, it is the minimum or maximum values, and so on. The computed response is stored in the destination image at the same location
. It means that the output image will be of the same size as the input image. Normally, the functions support multi-channel arrays, in which case every channel is processed independently. Therefore, the output image will also have the same number of channels as the input one.
Another common feature of the functions and classes described in this section is that, unlike simple arithmetic functions, they need to extrapolate values of some non-existing pixels. For example, if you want to smooth an image using a Gaussian
filter, then, when processing the left-most pixels in each row, you need pixels to the left of them, that is, outside of the image. You can let these pixels be the same as the left-most image pixels ("replicated border" extrapolation method), or assume that all the non-existing pixels are zeros ("constant border" extrapolation method), and so on. OpenCV enables you to specify the extrapolation method. For details, see
BorderTypes
Input depth (src.depth()) | Output depth (ddepth) |
---|---|
CV_8U | -1/CV_16S/CV_32F/CV_64F |
CV_16U/CV_16S | -1/CV_32F/CV_64F |
CV_32F | -1/CV_32F/CV_64F |
CV_64F | -1/CV_64F |
@defgroup imgproc_transform Geometric Image TransformationsThe functions in this section perform various geometrical transformations of 2D images. They do not change the image content but deform the pixel grid and map this deformed grid to the destination image. In fact, to avoid sampling artifacts, the mapping is done in the reverse order, from destination to the source. That is, for each pixel
In case when you specify the forward mapping
, the OpenCV functions first compute the corresponding inverse mapping
and then use the above formula.
The actual implementations of the geometrical transformations, from the most generic remap and to the simplest and the fastest resize, need to solve two main problems with the above formula:
CV_8S
or
CV_32S
images.
@defgroup imgproc_misc Miscellaneous Image Transformations @defgroup imgproc_draw Drawing FunctionsDrawing functions work with matrices/images of arbitrary depth. The boundaries of the shapes can be rendered with antialiasing (implemented only for 8-bit images for now). All the functions include the parameter color that uses an RGB value (that may be constructed with the Scalar constructor ) for color images and brightness for grayscale images. For color images, the channel ordering is normally Blue, Green, Red. This is what imshow, imread, and imwrite expect. So, if you form a color using the Scalar constructor, it should look like:
If you are using your own image rendering and I/O functions, you can use any channel ordering. The drawing functions process each channel independently and do not depend on the channel order or even on the used color space. The whole image can be converted from BGR to RGB or to a different color space using cvtColor .
If a drawn figure is partially or completely outside the image, the drawing functions clip it. Also, many drawing functions can handle pixel coordinates specified with sub-pixel accuracy. This means that the coordinates can be passed as fixed-point numbers encoded as integers. The number of fractional bits is specified by the shift parameter and the real point coordinates are calculated as
. This feature is especially effective when rendering antialiased shapes.
@defgroup imgproc_color_conversions Color Space Conversions @defgroup imgproc_colormap ColorMaps in OpenCVThe human perception isn't built for observing fine changes in grayscale images. Human eyes are more sensitive to observing changes between colors, so you often need to recolor your grayscale images to get a clue about them. OpenCV now comes with various colormaps to enhance the visualization in your computer vision application.
In OpenCV you only need applyColorMap to apply a colormap on a given image. The following sample code reads the path to an image from command line, applies a Jet colormap on it and shows the result:
@defgroup imgproc_subdiv2d Planar SubdivisionThe Subdiv2D class described in this section is used to perform various planar subdivision on a set of 2D points (represented as vector of Point2f). OpenCV subdivides a plane into triangles using the Delaunay's algorithm, which corresponds to the dual graph of the Voronoi diagram. In the figure below, the Delaunay's triangulation is marked with black lines and the Voronoi diagram with red lines.
The subdivisions can be used for the 3D piece-wise transformation of a plane, morphing, fast location of points on the plane, building special graphs (such as NNG,RNG), and so forth.
@defgroup imgproc_hist Histograms @defgroup imgproc_shape Structural Analysis and Shape Descriptors @defgroup imgproc_motion Motion Analysis and Object Tracking @defgroup imgproc_feature Feature Detection @defgroup imgproc_object Object Detection @defgroup imgproc_segmentation Image Segmentation @defgroup imgproc_c C API @defgroup imgproc_hal Hardware Acceleration Layer @{ @defgroup imgproc_hal_functions Functions @defgroup imgproc_hal_interface Interface @}
enum cv::MorphShapes |
enum cv::MorphTypes |
モルフォロジー演算の種類
列挙値 | |
---|---|
MORPH_ERODE |
見るerode |
MORPH_DILATE |
見るdilate |
MORPH_OPEN |
開口部の操作
|
MORPH_CLOSE |
閉鎖操作
|
MORPH_GRADIENT |
モフォロジカルグラデーション
|
MORPH_TOPHAT(モルフトップハット |
"top hat"
|
MORPH_BLACKHAT(モルフ_ブラックハット |
"black hat"
|
MORPH_HITMISS |
"hit or miss" .- Only supported for CV_8UC1 binary images. A tutorial can be found in the documentation |
CV_EXPORTS_W void cv::bilateralFilter | ( | InputArray | src, |
OutputArray | dst, | ||
int | d, | ||
double | sigmaColor, | ||
double | sigmaSpace, | ||
int |
borderType
=
BORDER_DEFAULT
|
||
) |
バイラテラルフィルタを画像に適用します.
この関数は,入力画像にバイラテラルフィルタを適用します.http://www.dai.ed.ac.uk/CVonline/LOCAL_COPIES/MANDUCHI1/Bilateral_Filtering.htmlbilateralFilter は,エッジをかなりシャープに保ちつつ,不要なノイズを非常によく減らすことができます.ただし、他のフィルタに比べて非常に低速です。
シグマ値: シンプルにするために、2つのシグマ値を同じにすることができます。シグマ値が小さい(10以下)とフィルターの効果はほとんどありませんが、大きい(150以上)と非常に強い効果が得られ、画像が「漫画的」になります。
フィルターサイズ: 大きなフィルタ(d > 5)は非常に遅いので、リアルタイムのアプリケーションにはd=5を、重いノイズフィルタを必要とするオフラインのアプリケーションにはd=9を使用することをお勧めします。
このフィルターはインプレースでは動作しません。
src | 入力画像は,8ビットまたは浮動小数点,1チャンネルまたは3チャンネルの画像です. |
dst | src と同じサイズ,同じタイプの出力画像. |
d | フィルタリングの際に利用される,各ピクセルの近傍領域の直径.これが正の値でない場合, sigmaSpace から計算されます. |
sigmaColor | 色空間におけるフィルタリングシグマ.このパラメータの値が大きいほど,ピクセルの近傍領域( sigmaSpace を参照してください)内の離れた色が混ぜ合わされ,半均等な色の領域が広くなります. |
sigmaSpace | 座標空間でのフィルターシグマ。このパラメータの値を大きくすると,色が近ければ遠いピクセル同士が影響し合うことになります( sigmaColor 参照).d>0 の場合,sigmaSpace に関係なく近傍サイズを指定します.それ以外の場合,dはsigmaSpaceに比例します. |
borderType | ボーダーモードは,画像の外側のピクセルを外挿するために利用されます(seeBorderTypes |
CV_EXPORTS_W void cv::blur | ( | InputArray | src, |
OutputArray | dst, | ||
Size | ksize, | ||
Point |
anchor
=
Point(-1,-1) ,
|
||
int |
borderType
=
BORDER_DEFAULT
|
||
) |
正規化されたボックスフィルタを用いて,画像をぼかします.
この関数は,カーネルを用いて画像を平滑化します.
呼び出しはblur(src, dst, ksize, anchor, borderType)
は次のものと同じです.boxFilter(src, dst, src.type(), ksize, anchor, true, borderType)
.
src | 入力画像.任意の数のチャンネルを持つことができ,それらは独立して処理されますが,その深さは CV_8U, CV_16U, CV_16S, CV_32F または CV_64F であるべきです. |
dst | src と同じサイズ,同じ種類の出力画像. |
ksize | ブラーリングカーネルサイズ. |
anchor | アンカーポイント;デフォルト値 Point(-1,-1) は,カーネルの中心にアンカーがあることを意味します. |
borderType | ボーダーモードは,画像の外側のピクセルを外挿するために利用されます(seeBorderTypes.BORDER_WRAPはサポートされていません. |
CV_EXPORTS_W void cv::boxFilter | ( | InputArray | src, |
OutputArray | dst, | ||
int | ddepth, | ||
Size | ksize, | ||
Point |
anchor
=
Point(-1,-1) ,
|
||
bool |
normalize
=
true ,
|
||
int |
borderType
=
BORDER_DEFAULT
|
||
) |
ボックスフィルターを用いて,画像をぼかします.
この関数は,カーネルを用いて画像を平滑化します.
ここで
非正規化ボックスフィルターは,画像微分の共分散行列(密なオプティカルフローアルゴリズムなどで利用されます)など,各ピクセルの近傍に対する様々な積分特性を計算するのに役立ちます.可変サイズのウィンドウでピクセルの和を計算する必要がある場合はintegral.
src | 入力画像. |
dst | src と同じサイズ,同じ種類の出力画像. |
ddepth | 出力画像の深度(-1の場合は, src.depth() を利用します). |
ksize | ブラーリングカーネルサイズ. |
anchor | アンカーポイント;デフォルト値 Point(-1,-1) は,カーネルの中心にアンカーがあることを意味します. |
normalize | これは,カーネルをその面積で正規化するかどうかを指定するフラグです. |
borderType | ボーダーモードは,画像の外側のピクセルを外挿するために利用されます(seeBorderTypes.BORDER_WRAPはサポートされていません. |
CV_EXPORTS void cv::buildPyramid | ( | InputArray | src, |
OutputArrayOfArrays | dst, | ||
int | maxlevel, | ||
int |
borderType
=
BORDER_DEFAULT
|
||
) |
画像に対するガウシアンピラミッドを構築します.
この関数は,画像のベクトルを構築し,以前に構築されたピラミッドの層に対して,pyrDown を再帰的に適用することで,ガウス型ピラミッドを構築します.dst[0]==src
.
src | ソース画像.サポートされるタイプのリストは,pyrDown を参照してください. |
dst | src と同じタイプの maxlevel+1 画像の出力ベクトル. dst[0] は src と同じになります. dst[1] は,平滑化されてサイズが小さくなった src の次のピラミッド層,というようになります. |
maxlevel | 最後の(最も小さい)ピラミッドレイヤーの0ベースのインデックス.非負の値でなければいけません. |
borderType | ピクセル補外法,参照BorderTypes(BORDER_CONSTANTはサポートされていません) |
CV_EXPORTS_W void cv::dilate | ( | InputArray | src, |
OutputArray | dst, | ||
InputArray | kernel, | ||
Point |
anchor
=
Point(-1,-1) ,
|
||
int |
iterations
=
1 ,
|
||
int |
borderType
=
BORDER_CONSTANT
,
|
||
const Scalar & |
borderValue
=
morphologyDefaultBorderValue() |
||
) |
特定の構造化要素を利用して,画像を拡張します.
この関数は,最大値を取るピクセル近傍の形状を決める,指定された構造化要素を用いて,入力画像を拡張します.
この関数は,in-place モードをサポートします.この関数は,in-place モードをサポートしています.拡張は,複数回(繰り返し)行うことができます.マルチチャンネル画像の場合,各チャンネルは独立して処理されます.
src | 入力画像.チャンネル数は任意ですが,深さは CV_8U, CV_16U, CV_16S, CV_32F または CV_64F のいずれかでなければいけません. |
dst | src と同じサイズ,同じ種類の出力画像. |
kernel | elemenat=Mat() の場合は,3 x 3 の矩形の構造化要素が利用されます.カーネルは,以下の方法で作成できますgetStructuringElement |
anchor | 既定値 (-1, -1) は,アンカーが要素の中心にあることを意味します. |
iterations | ダイレーションの回数を指定します. |
borderType | ピクセル外挿法(参照BorderTypes.BORDER_WRAPはサポートされていません。 |
borderValue | ボーダーが一定の場合のボーダー値 |
CV_EXPORTS_W void cv::erode | ( | InputArray | src, |
OutputArray | dst, | ||
InputArray | kernel, | ||
Point |
anchor
=
Point(-1,-1) ,
|
||
int |
iterations
=
1 ,
|
||
int |
borderType
=
BORDER_CONSTANT
,
|
||
const Scalar & |
borderValue
=
morphologyDefaultBorderValue() |
||
) |
特定の構造化要素を用いて,画像を消去します.
この関数は,最小値が適用されるピクセル近傍の形状を決定する,指定された構造化要素を用いて,入力画像を消去します.
この関数は,in-place モードをサポートします.この関数は,in-place モードをサポートしています.侵食は,複数回(繰り返し)適用することができます.マルチチャンネル画像の場合,各チャンネルは個別に処理されます.
src | 入力画像.チャンネル数は任意ですが,深さは CV_8U, CV_16U, CV_16S, CV_32F または CV_64F のいずれかでなければいけません. |
dst | src と同じサイズ,同じ種類の出力画像. |
kernel | 侵食に利用される構造化要素.element=Mat() , a3 x 3 の場合、長方形の構造化要素が使用されます。を使用してカーネルを作成できます。getStructuringElement. |
anchor | 既定値 (-1, -1) は,アンカーが要素の中心にあることを意味します. |
iterations | エロージョンを適用する回数. |
borderType | ピクセル外挿法(参照BorderTypes.BORDER_WRAPはサポートされていません. |
borderValue | ボーダーが一定の場合のボーダー値 |
CV_EXPORTS_W void cv::filter2D | ( | InputArray | src, |
OutputArray | dst, | ||
int | ddepth, | ||
InputArray | kernel, | ||
Point |
anchor
=
Point(-1,-1) ,
|
||
double |
delta
=
0 ,
|
||
int |
borderType
=
BORDER_DEFAULT
|
||
) |
画像をカーネルで畳み込みます.
この関数は,画像に任意の線形フィルタを適用します.インプレース操作が可能です.また,開口部の一部が画像の外側にある場合,指定されたボーダーモードに従って,外れ値のピクセル値を補間します.
この関数は,畳み込みではなく相関を実際に計算します.
つまり,カーネルはアンカーポイントの周りにミラーリングされません.本当の畳み込みが必要な場合は,次のようにしてカーネルを反転させ,新しいアンカーをflipを用いてカーネルを反転させ,新しいアンカを(kernel.cols - anchor.x - 1, kernel.rows - anchor.y - 1)
.
この関数は,十分に大きなカーネル(~)の場合はDFTに基づくアルゴリズムを利用し,十分に大きなカーネル(~)の場合は直接アルゴリズムを利用します.11 x 11
以上)の場合はDFTベースのアルゴリズムを利用し,小さいカーネルの場合は直接アルゴリズムを利用します.
src | 入力画像. |
dst | src と同じサイズ,同じチャンネル数の出力画像. |
ddepth | 目的とする出力画像の深度,参照combinations |
kernel | シングルチャンネルの浮動小数点型行列であるコンボリューションカーネル(というよりも,相関カーネル).異なるチャンネルに異なるカーネルを適用したい場合は, split を用いて画像を別々のカラープレーンに分割し,それらを個別に処理します. |
anchor | カーネル内でのフィルタリングされた点の相対的な位置を示す,カーネルのアンカー.デフォルト値 (-1,-1) は,アンカーがカーネルの中心にあることを意味します. |
delta | dstに格納される前に,フィルタリングされたピクセルに追加されるオプション値. |
borderType | ピクセル外挿法(参照BorderTypes.BORDER_WRAPはサポートされていません. |
CV_EXPORTS_W void cv::GaussianBlur | ( | InputArray | src, |
OutputArray | dst, | ||
Size | ksize, | ||
double | sigmaX, | ||
double |
sigmaY
=
0 ,
|
||
int |
borderType
=
BORDER_DEFAULT
|
||
) |
ガウシアンフィルタを用いて,画像をぼかします.
この関数は,指定されたガウシアンカーネルで入力画像を畳み込みます.インプレースフィルタリングがサポートされています.
src | 入力画像.画像は任意の数のチャンネルを持つことができ,それらは独立して処理されますが,その深度は CV_8U, CV_16U, CV_16S, CV_32F または CV_64F であるべきです. |
dst | src と同じサイズ,同じ種類の出力画像. |
ksize | ガウシアンカーネルサイズ.ksize.width と ksize.height は,異なっていても構いませんが,両方とも正の奇数でなければいけません.あるいは,0でも構いませんが,その場合は sigma から計算されます. |
sigmaX | X方向のガウシアンカーネル標準偏差. |
sigmaY | Y方向のガウスカーネル標準偏差.sigmaYが0の場合は,sigmaXと等しくなるように設定され,両方のsigmaが0の場合は,それぞれksize.widthとksize.heightから計算されます(詳細はgetGaussianKernel結果を完全に制御するためには,将来的にこれらのセマンティクスが変更される可能性があっても,ksize,sigmaX,sigmaYのすべてを指定することが推奨されます. |
borderType | ピクセル外挿法(参照BorderTypes.BORDER_WRAPはサポートされていません. |
CV_EXPORTS_W void cv::getDerivKernels | ( | OutputArray | kx, |
OutputArray | ky, | ||
int | dx, | ||
int | dy, | ||
int | ksize, | ||
bool |
normalize
=
false ,
|
||
int |
ktype
=
CV_32F |
||
) |
空間画像導関数を計算するためのフィルタ係数を返します.
この関数は,空間画像導関数のためのフィルタ係数を計算して返します.この関数はksize=FILTER_SCHARR
の場合は,Scharrカーネルが生成されます(詳しくはScharr). そうでない場合は,Sobelカーネルが生成されます(参照).Sobel). これらのフィルタは,通常sepFilter2Dに,あるいは
kx | 行フィルタ係数の出力行列.これは ktype という型を持ちます. |
ky | 列フィルタ係数の出力行列.これは,タイプ ktype を持つ. |
dx | x に関する微分順序. |
dy | yに関する微分順序。 |
ksize | アパーチャサイズ.FILTER_SCHARR, 1, 3, 5, 7 のいずれかです. |
normalize | フィルタ係数を正規化(スケールダウン)するかどうかを示すフラグ。理論的には、係数の分母は次のようになります。![]() |
ktype | フィルタ係数の種類.CV_32f または CV_64F を指定します. |
CV_EXPORTS_W Mat cv::getGaborKernel | ( | Size | ksize, |
double | sigma, | ||
double | theta, | ||
double | lambd, | ||
double | gamma, | ||
double |
psi
=
CV_PI *0.5 ,
|
||
int |
ktype
=
CV_64F |
||
) |
ガボールフィルタの係数を返します.
ガボールフィルタの方程式やパラメータの詳細については,以下を参照してください.ガボールフィルタ.
ksize | 返されるフィルタのサイズ. |
sigma | ガウシアン包絡線の標準偏差. |
theta | ガボール関数の平行な縞に対する法線の向き。 |
lambd | 正弦波因子の波長 |
gamma | 空間的なアスペクト比 |
psi | 位相オフセット |
ktype | フィルタ係数の種類.CV_32F または CV_64F のいずれかです. |
CV_EXPORTS_W Mat cv::getGaussianKernel | ( | int | ksize, |
double | sigma, | ||
int |
ktype
=
CV_64F |
||
) |
ガウシアンフィルタの係数を返します.
この関数は,次のようなガウスフィルタ係数の行列を計算して返しますガウシアンフィルタ係数の行列を計算して返します.
ここでおよび
は,次のように選択されたスケールファクタです.
.
このようにして生成された2つのカーネルは, sepFilter2D に渡すことができます.これらの関数は,スムージングカーネル(重みの合計が1になるような対称的なカーネル)を自動的に認識し,それに応じた処理を行います.また、より上位の GaussianBlur を使ってもよいでしょう。
ksize | アパーチャのサイズ.奇数 (![]() |
sigma | ガウスの標準偏差。正数でない場合は,ksize から次のように計算されます.sigma = 0.3*((ksize-1)*0.5 - 1) + 0.8 . |
ktype | フィルタ係数の種類.CV_32F または CV_64F のいずれかです. |
IplConnection: 指定されたサイズと形状の構造化要素を、モフォロジカルな操作のために返します
この関数は,構造化要素を生成して返します.この構造化要素は,さらに次の関数に渡すことができます.erode,dilateまたはmorphologyEx. しかし,任意のバイナリマスクを自分で作成して,それを構造化要素として利用することもできます.
shape | 構造化要素の形状は,以下のいずれかになりますMorphShapes |
ksize | 構造化要素のサイズ. |
anchor | 要素内のアンカーの位置。デフォルト値は![]() |
CV_EXPORTS_W void cv::Laplacian | ( | InputArray | src, |
OutputArray | dst, | ||
int | ddepth, | ||
int |
ksize
=
1 ,
|
||
double |
scale
=
1 ,
|
||
double |
delta
=
0 ,
|
||
int |
borderType
=
BORDER_DEFAULT
|
||
) |
画像のラプラシアンを求めます.
この関数は,Sobel 演算子を用いて計算された x と y の2次導関数を足し合わせることで,入力画像のラプラシアンを計算します.
これは,以下の場合に行われますksize > 1
. の時に行われます.ksize == 1
の場合は,次のようなフィルタリングを行ってラプラシアンを求めます.アパーチャを使用します.
src | 元画像。 |
dst | src と同じサイズ,同じチャンネル数の出力画像. |
ddepth | デスティネーション画像に求められる深度. |
ksize | 2次微分フィルタの計算に利用されるアパーチャサイズ.詳細はgetDerivKernelsを参照してください.このサイズは,正かつ奇数でなければいけません. |
scale | 計算されたラプラシアン値に対するスケールファクター(オプション).デフォルトでは,スケーリングは行われません.参照getDerivKernelsを参照してください。 |
delta | オプションで,結果をdstに格納する前に追加されるdelta値. |
borderType | ピクセル補外法,参照BorderTypes.BORDER_WRAPはサポートされていません. |
CV_EXPORTS_W void cv::medianBlur | ( | InputArray | src, |
OutputArray | dst, | ||
int | ksize | ||
) |
中央値フィルタを用いて,画像をぼかします.
この関数は,メディアンフィルタを用いて画像を平滑化します.アパーチャを利用します.マルチチャンネル画像の各チャンネルは,個別に処理されます.インプレース操作が可能です.
src | 入力 1-, 3-, 4-チャンネル画像. ksize が3または5の場合,画像深度は CV_8U, CV_16U, CV_32F のいずれかになりますが,より大きなアパーチャサイズの場合は,CV_8Uにしかなりません. |
dst | src と同じサイズ,同じタイプの出力配列. |
ksize | アパーチャのリニアサイズ.奇数で 1 より大きい値でなければいけません.3, 5, 7 ... |
CV_EXPORTS_W void cv::morphologyEx | ( | InputArray | src, |
OutputArray | dst, | ||
int | op, | ||
InputArray | kernel, | ||
Point |
anchor
=
Point(-1,-1) ,
|
||
int |
iterations
=
1 ,
|
||
int |
borderType
=
BORDER_CONSTANT
,
|
||
const Scalar & |
borderValue
=
morphologyDefaultBorderValue() |
||
) |
高度な形態素変換を行います.
この関数はcv::morphologyExは,エロージョン(侵食)とダイレーション(拡張)を基本操作として,高度な形態素変換を行うことができます.
いずれの演算もインプレースで行うことができます。マルチチャンネル画像の場合、各チャンネルは独立して処理されます。
src | ソース画像。チャンネルの数は任意です.深度は,CV_8U, CV_16U, CV_16S, CV_32F, CV_64F のいずれかでなければいけません. |
dst | ソース画像と同じサイズ,同じ種類のデスティネーション画像. |
op | 形態学的操作の種類,参照MorphTypes |
kernel | 構造化要素.を利用して作成することができます.getStructuringElement. |
anchor | カーネルに対するアンカーの位置.負の値はアンカーがカーネルの中心にあることを意味します。 |
iterations | エロージョンとダイレーションの適用回数を指定します。 |
borderType | ピクセル補外法,参照BorderTypes.BORDER_WRAPはサポートされていません. |
borderValue | 境界線を一定にする場合の境界線の値です。デフォルト値には特別な意味があります。 |
CV_EXPORTS_W void cv::pyrDown | ( | InputArray | src, |
OutputArray | dst, | ||
const Size & |
dstsize
=
Size() ,
|
||
int |
borderType
=
BORDER_DEFAULT
|
||
) |
画像をぼかし、ダウンサンプリングします。
デフォルトでは、出力画像のサイズは次のように計算されます。Size((src.cols+1)/2, (src.rows+1)/2)
と計算されますが,どのような場合でも,以下の条件を満たす必要があります.
この関数は,ガウス型ピラミッド構築のダウンサンプリング処理を行います.まず最初に,入力画像をカーネルで畳み込みます.
そして,偶数行や偶数列を除去することで,画像をダウンサンプリングします.
src | 入力画像. |
dst | src と同じタイプで,指定されたサイズの出力画像が得られます. |
dstsize | 出力画像のサイズ. |
borderType | ピクセル補外法,参照BorderTypes(BORDER_CONSTANTはサポートされていません) |
CV_EXPORTS_W void cv::pyrMeanShiftFiltering | ( | InputArray | src, |
OutputArray | dst, | ||
double | sp, | ||
double | sr, | ||
int |
maxLevel
=
1 ,
|
||
TermCriteria |
termcrit
=
TermCriteria(TermCriteria::MAX_ITER+TermCriteria::EPS, 5, 1) |
||
) |
画像のMeanshift Segmentationの初期段階を実行します.
この関数は,Meanshift Segmentation のフィルタリングステージを実装しています.つまり,この関数の出力は,色のグラデーションや細かいテクスチャが平坦になるようにフィルタリングされた「ポスタライズド」画像となります.この関数は,入力画像(あるいはダウンサイズされた入力画像,下記参照)の各ピクセル(X,Y)に対して,平均シフトの反復処理を行います.つまり,結合空間-色ハイパースペースにおけるピクセル(X,Y)の近傍領域が考慮されます.
ここで,(R,G,B)と(r,g,b)は,それぞれ(X,Y)と(x,y)における色成分のベクトルです(ただし,このアルゴリズムは,使用する色空間に依存しないので,任意の3成分色空間を代わりに利用することができます).近傍では、平均空間値(X',Y')と平均色ベクトル(R',G',B')が求められ、次の反復では、これらが近傍の中心として機能します。
反復終了後、初期ピクセル(つまり、反復を開始したピクセル)の色成分は、最終値(最後の反復での平均色)に設定されます。
maxLevel > 0の場合、maxLevel+1階層のガウス型ピラミッドを構築し、まず最小の階層で上記の手順を実行します。その後、その結果をより大きな層に伝搬させ、ピラミッドの低解像度の層と層の色が sr 以上異なる画素のみに、再度反復を行います。これにより、色の領域の境界がより鮮明になります。なお、元画像全体に対してMeanshift処理を行った場合(maxLevel==0の場合)とは、実際には異なる結果が得られます。
src | 8ビット,3チャンネルの入力画像. |
dst | 元画像と同じフォーマット,同じサイズの出力画像. |
sp | 空間窓の半径 |
sr | 色の窓の半径 |
maxLevel | セグメンテーションのためのピラミッドの最大レベル |
termcrit | 終了基準:Meanshiftの反復をいつ止めるか. |
CV_EXPORTS_W void cv::pyrUp | ( | InputArray | src, |
OutputArray | dst, | ||
const Size & |
dstsize
=
Size() ,
|
||
int |
borderType
=
BORDER_DEFAULT
|
||
) |
画像をアップサンプリングしてから,それをぼかします.
デフォルトでは、出力画像のサイズは次のように計算されます。Size(src.cols\*2, (src.rows\*2)
と計算されますが,どのような場合でも,以下の条件を満たす必要があります.
この関数は,ガウス型ピラミッド構築のアップサンプリングステップを実行しますが,実際にはラプラシアン型ピラミッドの構築にも利用できます.まず,偶数の0行と0列を入力して入力画像をアップサンプリングし,その結果を, pyrDown と同じカーネルを4倍したもので畳み込みます.
src | 入力画像. |
dst | 出力画像.src と同じタイプで,指定されたサイズの画像が出力されます. |
dstsize | 出力画像のサイズ. |
borderType | ピクセル補外法,参照BorderTypes(のみサポートされています).BORDER_DEFAULTのみサポートされています) |
CV_EXPORTS_W void cv::Scharr | ( | InputArray | src, |
OutputArray | dst, | ||
int | ddepth, | ||
int | dx, | ||
int | dy, | ||
double |
scale
=
1 ,
|
||
double |
delta
=
0 ,
|
||
int |
borderType
=
BORDER_DEFAULT
|
||
) |
Scharr演算子を用いて,画像の1次x-またはy-微分を計算します.
この関数は,Scharr演算子を用いて,x-またはy-の空間画像1次微分を計算します.この関数の呼び出しは
は次のものと同じです.
src | 入力画像. |
dst | src と同じサイズ,同じチャンネル数の出力画像. |
ddepth | 出力画像の深度,参照combinations |
dx | 微分の次数 x. |
dy | 微分の順序 y. |
scale | 計算された微分値に対する任意のスケールファクタ.デフォルトでは,スケーリングは行われません(SeegetDerivKernelsを参照してください). |
delta | dstに格納する前に結果に追加されるデルタ値(オプション). |
borderType | ピクセル外挿法(参照BorderTypes.BORDER_WRAPはサポートされていません. |
CV_EXPORTS_W void cv::sepFilter2D | ( | InputArray | src, |
OutputArray | dst, | ||
int | ddepth, | ||
InputArray | kernelX, | ||
InputArray | kernelY, | ||
Point |
anchor
=
Point(-1,-1) ,
|
||
double |
delta
=
0 ,
|
||
int |
borderType
=
BORDER_DEFAULT
|
||
) |
画像に分離可能な線形フィルタを適用します.
この関数は,画像に分離可能な線形フィルタを適用します.つまり,まず src の各行が,1次元のカーネル kernelX でフィルタリングされます.そして,結果の各列は,1次元カーネルkernelYでフィルタリングされます.delta によってシフトされた最終的な結果が, dst に格納されます.
src | 元画像。 |
dst | src と同じサイズ,同じチャンネル数の出力画像. |
ddepth | 出力画像の深度,参照combinations |
kernelX | 各行をフィルタリングするための係数です。 |
kernelY | 各列をフィルタリングするための係数. |
anchor | カーネル内のアンカー位置.デフォルトの値である![]() |
delta | フィルタリングされた結果を保存する前に追加される値。 |
borderType | ピクセル補外法,参照BorderTypes.BORDER_WRAPはサポートされていません. |
CV_EXPORTS_W void cv::Sobel | ( | InputArray | src, |
OutputArray | dst, | ||
int | ddepth, | ||
int | dx, | ||
int | dy, | ||
int |
ksize
=
3 ,
|
||
double |
scale
=
1 ,
|
||
double |
delta
=
0 ,
|
||
int |
borderType
=
BORDER_DEFAULT
|
||
) |
拡張Sobel演算子を用いて,1次,2次,3次,または混合画像微分を計算します.
1つのケースを除くすべてのケースではseparable kernelが微分の計算に使われます。この場合
の間に対応が見つからない場合は
または
カーネルが使用されます(つまり,ガウシアンスムージングは行われません).
ksize = 1
は1回目または2回目のx-またはy-の導関数にのみ使用できます。
また,特別な値ksize = #FILTER_SCHARR (-1)
に対応する特別な値Scharrフィルターは、Sobelよりも正確な結果を得ることができます。
Sobel。シャールのアパーチャは
は,x-derivative の場合は
この関数は,画像を適切なカーネルと畳み込むことで,画像の微分を計算します.
Sobel演算子は,ガウス平滑化と微分を組み合わせたものなので,多少なりともノイズに強い結果が得られます.多くの場合,この関数は ( xorder = 1, yorder = 0, ksize = 3) または ( xorder = 0, yorder = 1, ksize = 3) で呼び出され,1次xまたはyの画像微分を計算します.第1のケースは、のカーネルに対応しています。
のカーネルに対応しています。
src | 入力画像. |
dst | src と同じサイズ,同じチャンネル数の出力画像. |
ddepth | 出力画像の深度,参照combinationsのカーネルに対応します.8ビットの入力画像の場合は,導関数が切り詰められたものになります. |
dx | 微分の次数 x. |
dy | 微分の順序 y. |
ksize | 拡張 Sobel カーネルのサイズ:1, 3, 5, 7 のいずれかでなければいけません. |
scale | 計算された微分値に対する任意のスケールファクタ.デフォルトでは,スケーリングは行われません(SeegetDerivKernelsを参照してください). |
delta | dstに格納する前に結果に追加されるデルタ値(オプション). |
borderType | ピクセル外挿法(参照BorderTypes.BORDER_WRAPはサポートされていません. |
CV_EXPORTS_W void cv::spatialGradient | ( | InputArray | src, |
OutputArray | dx, | ||
OutputArray | dy, | ||
int |
ksize
=
3 ,
|
||
int |
borderType
=
BORDER_DEFAULT
|
||
) |
Sobel演算子を用いて,xとyの両方で画像の1次微分を計算します.
を呼び出すのと同じです.
src | 入力画像. |
dx | output image with first-order derivative in x. |
dy | yで1階微分された画像を出力します. |
ksize | Sobelカーネルのサイズを指定します.3でなければなりません。 |
borderType | ピクセル外挿法(参照BorderTypes. のみです.BORDER_DEFAULT=BORDER_REFLECT_101およびBORDER_REPLICATEと同じ形式がサポートされています. |
CV_EXPORTS_W void cv::sqrBoxFilter | ( | InputArray | src, |
OutputArray | dst, | ||
int | ddepth, | ||
Size | ksize, | ||
Point |
anchor
=
Point(-1, -1) ,
|
||
bool |
normalize
=
true ,
|
||
int |
borderType
=
BORDER_DEFAULT
|
||
) |
フィルタに重なるピクセル値の,正規化された二乗和を求めます.
各ピクセルに対してこの関数は,入力画像において,ピクセル上に配置されたフィルタと重なる,隣接するピクセル値の平方和を求めます.
.
正規化されていないスクエアボックスフィルタは,ピクセルの近傍における局所的な分散や標準偏差など,画像の局所的な統計量を計算するのに役立ちます.
src | 入力画像 |
dst | src と同じサイズ,同じタイプの出力画像 |
ddepth | 出力画像の深度(-1 の場合は, src.depth() を利用します). |
ksize | カーネルサイズ |
anchor | カーネルのアンカーポイント.デフォルト値の Point(-1, -1) は,カーネルの中心にアンカーを置くことを意味します. |
normalize | カーネルをその面積で正規化するかどうかを指定するフラグ. |
borderType | ボーダーモードは,画像の外側のピクセルを外挿するために利用されます(seeBorderTypes.BORDER_WRAPはサポートされていません. |