opencv on mbed

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

LineIterator Class Reference

LineIterator Class Reference
[Drawing Functions]

Line iterator. More...

#include <imgproc.hpp>

Public Member Functions

 LineIterator (const Mat &img, Point pt1, Point pt2, int connectivity=8, bool leftToRight=false)
 intializes the iterator
uchar * operator* ()
 returns pointer to the current pixel
LineIteratoroperator++ ()
 prefix increment operator (++it).
LineIterator operator++ (int)
 postfix increment operator (it++).
Point pos () const
 returns coordinates of the current pixel

Detailed Description

Line iterator.

The class is used to iterate over all the pixels on the raster line segment connecting two specified points.

The class LineIterator is used to get each pixel of a raster line. It can be treated as versatile implementation of the Bresenham algorithm where you can stop at each pixel and do some extra processing, for example, grab pixel values along the line or draw a line with an effect (for example, with XOR operation).

The number of pixels along the line is stored in LineIterator::count. The method LineIterator::pos returns the current position in the image:

 {.cpp}
// 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);
}

Definition at line 4247 of file imgproc.hpp.


Constructor & Destructor Documentation

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

intializes the iterator

creates iterators for the line connecting pt1 and pt2 the line will be clipped on the image boundaries the line is 8-connected or 4-connected If leftToRight=true, then the iteration is always done from the left-most point to the right most, not to depend on the ordering of pt1 and pt2 parameters


Member Function Documentation

uchar* operator* (  )

returns pointer to the current pixel

LineIterator& operator++ (  )

prefix increment operator (++it).

shifts iterator to the next pixel

LineIterator operator++ ( int   )

postfix increment operator (it++).

shifts iterator to the next pixel

Point pos (  ) const

returns coordinates of the current pixel