OpenCV 4.5.3(日本語機械翻訳)
公開メンバ関数 | 全メンバ一覧
cv::LineSegmentDetector クラス abstract

Line segment detector class [詳解]

#include <imgproc.hpp>

cv::Algorithmを継承しています。

公開メンバ関数

virtual CV_WRAP void detect (InputArray image, OutputArray lines, OutputArray width=noArray(), OutputArray prec=noArray(), OutputArray nfa=noArray())=0
入力画像中の線を検出します.[【詳解】(英語]
virtual CV_WRAP void drawSegments (InputOutputArray image, InputArray lines)=0
与えられた画像上に線分を描画します。[【詳解】(英語]
virtual CV_WRAP int compareSegments (const Size &size, InputArray lines1, InputArray lines2, InputOutputArray image=noArray())=0
青と赤の2つの線のグループを,重ならない(不一致の)ピクセルを数えながら描きます.[【詳解】(英語]
- 基底クラス cv::Algorithm に属する継承公開メンバ関数
virtual CV_WRAP void clear ()
アルゴリズムの状態をクリアする[【詳解】(英語]
virtual void write (FileStorage &fs) const
アルゴリズムのパラメーターをファイルストレージに格納[【詳解】(英語]
CV_WRAP void write (const Ptr< FileStorage > &fs, const String &name=String()) const
これはオーバーロードされたメンバ関数です。利便性のために用意されています。元の関数との違いは引き数のみです。
virtual CV_WRAP void read (const FileNode &fn)
アルゴリズム・パラメータをファイル・ストレージから読み込みます。[【詳解】(英語]
virtual CV_WRAP bool empty () const
が空の場合はtrueを返します。Algorithmが空の場合は真を返します。[【詳解】(英語]
virtual CV_WRAP void save (const String &filename) const
virtual CV_WRAP String getDefaultName () const

その他の継承メンバ

- 基底クラス cv::Algorithm に属する継承静的公開メンバ関数
template<typename _Tp >
static Ptr< _Tp > read (const FileNode &fn)
ファイル・ノードからアルゴリズムを読み込む[【詳解】(英語]
template<typename _Tp >
static Ptr< _Tp > load (const String &filename, const String &objname=String())
ファイルからアルゴリズムを読み込む[【詳解】(英語]
template<typename _Tp >
static Ptr< _Tp > loadFromString (const String &strModel, const String &objname=String())
文字列からアルゴリズムを読み込む[【詳解】(英語]
- 基底クラス cv::Algorithm に属する継承限定公開メンバ関数
void writeFormat (FileStorage &fs) const

詳解

線分検出器クラス

で説明されているアルゴリズムに従って計算されます。[Rafael12].

覚え書き
オリジナルコードのライセンスの関係で,実装は削除されました

関数詳解

compareSegments()

virtual CV_WRAP int cv::LineSegmentDetector::compareSegments ( const Size & size,
InputArray lines1,
InputArray lines2,
InputOutputArray image = noArray()
)
pure virtual

青と赤の2つの線のグループを,重ならない(不一致の)ピクセルを数えながら描きます.

引数
size lines1 と lines2 が見つかった画像のサイズ。
lines1 描画する必要のある最初の線のグループ。青色で表示されています。
lines2 線の第2グループ。赤い色で表示されます。
image 線が描画される場所を示す任意の画像.lines1 と lines2 が上記の色で描画されるためには,画像はカラー(3チャンネル)でなければいけません.

detect()

virtual CV_WRAP void cv::LineSegmentDetector::detect ( InputArray image,
OutputArray lines,
OutputArray width = noArray(),
OutputArray prec = noArray(),
OutputArray nfa = noArray()
)
pure virtual

入力画像中の線を検出します.

これは,上図の画像にアルゴリズムのデフォルトパラメータを適用した場合の出力です.

image

引数
image グレースケール(CV_8UC1)の入力画像.線のみを選択する必要がある場合は,次のようにします.lsd_ptr-\>detect(image(roi), lines, ...); lines += Scalar(roi.x, roi.y, roi.x, roi.y);
lines Vec4i または Vec4f の要素からなるベクトルで、線の始点と終点を指定する。Vec4i/Vec4fは(x1, y1, x2, y2)で、点1が始点、点2が終点となります。返された線は、グラデーションに応じて厳密な向きになっています。
width 線が検出された領域の幅のベクトルです。例えば、線の幅です。
prec 線が検出された精度のベクトル。
nfa 線の領域での誤認識の数を含むベクトル(精度10%)。値が大きいほど、対数的に優れた検出ができる。
  • -1は10回の平均誤認識に対応する
  • 0は1個の平均誤認識に対応する
  • 1 は 0.1 個の平均誤認識に対応する このベクトルは、オブジェクトタイプがLSD_REFINE_ADV.

drawSegments()

virtual CV_WRAP void cv::LineSegmentDetector::drawSegments ( InputOutputArray image,
InputArray lines
)
pure virtual

与えられた画像上に線分を描画します。

引数
image 線分が描画される画像。線が検出された画像よりも大きいか同じでなければなりません。
lines 描画する必要のある線のベクトルです。

このクラス詳解は次のファイルから抽出されました: