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

線分検出器クラス。 続きを読む...

#include <opencv2/imgproc.hpp>

Collaboration diagram for cv::LineSegmentDetector:

公開メンバ関数

virtual ~LineSegmentDetector ()
 
virtual int compareSegments (const Size &size, InputArray lines1, InputArray lines2, InputOutputArray image=noArray())=0
 2つのラインのグループを青と赤で描画し、重ならない(不一致の)ピクセル数をカウントする。
 
virtual void detect (InputArray image, OutputArray lines, OutputArray width=noArray(), OutputArray prec=noArray(), OutputArray nfa=noArray())=0
 入力画像からラインを検出する。
 
virtual void drawSegments (InputOutputArray image, InputArray lines)=0
 指定された画像上に線分を描画する。
 
- Public Member Functions inherited from cv::Algorithm
 Algorithm ()
 
virtual ~Algorithm ()
 
virtual void clear ()
 アルゴリズムの状態をクリアする。
 
virtual bool empty () const
 Algorithm が空の場合(たとえば開始直後や読み込みに失敗した後)に true を返す。
 
virtual String getDefaultName () const
 
virtual void read (const FileNode &fn)
 ファイルストレージからアルゴリズムの引数を読み込む。
 
virtual void save (const String &filename) const
 
virtual void write (FileStorage &fs) const
 アルゴリズムの引数をファイルストレージに保存する。
 
void write (FileStorage &fs, const String &name) const
 

Additional Inherited Members

- Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 ファイルからアルゴリズムを読み込む。
 
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 文字列からアルゴリズムを読み込む。
 
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 ファイルノードからアルゴリズムを読み込む。
 
- Protected Member Functions inherited from cv::Algorithm
void writeFormat (FileStorage &fs) const
 

詳細説明

線分検出器クラス。

[114] に記述されているアルゴリズムに従う。

覚え書き
元のコードのライセンス上の競合により、実装はOpenCVバージョン3.4.6から3.4.15、およびバージョン4.1.0から4.5.3で削除された。Computation of a NFA のコードがMITライセンスで公開された後、再び復元された。

構築子と解体子の詳解

◆ ~LineSegmentDetector()

virtual cv::LineSegmentDetector::~LineSegmentDetector ( )
inlinevirtual

メンバ関数詳解

◆ compareSegments()

virtual int cv::LineSegmentDetector::compareSegments ( const Size & size,
InputArray lines1,
InputArray lines2,
InputOutputArray image = noArray() )
pure virtual
Python:
cv.LineSegmentDetector.compareSegments(size, lines1, lines2[, image]) -> retval, image

2つのラインのグループを青と赤で描画し、重ならない(不一致の)ピクセル数をカウントする。

引数
sizelines1 と lines2 が見つかった画像のサイズ。
lines1描画する必要のある1つ目の線分グループ。青色で可視化される。
lines22つ目の線分グループ。赤色で可視化される。
image線分を描画する省略可能な画像。lines1 と lines2 を上記の色で描画するために、画像はカラー (3チャンネル) であるべきである。
この関数の呼び出しグラフ:

◆ detect()

virtual void cv::LineSegmentDetector::detect ( InputArray image,
OutputArray lines,
OutputArray width = noArray(),
OutputArray prec = noArray(),
OutputArray nfa = noArray() )
pure virtual
Python:
cv.LineSegmentDetector.detect(image[, lines[, width[, prec[, nfa]]]]) -> lines, width, prec, nfa

入力画像からラインを検出する。

これは上に示した画像に対してアルゴリズムをデフォルト引数で適用した出力である。

image
引数
imageグレースケール (CV_8UC1) の入力画像。roi のみを選択する必要がある場合は次のように使用する: lsd_ptr-\>detect(image(roi), lines, ...); lines += Scalar(roi.x, roi.y, roi.x, roi.y);
lines線分の始点と終点を指定する Vec4f 要素のベクトル。Vec4f は (x1, y1, x2, y2) であり、点1が始点、点2が終点。返される線分は勾配に応じて厳密に向き付けられている。
width線分が見つかった領域の幅のベクトル。例: 線の幅。
prec直線が検出された際の精度のベクトル。
nfaライン領域内の誤検出数を10%の精度で格納したベクトル。値が大きいほど、対数的に検出精度が良いことを示す。
  • -1 は平均10個の誤検出に対応する
  • 0 は平均1個の誤検出に対応する
  • 1 は平均0.1個の誤検出に対応する このベクトルは、オブジェクトの型が LSD_REFINE_ADV のときにのみ計算される。
この関数の呼び出しグラフ:

◆ drawSegments()

virtual void cv::LineSegmentDetector::drawSegments ( InputOutputArray image,
InputArray lines )
pure virtual
Python:
cv.LineSegmentDetector.drawSegments(image, lines) -> image

指定された画像上に線分を描画する。

引数
imageラインが描画される画像。ラインが検出された画像以上のサイズである必要がある。
lines描画する必要があるラインのベクトル。

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