OpenCV 4.5.3(日本語機械翻訳)
全て クラス 名前空間 ファイル 関数 変数 型定義 列挙型 列挙値 フレンド グループ ページ
公開メンバ関数 | 公開変数類 | 全メンバ一覧
cv::LineIterator クラス

Line iterator [詳解]

#include <imgproc.hpp>

公開メンバ関数

LineIterator (const Mat &img, Point pt1, Point pt2, int connectivity=8, bool leftToRight=false)
イテレータの初期化[【詳解】(英語]
LineIterator (Point pt1, Point pt2, int connectivity=8, bool leftToRight=false)
LineIterator (Size boundingAreaSize, Point pt1, Point pt2, int connectivity=8, bool leftToRight=false)
LineIterator (Rect boundingAreaRect, Point pt1, Point pt2, int connectivity=8, bool leftToRight=false)
void init (const Mat *img, Rect boundingAreaRect, Point pt1, Point pt2, int connectivity, bool leftToRight)
uchar * operator* ()
現在のピクセルへのポインタを返します
LineIterator & operator++ ()
前置インクリメント演算子 (++it). イテレータを次のピクセルに移動させます
LineIterator operator++ (int)
後置増分演算子 (it++). イテレータを次のピクセルに移動します。
Point pos () const
現在のピクセルの座標を返します.

公開変数類

uchar * ptr
const uchar * ptr0
int step
int elemSize
int err
int count
int minusDelta
int plusDelta
int minusStep
int plusStep
int minusShift
int plusShift
Point p
bool ptmode

詳解

ラインイテレータ

このクラスは、指定された2点を結ぶラスタ線分上のすべてのピクセルを反復処理するために使用されます。

このクラスはLineIteratorは、ラスタラインの各ピクセルを取得するために使用されます。これは、Bresenham アルゴリズムの汎用的な実装として扱うことができ、各ピクセルで停止して追加の処理を行うことができます。例えば、線に沿ってピクセル値を取得したり、(XOR 演算などで)効果的に線を描画したりすることができます。

線に沿ったピクセルの数が LineIterator::count に格納されます。メソッドはLineIterator::posは、画像内の現在の位置を返します。

// grabs pixels along the line (pt1, pt2)
// from 8-bit 3-channel image to the buffer
LineIterator it(img, pt1, pt2, 8);
LineIterator it2 = it;
vector<Vec3b> buf(it.count);
for(int i = 0; i < it.count; i++, ++it)
buf[i] = *(const Vec3b*)*it;
// alternative way of iterating through the line
for(int i = 0; i < it2.count; i++, ++it2)
{
Vec3b val = img.at<Vec3b>(it2.pos());
CV_Assert(buf[i] == val);
}
LineIterator(const Mat &img, Point pt1, Point pt2, int connectivity=8, bool leftToRight=false)
initializes the iterator
Definition: imgproc.hpp:4828
#define CV_Assert(expr)
Checks a condition at runtime and throws exception if it fails
Definition: base.hpp:342

構築子と解体子

LineIterator()

cv::LineIterator::LineIterator ( const Mat & img,
Point pt1,
Point pt2,
int connectivity = 8,
bool leftToRight = false
)
inline

イテレータの初期化

pt1 と pt2 を結ぶ線のイテレータを作成 線は画像の境界で切り取られます 線は 8 連結または 4 連結です leftToRight=true の場合、反復は常に左端の点から右端の点まで行われ、pt1 と pt2 のパラメータの順序には依存しません。


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