Struct opencv::imgproc::LineIterator
source · [−]pub struct LineIterator { /* private fields */ }
Expand 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:
// 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);
}
Implementations
sourceimpl LineIterator
impl LineIterator
sourcepub fn new(
img: &Mat,
pt1: Point,
pt2: Point,
connectivity: i32,
left_to_right: bool
) -> Result<LineIterator>
pub fn new(
img: &Mat,
pt1: Point,
pt2: Point,
connectivity: i32,
left_to_right: bool
) -> Result<LineIterator>
initializes 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;
C++ default parameters
- connectivity: 8
- left_to_right: false
sourcepub fn new_1(
pt1: Point,
pt2: Point,
connectivity: i32,
left_to_right: bool
) -> Result<LineIterator>
pub fn new_1(
pt1: Point,
pt2: Point,
connectivity: i32,
left_to_right: bool
) -> Result<LineIterator>
C++ default parameters
- connectivity: 8
- left_to_right: false
sourcepub fn new_2(
bounding_area_size: Size,
pt1: Point,
pt2: Point,
connectivity: i32,
left_to_right: bool
) -> Result<LineIterator>
pub fn new_2(
bounding_area_size: Size,
pt1: Point,
pt2: Point,
connectivity: i32,
left_to_right: bool
) -> Result<LineIterator>
C++ default parameters
- connectivity: 8
- left_to_right: false
sourcepub fn new_3(
bounding_area_rect: Rect,
pt1: Point,
pt2: Point,
connectivity: i32,
left_to_right: bool
) -> Result<LineIterator>
pub fn new_3(
bounding_area_rect: Rect,
pt1: Point,
pt2: Point,
connectivity: i32,
left_to_right: bool
) -> Result<LineIterator>
C++ default parameters
- connectivity: 8
- left_to_right: false
Trait Implementations
sourceimpl Boxed for LineIterator
impl Boxed for LineIterator
sourceimpl Drop for LineIterator
impl Drop for LineIterator
sourceimpl LineIteratorTrait for LineIterator
impl LineIteratorTrait for LineIterator
fn as_raw_mut_LineIterator(&mut self) -> *mut c_void
fn ptr(&mut self) -> *mut u8
unsafe fn set_ptr(&mut self, val: *mut u8)
fn set_step(&mut self, val: i32)
fn set_elem_size(&mut self, val: i32)
fn set_err(&mut self, val: i32)
fn set_count(&mut self, val: i32)
fn set_minus_delta(&mut self, val: i32)
fn set_plus_delta(&mut self, val: i32)
fn set_minus_step(&mut self, val: i32)
fn set_plus_step(&mut self, val: i32)
fn set_minus_shift(&mut self, val: i32)
fn set_plus_shift(&mut self, val: i32)
fn set_p(&mut self, val: Point)
fn set_ptmode(&mut self, val: bool)
fn init(
&mut self,
img: &Mat,
bounding_area_rect: Rect,
pt1: Point,
pt2: Point,
connectivity: i32,
left_to_right: bool
) -> Result<()>
sourcefn try_deref_mut(&mut self) -> Result<*mut u8>
fn try_deref_mut(&mut self) -> Result<*mut u8>
returns pointer to the current pixel
sourcefn incr(&mut self) -> Result<LineIterator>
fn incr(&mut self) -> Result<LineIterator>
prefix increment operator (++it). shifts iterator to the next pixel
sourceimpl LineIteratorTraitConst for LineIterator
impl LineIteratorTraitConst for LineIterator
fn as_raw_LineIterator(&self) -> *const c_void
fn ptr0(&self) -> *const u8
fn step(&self) -> i32
fn elem_size(&self) -> i32
fn err(&self) -> i32
fn count(&self) -> i32
fn minus_delta(&self) -> i32
fn plus_delta(&self) -> i32
fn minus_step(&self) -> i32
fn plus_step(&self) -> i32
fn minus_shift(&self) -> i32
fn plus_shift(&self) -> i32
fn p(&self) -> Point
fn ptmode(&self) -> bool
impl Send for LineIterator
Auto Trait Implementations
impl RefUnwindSafe for LineIterator
impl !Sync for LineIterator
impl Unpin for LineIterator
impl UnwindSafe for LineIterator
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more