LSST Applications g063fba187b+cac8b7c890,g0f08755f38+6aee506743,g1653933729+a8ce1bb630,g168dd56ebc+a8ce1bb630,g1a2382251a+b4475c5878,g1dcb35cd9c+8f9bc1652e,g20f6ffc8e0+6aee506743,g217e2c1bcf+73dee94bd0,g28da252d5a+1f19c529b9,g2bbee38e9b+3f2625acfc,g2bc492864f+3f2625acfc,g3156d2b45e+6e55a43351,g32e5bea42b+1bb94961c2,g347aa1857d+3f2625acfc,g35bb328faa+a8ce1bb630,g3a166c0a6a+3f2625acfc,g3e281a1b8c+c5dd892a6c,g3e8969e208+a8ce1bb630,g414038480c+5927e1bc1e,g41af890bb2+8a9e676b2a,g7af13505b9+809c143d88,g80478fca09+6ef8b1810f,g82479be7b0+f568feb641,g858d7b2824+6aee506743,g89c8672015+f4add4ffd5,g9125e01d80+a8ce1bb630,ga5288a1d22+2903d499ea,gb58c049af0+d64f4d3760,gc28159a63d+3f2625acfc,gcab2d0539d+b12535109e,gcf0d15dbbd+46a3f46ba9,gda6a2b7d83+46a3f46ba9,gdaeeff99f8+1711a396fd,ge79ae78c31+3f2625acfc,gef2f8181fd+0a71e47438,gf0baf85859+c1f95f4921,gfa517265be+6aee506743,gfa999e8aa5+17cd334064,w.2024.51
LSST Data Management Base Package
|
(Return to Images)
Image Pixels may be accessed via iterators or locators; the former are simpler if you want single-pixel access, while the latter provide you with access to a pixel's friends and neighbours. There are a set of tutorials:
In the case of MaskedImage, the user-visible iterators
and locators (and const
variants) are derived from MaskedImageIteratorBase and MaskedImageLocatorBase; the following documentation refers to these base classes.
iterator
to access the pixels:N.b. These iterators
aren't the most efficient way to access all the image's pixels as they may not be contiguous in memory so a test for end-of-row is needed after every pixel (we do guarantee that a row's pixels will be contiguous). The exceptions are the begin(bool)
and end(bool)
pairs which are only valid for contiguous images (they'll throw an exception if the image isn't), but are the fastest way to traverse an image if available. Note that they return an x_iterator
not an iterator
.
y_iterator
moves it across the row
y_iterator
moves it up the column
Locators
are more flexible than iterators
, permitting us to manipulate regions of an image
++locator.x()
is the standard way to advance a locator)++locator.x()
is the standard way to advance a locator)
xy_locator
directly(Note that these are function calls, as opposed to the operator
[] in the previous APIs)