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

ラスタ線分上のすべてのピクセルを反復処理するためのクラス。 詳細...

#include <opencv2/imgproc.hpp>

Collaboration diagram for cv::LineIterator:

公開メンバ関数

 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 (Rect boundingAreaRect, Point pt1, Point pt2, int connectivity=8, bool leftToRight=false)
 
 LineIterator (Size boundingAreaSize, 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)
 
ucharoperator* ()
 現在のピクセルへのポインタを返す。
 
LineIteratoroperator++ ()
 イテレータを線上の次のピクセルへ移動する。
 
LineIterator operator++ (int)
 イテレータを線上の次のピクセルへ移動する。
 
Point pos () const
 現在のピクセルの座標を返す。
 

公開変数類

int count
 
int elemSize
 
int err
 
int minusDelta
 
int minusShift
 
int minusStep
 
Point p
 
int plusDelta
 
int plusShift
 
int plusStep
 
bool ptmode
 
ucharptr
 
const ucharptr0
 
int step
 

詳細説明

ラスタ線分上のすべてのピクセルを反復処理するためのクラス。

LineIterator クラスは、指定した2点を結ぶラスタ線上の各ピクセルを取得するために使用する。これは 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);
}
Class for iterating over all pixels on a raster line segment.
Definition imgproc.hpp:4439
int count
Definition imgproc.hpp:4509
Point pos() const
Returns coordinates of the current pixel.
Template class for short numerical vectors, a partial case of Matx.
Definition matx.hpp:379
#define CV_Assert(expr)
Checks a condition at runtime and throws exception if it fails.
Definition exception.hpp:198

構築子と解体子の詳解

◆ LineIterator() [1/4]

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

指定した線と画像に対して反復子オブジェクトを初期化する。

返される反復子は、指定した2点を結ぶ線上のすべてのピクセルを走査するために使用できる。線は画像境界でクリップされる。

引数
img元となる画像。
pt1線の第1の端点。
pt2線のもう一方の端点。
connectivityイテレータのピクセル連結性。有効な値は 4(イテレータは上下左右に移動できる)と 8(イテレータは斜めにも移動できる)である。
leftToRighttrue の場合、線は最も左の端点から最も右の端点へ向かってたどられる。そうでない場合、線は pt1 から pt2 へたどられる。

◆ LineIterator() [2/4]

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

◆ LineIterator() [3/4]

cv::LineIterator::LineIterator ( Size boundingAreaSize,
Point pt1,
Point pt2,
int connectivity = 8,
bool leftToRight = false )
inline

◆ LineIterator() [4/4]

cv::LineIterator::LineIterator ( Rect boundingAreaRect,
Point pt1,
Point pt2,
int connectivity = 8,
bool leftToRight = false )
inline

メンバ関数詳解

◆ init()

void cv::LineIterator::init ( const Mat * img,
Rect boundingAreaRect,
Point pt1,
Point pt2,
int connectivity,
bool leftToRight )

◆ operator*()

uchar * cv::LineIterator::operator* ( )

現在のピクセルへのポインタを返す。

◆ operator++() [1/2]

LineIterator & cv::LineIterator::operator++ ( )

反復子を線上の次のピクセルへ移動する。

これは前置版 (++it) である。

◆ operator++() [2/2]

LineIterator cv::LineIterator::operator++ ( int )

反復子を線上の次のピクセルへ移動する。

これは後置版 (it++) である。

◆ pos()

Point cv::LineIterator::pos ( ) const

現在のピクセルの座標を返す。

メンバ変数詳解

◆ count

int cv::LineIterator::count

◆ elemSize

int cv::LineIterator::elemSize

◆ err

int cv::LineIterator::err

◆ minusDelta

int cv::LineIterator::minusDelta

◆ minusShift

int cv::LineIterator::minusShift

◆ minusStep

int cv::LineIterator::minusStep

◆ p

Point cv::LineIterator::p

◆ plusDelta

int cv::LineIterator::plusDelta

◆ plusShift

int cv::LineIterator::plusShift

◆ plusStep

int cv::LineIterator::plusStep

◆ ptmode

bool cv::LineIterator::ptmode

◆ ptr

uchar* cv::LineIterator::ptr

◆ ptr0

const uchar* cv::LineIterator::ptr0

◆ step

int cv::LineIterator::step

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