PCL
|
Implements a generic, two-dimensional, shared or local image. More...
#include <Image.h>
Classes | |
class | const_filter_pixel_iterator |
Immutable filter pixel iterator. More... | |
class | const_filter_sample_iterator |
Immutable filter pixel sample iterator. More... | |
class | const_pixel_iterator |
Immutable pixel iterator. More... | |
class | const_roi_filter_pixel_iterator |
Immutable region-of-interest, filter pixel iterator. More... | |
class | const_roi_filter_sample_iterator |
Immutable region-of-interest, filter pixel sample iterator. More... | |
class | const_roi_pixel_iterator |
Immutable region-of-interest pixel iterator. More... | |
class | const_roi_sample_iterator |
Immutable region-of-interest pixel sample iterator. More... | |
class | const_sample_iterator |
Immutable pixel sample iterator. More... | |
class | filter_pixel_iterator |
Mutable filter pixel iterator. More... | |
class | filter_sample_iterator |
Mutable filter pixel sample iterator. More... | |
class | pixel_iterator |
Mutable pixel iterator. More... | |
class | roi_filter_pixel_iterator |
Mutable region-of-interest, filter pixel iterator. More... | |
class | roi_filter_sample_iterator |
Mutable region-of-interest, filter pixel sample iterator. More... | |
class | roi_pixel_iterator |
Mutable region-of-interest pixel iterator. More... | |
class | roi_sample_iterator |
Mutable region-of-interest pixel sample iterator. More... | |
class | sample_iterator |
Mutable pixel sample iterator. More... | |
Public Types | |
using | color_space = AbstractImage::color_space |
using | image_op = ImageOp::value_type |
using | pixel_allocator = PixelAllocator< P > |
using | pixel_traits = P |
using | sample = typename pixel_traits::sample |
using | sample_array = Array< sample > |
using | sample_vector = GenericVector< sample > |
using | selection_stack = AbstractImage::selection_stack |
Public Types inherited from pcl::AbstractImage | |
using | color_space = ImageColor::color_space |
using | selection_stack = Array< ImageSelections > |
Public Types inherited from pcl::ImageColor | |
using | color_space = ColorSpace::value_type |
Public Member Functions | |
GenericImage () | |
GenericImage (const GenericImage &image) | |
template<class P1 > | |
GenericImage (const GenericImage< P1 > &image) | |
template<class P1 > | |
GenericImage (const GenericImage< P1 > &image, const Rect &rect, int firstChannel=-1, int lastChannel=-1) | |
GenericImage (File &stream) | |
GenericImage (GenericImage &&image) | |
GenericImage (int width, int height, color_space colorSpace=ColorSpace::Gray) | |
GenericImage (void *, int width, int height, color_space colorSpace=ColorSpace::Gray) | |
GenericImage (void *handle) | |
~GenericImage () override | |
GenericImage & | Abs (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage | AbsoluteDifference (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
GenericImage | AbsoluteValue (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
template<class P1 > | |
GenericImage & | Add (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Add (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
GenericImage & | AddAlphaChannel (sample *data=nullptr) |
template<typename T > | |
GenericImage | Added (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
GenericImage & | AllocateData (const Rect &rect, int numberOfChannels=1, color_space colorSpace=ColorSpace::Gray) |
GenericImage & | AllocateData (int width, int height, int numberOfChannels=1, color_space colorSpace=ColorSpace::Gray) |
pixel_allocator & | Allocator () const noexcept |
size_type | AlphaSize () const noexcept |
template<class P1 > | |
GenericImage & | And (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | And (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<class P1 > | |
GenericImage | Applied (const GenericImage< P1 > &image, image_op op=ImageOp::Mov, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
GenericImage | Applied (const ImageTransformation &transformation, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
template<typename T > | |
GenericImage | Applied (T scalar, image_op op=ImageOp::Mov, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
template<class P1 > | |
GenericImage & | Apply (const GenericImage< P1 > &image, image_op op=ImageOp::Mov, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
GenericImage & | Apply (const ImageTransformation &transformation, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Apply (T scalar, image_op op=ImageOp::Mov, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<class P1 > | |
GenericImage & | Assign (const GenericImage< P1 > &image, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
double | AvgDev (double center, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
double | BendMidvariance (double center, double beta=0.2, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
GenericImage & | Binarize (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Binarize (T threshold, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
GenericImage | Binarized (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
template<typename T > | |
GenericImage | Binarized (T threshold, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
double | BiweightMidvariance (double center, double sigma, int k=9, bool reducedLength=false, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
GenericImage & | Black (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
GenericImage & | Blend (const Bitmap &bitmap, const Point &point=Point(int_max), const Rect &rect=Rect(0)) |
GenericImage | Blended (const Bitmap &bitmap, const Point &point=Point(int_max), const Rect &rect=Rect(0)) const |
size_type | ChannelSize () const noexcept |
sample_vector | ColumnVector (int x, int channel=-1) const |
sample_vector | ColVector (int x, int channel=0) const |
Compression::subblock_list | Compress (const Compression &compressor, const Rect &rect=Rect(0), int channel=-1, Compression::Performance *perf=nullptr) const |
size_type | Count (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
GenericImage & | CreateAlphaChannels (int n) |
GenericImage & | Crop () |
template<typename T > | |
GenericImage & | Crop (const GenericVector< T > &fillValues) |
GenericImage & | CropBy (int left, int top, int right, int bottom) |
template<typename T > | |
GenericImage & | CropBy (int left, int top, int right, int bottom, const GenericVector< T > &fillValues) |
GenericImage & | CropTo (const Rect &rect) |
template<typename T > | |
GenericImage & | CropTo (const Rect &rect, const GenericVector< T > &fillValues) |
GenericImage & | CropTo (int x0, int y0, int x1, int y1) |
template<typename T > | |
GenericImage & | CropTo (int x0, int y0, int x1, int y1, const GenericVector< T > &fillValues) |
GenericImage & | DeleteAlphaChannel (int channel) |
GenericImage & | DeleteAlphaChannels () |
template<class P1 > | |
GenericImage & | Dif (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Dif (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<class P1 > | |
GenericImage & | Div (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Div (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<class P1 > | |
GenericImage & | Divide (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Divide (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage | Divided (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
GenericImage & | EnsureLocal () |
GenericImage & | EnsureUnique () |
template<class P1 > | |
GenericImage & | Exchange (GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Fill (const GenericVector< T > &values, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Fill (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage | Filled (const GenericVector< T > &values, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
template<typename T > | |
GenericImage | Filled (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
GenericImage & | ForgetAlphaChannel (int channel) |
GenericImage & | ForgetAlphaChannels () |
GenericImage & | FreeData () |
template<typename T > | |
void | GetColumn (T *buffer, int x, int channel=-1) const |
void | GetExtremePixelValues (sample &min, sample &max, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
template<typename T > | |
void | GetExtremeSampleValues (T &min, T &max, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
template<class P1 > | |
void | GetIntensity (GenericImage< P1 > &I, const Rect &rect=Rect(0), int maxProcessors=0) const |
void | GetIntensity (ImageVariant &I, const Rect &rect=Rect(0), int maxProcessors=0) const |
template<class P1 > | |
void | GetLightness (GenericImage< P1 > &L, const Rect &rect=Rect(0), int maxProcessors=0) const |
void | GetLightness (ImageVariant &L, const Rect &rect=Rect(0), int maxProcessors=0) const |
template<class P1 > | |
void | GetLuminance (GenericImage< P1 > &Y, const Rect &rect=Rect(0), int maxProcessors=0) const |
void | GetLuminance (ImageVariant &Y, const Rect &rect=Rect(0), int maxProcessors=0) const |
template<typename T > | |
void | GetRow (T *buffer, int y, int channel=-1) const |
uint64 | Hash (int channel=-1, uint64 seed=0) const noexcept |
uint32 | Hash32 (int channel=-1, uint32 seed=0) const noexcept |
uint64 | Hash64 (int channel=-1, uint64 seed=0) const noexcept |
size_type | ImageSize () const noexcept |
GenericImage & | ImportData (sample **data, int width, int height, int numberOfChannels=1, color_space colorSpace=ColorSpace::Gray) |
GenericImage & | Invert (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Invert (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
GenericImage | Inverted (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
template<typename T > | |
GenericImage | Inverted (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
bool | IsShared () const noexcept |
bool | IsUnique () const noexcept |
size_type | LineSize () const noexcept |
template<typename T > | |
void | LocateExtremeSampleValues (int &xmin, int &ymin, T &min, int &xmax, int &ymax, T &max, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
template<typename T > | |
void | LocateExtremeSampleValues (Point &pmin, T &min, Point &pmax, T &max, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
sample | LocateMaximumPixelValue (int &xmax, int &ymax, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
sample | LocateMaximumPixelValue (Point &pmax, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
sample | LocateMaximumSampleValue (int &xmax, int &ymax, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
sample | LocateMaximumSampleValue (Point &pmax, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
sample | LocateMinimumPixelValue (int &xmin, int &ymin, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
sample | LocateMinimumPixelValue (Point &pmin, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
sample | LocateMinimumSampleValue (int &xmin, int &ymin, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
sample | LocateMinimumSampleValue (Point &pmin, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
double | MAD (double center, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
template<class P1 > | |
GenericImage & | Max (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Max (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage | Maximum (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
sample | MaximumPixelValue (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
sample | MaximumSampleValue (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
double | Mean (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
double | MeanOfSquares (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
double | Median (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
template<class P1 > | |
GenericImage & | Min (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Min (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage | Minimum (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
sample | MinimumPixelValue (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
sample | MinimumSampleValue (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
double | Modulus (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
template<class P1 > | |
GenericImage & | Mov (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Mov (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<class P1 > | |
GenericImage & | Move (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Move (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<class P1 > | |
GenericImage & | Mul (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Mul (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage | Multiplied (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
template<class P1 > | |
GenericImage & | Multiply (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Multiply (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<class P1 > | |
GenericImage & | Nand (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Nand (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
size_type | NominalSize () const noexcept |
template<class P1 > | |
GenericImage & | Nor (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Nor (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
double | Norm (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
GenericImage & | Normalize (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Normalize (T lowerBound, T upperBound, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
GenericImage | Normalized (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
template<typename T > | |
GenericImage | Normalized (T lowerBound, T upperBound, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
Vector | Norms (int maxDegree=2, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
GenericImage & | Not (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
GenericImage & | One (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
operator bool () const noexcept | |
sample & | operator() (const Point &p, int channel=0) |
sample | operator() (const Point &p, int channel=0) const noexcept |
sample & | operator() (int x, int y, int channel=0) |
sample | operator() (int x, int y, int channel=0) const noexcept |
sample * | operator* () |
const sample * | operator* () const noexcept |
template<class P1 > | |
GenericImage & | operator*= (const GenericImage< P1 > &image) |
template<typename T > | |
GenericImage & | operator*= (T scalar) |
template<class P1 > | |
GenericImage & | operator+= (const GenericImage< P1 > &image) |
template<typename T > | |
GenericImage & | operator+= (T scalar) |
template<class P1 > | |
GenericImage & | operator-= (const GenericImage< P1 > &image) |
template<typename T > | |
GenericImage & | operator-= (T scalar) |
template<class P1 > | |
GenericImage & | operator/= (const GenericImage< P1 > &image) |
template<typename T > | |
GenericImage & | operator/= (T scalar) |
GenericImage & | operator= (const GenericImage &image) |
template<class P1 > | |
GenericImage & | operator= (const GenericImage< P1 > &image) |
GenericImage & | operator= (GenericImage &&image) |
GenericImage & | operator= (sample scalar) |
sample * | operator[] (int channel) |
const sample * | operator[] (int channel) const noexcept |
template<class P1 > | |
GenericImage & | operator^= (const GenericImage< P1 > &image) |
template<typename T > | |
GenericImage & | operator^= (T scalar) |
GenericImage | operator~ () const |
template<class P1 > | |
GenericImage & | Or (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Or (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
double | OrderStatistic (double k, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
sample & | Pixel (const Point &p, int channel=0) |
sample | Pixel (const Point &p, int channel=0) const noexcept |
sample & | Pixel (int x, int y, int channel=0) |
sample | Pixel (int x, int y, int channel=0) const noexcept |
sample * | PixelAddress (const Point &p, int channel=0) |
const sample * | PixelAddress (const Point &p, int channel=0) const noexcept |
sample * | PixelAddress (int x, int y, int channel=0) |
const sample * | PixelAddress (int x, int y, int channel=0) const noexcept |
sample * | PixelData (int channel=0) |
const sample * | PixelData (int channel=0) const noexcept |
template<class P1 > | |
GenericImage & | Pow (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Pow (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
double | Qn (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
template<class P1 > | |
GenericImage & | Raise (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Raise (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage | Raised (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
GenericImage & | Read (const String &filePath) |
GenericImage & | Read (File &file) |
GenericImage & | ReleaseAlphaChannel (GenericImage &image, int channel) |
sample ** | ReleaseData () |
GenericImage & | Rescale (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Rescale (T lowerBound, T upperBound, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
GenericImage | Rescaled (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
template<typename T > | |
GenericImage | Rescaled (T lowerBound, T upperBound, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
sample_vector | RowVector (int y, int channel=-1) const |
bool | SameSampleType (const GenericImage &image) const noexcept |
template<class P1 > | |
bool | SameSampleType (const GenericImage< P1 > &image) const noexcept |
sample * | ScanLine (int y, int channel=0) |
const sample * | ScanLine (int y, int channel=0) const noexcept |
template<class P1 > | |
GenericImage & | SetAbsoluteDifference (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | SetAbsoluteDifference (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
GenericImage & | SetAbsoluteValue (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
GenericImage & | SetColorSpace (color_space colorSpace, int maxProcessors=0) |
template<typename T > | |
GenericImage & | SetColumn (const T *buffer, int x, int channel=-1) |
template<class P1 > | |
GenericImage & | SetLightness (const GenericImage< P1 > &L, const Point &point=Point(int_max), const Rect &rect=Rect(0), int maxProcessors=0) |
GenericImage & | SetLightness (const ImageVariant &L, const Point &point=Point(int_max), const Rect &rect=Rect(0), int maxProcessors=0) |
template<class P1 > | |
GenericImage & | SetLuminance (const GenericImage< P1 > &Y, const Point &point=Point(int_max), const Rect &rect=Rect(0), int maxProcessors=0) |
GenericImage & | SetLuminance (const ImageVariant &Y, const Point &point=Point(int_max), const Rect &rect=Rect(0), int maxProcessors=0) |
template<class P1 > | |
GenericImage & | SetMaximum (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | SetMaximum (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<class P1 > | |
GenericImage & | SetMinimum (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | SetMinimum (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
void | SetRGBWorkingSpace (const RGBColorSystem &RGBWS) override |
template<typename T > | |
GenericImage & | SetRow (const T *buffer, int y, int channel=-1) |
GenericImage & | Shift () |
template<typename T > | |
GenericImage & | Shift (const GenericVector< T > &fillValues) |
GenericImage & | ShiftBy (int dx, int dy) |
template<typename T > | |
GenericImage & | ShiftBy (int dx, int dy, const GenericVector< T > &fillValues) |
GenericImage & | ShiftTo (const Point &p) |
template<typename T > | |
GenericImage & | ShiftTo (const Point &p, const GenericVector< T > &fillValues) |
GenericImage & | ShiftTo (int x, int y) |
template<typename T > | |
GenericImage & | ShiftTo (int x, int y, const GenericVector< T > &fillValues) |
GenericImage & | ShiftToBottomLeft (int width, int height) |
template<typename T > | |
GenericImage & | ShiftToBottomLeft (int width, int height, const GenericVector< T > &fillValues) |
GenericImage & | ShiftToBottomRight (int width, int height) |
template<typename T > | |
GenericImage & | ShiftToBottomRight (int width, int height, const GenericVector< T > &fillValues) |
GenericImage & | ShiftToCenter (int width, int height) |
template<typename T > | |
GenericImage & | ShiftToCenter (int width, int height, const GenericVector< T > &fillValues) |
GenericImage & | ShiftToTopLeft (int width, int height) |
template<typename T > | |
GenericImage & | ShiftToTopLeft (int width, int height, const GenericVector< T > &fillValues) |
GenericImage & | ShiftToTopRight (int width, int height) |
template<typename T > | |
GenericImage & | ShiftToTopRight (int width, int height, const GenericVector< T > &fillValues) |
double | Sn (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
double | StdDev (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
template<class P1 > | |
GenericImage & | Sub (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Sub (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<class P1 > | |
GenericImage & | Subtract (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Subtract (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage | Subtracted (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
double | SumOfSquares (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
GenericImage & | Transfer (GenericImage &&image) |
GenericImage & | Transfer (GenericImage &image) |
void | Transform (BidirectionalImageTransformation &transform, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
GenericImage & | Truncate (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Truncate (T lowerBound, T upperBound, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
GenericImage | Truncated (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
template<typename T > | |
GenericImage | Truncated (T lowerBound, T upperBound, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
TwoSidedEstimate | TwoSidedAvgDev (double center, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
TwoSidedEstimate | TwoSidedBiweightMidvariance (double center, const TwoSidedEstimate &sigma, int k=9, bool reducedLength=false, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
TwoSidedEstimate | TwoSidedMAD (double center, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
double | Variance (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1, int maxProcessors=0) const |
GenericImage & | White (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
GenericImage & | Write (const String &filePath, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
GenericImage & | Write (File &file, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) const |
template<class P1 > | |
GenericImage & | Xchg (GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<class P1 > | |
GenericImage & | Xnor (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Xnor (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<class P1 > | |
GenericImage & | Xor (const GenericImage< P1 > &image, const Point &point=Point(int_max), int channel=-1, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
template<typename T > | |
GenericImage & | Xor (T scalar, const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
GenericImage & | Zero (const Rect &rect=Rect(0), int firstChannel=-1, int lastChannel=-1) |
Public Member Functions inherited from pcl::AbstractImage | |
~AbstractImage () override | |
bool | CanPopSelections () const noexcept |
void | DisableRangeClipping (bool disableLow=true, bool disableHigh=true) const noexcept |
void | EnableRangeClipping (bool enableLow=true, bool enableHigh=true) const noexcept |
int | FirstSelectedChannel () const noexcept |
void | GetSelectedChannelRange (int &c0, int &c1) const noexcept |
pcl::StatusCallback * | GetStatusCallback () const noexcept |
bool | HasAlphaChannels () const noexcept |
bool | IsCompletelySelected () const noexcept |
bool | IsEmptySelection () const noexcept |
bool | IsFullSelection () const noexcept |
bool | IsHighRangeClippingEnabled () const noexcept |
bool | IsLowRangeClippingEnabled () const noexcept |
bool | IsRangeClippingEnabled () const noexcept |
int | LastSelectedChannel () const noexcept |
int | NumberOfAlphaChannels () const noexcept |
size_type | NumberOfAlphaSamples () const noexcept |
int | NumberOfNominalChannels () const noexcept |
size_type | NumberOfNominalSamples () const noexcept |
int | NumberOfSelectedChannels () const noexcept |
size_type | NumberOfSelectedPixels () const noexcept |
size_type | NumberOfSelectedSamples () const noexcept |
int | NumberOfThreads (size_type count, int maxProcessors=0, size_type overheadLimit=16u) const noexcept |
int | NumberOfThreadsForRows (int rowCount=0, int rowWidth=0, int maxProcessors=0, size_type overheadLimitPx=1024u) const noexcept |
Array< size_type > | OptimalThreadRows (int rowCount=0, int rowWidth=0, int maxProcessors=0, size_type overheadLimitPx=1024u) const noexcept |
bool | ParseChannel (int &channel) const noexcept |
bool | ParseRect (Rect &rect) const noexcept |
bool | ParseSelection (Rect &rect, int &channel) const noexcept |
bool | ParseSelection (Rect &rect, int &firstChannel, int &lastChannel) const noexcept |
void | PopSelections () const |
void | PushSelections () const |
double | RangeClipHigh () const noexcept |
double | RangeClipLow () const noexcept |
void | ResetChannelRange () const noexcept |
void | ResetPoint () const noexcept |
void | ResetRangeClipping () const noexcept |
void | ResetSelection () const noexcept |
void | ResetSelections () const noexcept |
void | SelectAlphaChannels () const noexcept |
void | SelectChannel (int c) const noexcept |
void | SelectChannelRange (int c0, int c1) const noexcept |
int | SelectedChannel () const noexcept |
const Point & | SelectedPoint () const noexcept |
const Rect & | SelectedRectangle () const noexcept |
ImageSelections & | Selections () const noexcept |
void | SelectNominalChannels () const noexcept |
void | SelectPoint (const Point &p) const noexcept |
void | SelectPoint (int x, int y) const noexcept |
void | SelectRectangle (const Point &p0, const Point &p1) const noexcept |
void | SelectRectangle (const Rect &r) const noexcept |
void | SelectRectangle (int x0, int y0, int x1, int y1) const noexcept |
void | SetRangeClipHigh (double clipHigh) const noexcept |
void | SetRangeClipLow (double clipLow) const noexcept |
void | SetRangeClipping (double clipLow, double clipHigh) const noexcept |
void | SetStatusCallback (pcl::StatusCallback *callback) const noexcept |
StatusMonitor & | Status () const noexcept |
pcl::StatusCallback * | StatusCallback () const noexcept |
Public Member Functions inherited from pcl::ImageGeometry | |
Rect | Bounds () const noexcept |
template<typename T > | |
bool | Clip (pcl::GenericPoint< T > &p) const noexcept |
template<typename T > | |
bool | Clip (pcl::GenericRectangle< T > &r) const noexcept |
template<typename T > | |
bool | Clip (T &x, T &y) const noexcept |
template<typename T > | |
bool | Clip (T &x0, T &y0, T &x1, T &y1) const noexcept |
int | Height () const noexcept |
template<typename T > | |
bool | Includes (const GenericPoint< T > &p) const noexcept |
template<typename T > | |
bool | Includes (const GenericRectangle< T > &r) const noexcept |
template<typename T > | |
bool | Includes (T x, T y) const noexcept |
template<typename T > | |
bool | Includes (T x0, T y0, T x1, T y1) const noexcept |
template<typename T > | |
bool | Intersects (const pcl::GenericRectangle< T > &r) const noexcept |
template<typename T > | |
bool | Intersects (T x0, T y0, T x1, T y1) const noexcept |
bool | IsEmpty () const noexcept |
bool | IsValidChannelIndex (int c) const noexcept |
int | LastChannel () const noexcept |
int | NumberOfChannels () const noexcept |
size_type | NumberOfPixels () const noexcept |
size_type | NumberOfSamples () const noexcept |
distance_type | PixelOffset (int x, int y) const noexcept |
distance_type | RowOffset (int y) const noexcept |
int | Width () const noexcept |
Public Member Functions inherited from pcl::ImageColor | |
String | ChannelId (int c) const noexcept |
color_space | ColorSpace () const noexcept |
bool | IsColor () const noexcept |
const RGBColorSystem & | RGBWorkingSpace () const noexcept |
Public Member Functions inherited from pcl::ParallelProcess | |
ParallelProcess ()=default | |
ParallelProcess (const ParallelProcess &)=default | |
virtual | ~ParallelProcess () |
void | DisableParallelProcessing (bool disable=true) noexcept |
void | EnableParallelProcessing (bool enable=true, int maxProcessors=0) noexcept |
bool | IsParallelProcessingEnabled () const noexcept |
int | MaxProcessors () const noexcept |
ParallelProcess & | operator= (const ParallelProcess &)=default |
void | SetMaxProcessors (int maxProcessors) noexcept |
void | Swap (ParallelProcess &process) noexcept |
Static Public Member Functions | |
static int | BitsPerSample () noexcept |
static int | BytesPerSample () noexcept |
static bool | IsComplexSample () noexcept |
static bool | IsFloatSample () noexcept |
Static Public Member Functions inherited from pcl::AbstractImage | |
template<class thread > | |
static void | RunThreads (ReferenceArray< thread > &threads, ThreadData &data, bool useAffinity=true) |
Static Public Member Functions inherited from pcl::ImageColor | |
static const RGBColorSystem & | DefaultRGBWorkingSpace () noexcept |
static void | ResetDefaultRGBWorkingSpace () |
static void | SetDefaultRGBWorkingSpace (const RGBColorSystem &RGBWS) |
Friends | |
void | Swap (GenericImage &x1, GenericImage &x2) noexcept |
Template class GenericImage implements a two-dimensional image in PCL. It inherits all public properties and functionality from its base classes: ImageGeometry, ImageColor, and AbstractImage, and adds a rich set of processing primitives through a versatile and easily adaptable interface.
Template instantiations of GenericImage and GenericPixelTraits provide instantiable image classes adapted to particular pixel sample types. Seven image types are already predefined in this way by PCL, corresponding to all supported real, integer and complex two-dimensional images in the current versions of the PixInsight platform:
pcl::Image | 32-bit floating point real image |
pcl::DImage | 64-bit floating point real image |
pcl::ComplexImage | 32-bit floating point complex image |
pcl::DComplexImage | 64-bit floating point complex image |
pcl::UInt8Image | 8-bit unsigned integer image |
pcl::UInt16Image | 16-bit unsigned integer image |
pcl::UInt32Image | 32-bit unsigned integer image |
Developers can define new image types easily by writing suitable instantiations of GenericPixelTraits and the corresponding instantiations of GenericImage. This system allows for the implementation of new image types tightly adapted to particular requirements.
using pcl::GenericImage< P >::color_space = AbstractImage::color_space |
An enumerated type that represents the set of supported color spaces. Valid constants for this enumeration are defined in the ColorSpace namespace.
using pcl::GenericImage< P >::image_op = ImageOp::value_type |
using pcl::GenericImage< P >::pixel_allocator = PixelAllocator<P> |
Represents a class responsible for allocation and deallocation of pixel data in this template instantiation of GenericImage. pixel_allocator
must be able to handle shared and local pixel data allocation and deallocation in a transparent way.
By default, GenericImage uses an instantiation of the PixelAllocator template class for pixel_traits
.
using pcl::GenericImage< P >::pixel_traits = P |
Represents the GenericPixelTraits instantiation used in this template instantiation of GenericImage.
The pixel_traits
type identifies a class implementing basic storage and functional primitives adapted to a particular sample data type.
using pcl::GenericImage< P >::sample = typename pixel_traits::sample |
using pcl::GenericImage< P >::sample_array = Array<sample> |
using pcl::GenericImage< P >::sample_vector = GenericVector<sample> |
using pcl::GenericImage< P >::selection_stack = AbstractImage::selection_stack |
|
inline |
|
inline |
Copy constructor. Constructs a local image to store a copy of the currently selected pixel samples in a local or shared image. The behavior of this constructor depends on the current selections and storage type of the specified source image:
Definition at line 6094 of file Image.h.
References pcl::AbstractImage::IsCompletelySelected(), and pcl::GenericImage< P >::IsShared().
|
inline |
|
inline |
Constructs a local image to store a copy of the specified image, which belongs to a different template instantiation.
This constructor generates a uniquely referenced duplicate of the current selection of pixel samples in the specified image, converted to the sample type of this template instantiation.
|
inline |
Constructs a local image to store a copy of a subset of pixel samples in the specified image.
image | Source image. |
rect | Source rectangular selection. If this parameter defines an empty rectangle, the current rectangular selection in the source image will be used. If the specified rectangle is not empty and extends beyond the boundaries of the source image, only the intersection with the source image will be used. If that intersection does not exist, this constructor will initialize an empty image. |
firstChannel | Zero-based index of the first channel to copy. If a negative index is specified, the first selected channel in the source image will be used. If the specified index is larger than or equal to the number of existing channels in the source image, this constructor will initialize an empty image. The default value is -1. |
lastChannel | Zero-based index of the last channel to copy. If a negative index is specified, the last selected channel in the source image will be used. If the specified index is larger than or equal to the number of existing channels in the source image, this constructor will initialize an empty image. The default value is -1. |
If the specified source image and this object use different pixel sample types, this constructor will use pixel traits primitives to perform all the necessary data type conversions between different pixel sample types transparently.
|
inline |
Constructs a local image with the specified dimensions and color space.
width | Width in pixels of the newly created image. |
height | Height in pixels of the newly created image. |
colorSpace | Color space. See the ColorSpace namespace for symbolic constants. If this parameter is not specified, a grayscale image will be constructed. |
The number of channels in the constructed image will depend on the specified color space. Grayscale images will have a single channel. In general, color images will have three channels.
|
inlineexplicit |
Constructs a local image with data read from a raw-storage stream.
stream | Reference to an input stream where a raw image has been previously stored (e.g. with the Write() member function). |
The input stream must provide sample values in the sample data type of this image. The sample data type of an image is invariantly defined by its template instantiation, and thus cannot be changed.
|
inlineexplicit |
Constructs a shared, client-side managed image corresponding to a server-side image living in the PixInsight core application.
handle | A low-level API handle to an existing image in the PixInsight core application. |
Shared images are alias objects referencing server-side images living within the PixInsight core application. Shared images allocate pixel data in the core application's heap, which we call shared memory.
Local images exist within the user module's local heap, including all of their pixel data.
PCL implements an abstraction mechanism that allows you to handle local and shared images transparently. Except in very few and special cases, you don't have to know whether you're working with a shared or a local image; your code will be exactly the same under both situations.
|
inline |
Constructs a new shared image with the specified geometry and color.
width | Width in pixels of the newly created image. |
height | Height in pixels of the newly created image. |
colorSpace | Color space. See the ColorSpace namespace for symbolic constants. If this parameter is not specified, a grayscale image will be constructed. |
The first void*
parameter is strictly formal. Its value will be ignored as its sole purpose is to distinguish this constructor from the corresponding local storage constructor.
The number of channels in the constructed image will depend on the specified color space. Grayscale images will have a single channel. In general, color images will have three channels.
A shared image created with this constructor can be used for intermodule communication tasks, such as file I/O operations with the FileFormat and FileFormatInstance classes, and execution of processes with Process and ProcessInstance.
|
inlineoverride |
Destroys a GenericImage instance. If this is a nonempty local or shared image, the image data associated with this object are dereferenced. If the image data become unreferenced, they are also destroyed.
The internal allocator object does all the necessary clean-up work for both local and shared images transparently:
|
inline |
A synonym for SetAbsoluteValue().
|
inline |
Creates a local image with a subset of pixel samples from this image, and computes the absolute values of their differences with the specified scalar. Returns the resulting image.
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
Returns a local image with a subset of pixel samples from this image, replaced with their absolute values.
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
Adds pixel samples of the specified image to a subset of pixel samples in this image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
|
inline |
Forces this image to acquire the specified pixel sample data as a new alpha channel. Returns a reference to this image.
data | Starting address of the acquired pixel data. If this parameter is a null pointer, a single new alpha channel will be added to the image. |
The image will own the acquired pixel data. The new alpha channel is appended to the existing channels.
|
inline |
Creates a local image with a subset of pixel samples from this image, and adds a scalar. Returns the resulting image.
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
Allocates new pixel data with the specified geometry and color space. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Allocates new pixel data with the specified geometry and color space. Returns a reference to this image.
width | New image width in pixels. |
height | New image height in pixels. |
numberOfChannels | Number of channels. Must be greater than or equal to the number of nominal channels corresponding to the specified color space: one for grayscale images; three for color images. If this parameter is not specified, a single grayscale channel will be allocated. |
colorSpace | New color space. See the ColorSpace namespace for symbolic constants. If this parameter is not specified, new image data will be allocated in the grayscale space. |
If this object uniquely references its pixel data, then the previously existing pixel data are destroyed, deallocated, and replaced with a newly allocated local or shared image, preserving the storage space of this instance.
If this object is not unique, then the previously referenced pixel data are dereferenced, and a newly created local image is uniquely referenced by this object and allocated with the specified parameters.
All image selections are reset to the default full selection after calling this function.
Definition at line 6484 of file Image.h.
Referenced by pcl::GenericMatrix< T >::ToImage().
|
inlinenoexcept |
Returns a reference to the internal pixel allocator object associated with this image.
The type of the allocator object is a template specialization of the PixelAllocator class for the sample data type of this image. The allocator is responsible for dynamic allocation of pixel data, including channel slots (pointers to pixel sample blocks) and pixel sample blocks (used to store channel pixel data).
The allocator must be able to handle dynamic allocation for local and shared memory transparently. This means that the allocator object knows whether this is a local image (allocated in the calling module's heap) or a shared image (allocated in the PixInsight core's heap), and allows you to manage and allocate pixel data without distinction in both cases.
new
and delete
operators with pixel data memory blocks. Always call the Allocator() member function of GenericImage to get a reference to its PixelAllocator object, then use its public member functions for all allocations and deallocations of pixel data.
|
inlinenoexcept |
|
inline |
Performs a bitwise AND operation between a subset of pixel samples in this image and the corresponding samples of the specified source image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
|
inline |
Creates a local image with a subset of pixel samples from this image, and performs an arithmetic or bitwise logical operation with the corresponding samples of another image. Returns the resulting image.
For information on the parameters of this member function, see the documentation for Apply().
|
inline |
Creates a local image with a subset of pixel samples from this image, and applies an image transformation to a subset of pixel samples. Returns the resulting image.
transformation | An image transformation that will be applied to the selected subset of pixel samples. |
For information on the rest of parameters of this member function, see the documentation for Fill(). For information on image transformations, see Apply( const ImageTransformation& ) and ImageTransformation.
|
inline |
Creates a local image with a subset of pixel samples from this image, and performs an arithmetic or bitwise logical operation with a scalar. Returns the resulting image.
scalar | Right-hand operand value. |
op | Identifies an arithmetic or bitwise logical operator. For a list of supported operators, see the ImageOp namespace. The default value is ImageOp::Mov (replace target with source). |
For information on the rest of parameters of this member function, see the documentation for Fill().
|
inline |
Performs an arithmetic or bitwise logical operation between a subset of pixel samples in this image and the corresponding samples of another operand image. Returns a reference to this image.
image | Right-hand operand image. |
op | Identifies an arithmetic or bitwise logical operator. For a list of supported operators, see the ImageOp namespace. The default value is ImageOp::Mov (replace target with source). |
point | Target point in image coordinates. This is the upper left corner of the target rectangular region where the source image will be applied to this image. If one or both point coordinates are equal to int_max (the maximum possible value of type int ), then the current anchor point selection will be used. The default value is Point( int_max ). |
channel | Target channel index (zero-based). This is the index of the first channel where source pixel samples will be applied. If this parameter is negative, then the currently selected channel will be used. The default value is -1. |
For information on the rest of parameters of this member function, see the documentation for Fill().
The specified operation is performed with samples in the intersection between the specified (or implicit) rectangular selections for both images. Each channel in the specified channel range selection for this image is operated with its counterpart channel in the right-hand operand image, starting from the first selected channel in the right-hand operand image.
The operation may involve conversions to the appropriate floating point data type for intermediate results, or LUT table lookups, as necessary to ensure preservation of the full native range of the image. Floating point conversions may take place even if both images share the same sample data type, depending on the selected operator.
|
inline |
Applies an image transformation to a subset of pixel samples. Returns a reference to this image.
transformation | An image transformation that will be applied to the selected subset of pixel samples. |
For information on the rest of parameters of this member function, see the documentation for Fill().
If the applied transformation is bidirectional, then this function represents an inverse transformation, usually requiring a previous direct transformation. See the Transform() member function.
Bidirectional transformations such as FourierTransform and ATrousWaveletTransform usually ignore the specified (or implicit) selections of a rectangular region and channel range. Other non-invertible transformations, especially geometric transformations such as Resample or Rotation, also ignore pixel sample selections.
Definition at line 378 of file ImageTransformation.h.
|
inline |
Replaces a subset of pixel samples with the result of an arithmetic, bitwise logical or pixel composition operation with a scalar. Returns a reference to this image.
scalar | Right-hand operand value. |
op | Identifies an arithmetic, bitwise logical or pixel composition operator. For a list of supported operators, see the ImageOp namespace. The default value is ImageOp::Mov (replace target with source). |
For information on the rest of parameters of this member function, see the documentation for Fill().
If the specified scalar is zero or insignificant, and the op argument is ImageOp::Div, this function throws an Error exception to prevent a division by zero.
|
inline |
Copies pixel samples from the specified source image to this image. Returns a reference to this image.
image | Source image. |
rect | Source rectangular selection. If this parameter defines an empty rectangle, the current rectangular selection in the source image will be used. If the specified rectangle is not empty and extends beyond source image boundaries, only the intersection with the source image will be used. If that intersection does not exist, then this image will be empty after calling this member function. The default value is an empty rectangle. |
firstChannel | Zero-based index of the first channel to copy. If a negative value is specified, the first selected channel in the source image will be used. If the specified value is larger than or equal to the number of existing channels in the source image, then this image will be empty after calling this function. The default value is -1. |
lastChannel | Zero-based index of the last channel to copy. If a negative value is specified, the last selected channel in the source image will be used. If the specified value is larger than or equal to the number of existing channels in the source image, then this image will be empty after calling this function. The default value is -1. |
Previously referenced data in this image will be dereferenced, and immediately destroyed if they become unreferenced.
If this image and the specified source image are (a) compatible in terms of pixel sample types, (b) both are local images, and (c) the source image is completely selected, then this member function just references the same pixel data, enabling the implicit data sharing mechanism of GenericImage. In this case, existing pixel data in the source image are not duplicated, and no allocation is performed.
If this member function causes a reallocation of pixel data, the newly allocated data will be uniquely referenced by this image.
The source image can be an instance of any supported template instantiation of GenericImage, not necessarily of the same instantiation than this image. All the necessary data type conversions are performed transparently. If pixel sample types are different, source data are transformed to the data type of this image. This involves conversions from the source data type P1::sample to the target data type P::sample, as per pixel traits primitives.
|
inline |
Returns the mean absolute deviation of a subset of pixel samples with respect to the specified center value.
center | Reference central value for computation of the mean absolute deviation in the normalized range [0,1]. Typically, this parameter is set to the median value of the set of pixel samples used for calculation. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
This member function returns the mean absolute deviation with respect to center in the normalized range [0,1], irrespective of the sample data type of the image.
For complex-valued images, this function returns the average absolute deviation of the magnitudes (or absolute values) of all selected samples.
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account for calculation of the average absolute deviation.
This function implements a numerically stable summation algorithm to reduce roundoff errors to the machine's floating point precision.
|
inline |
Returns a percentage bend midvariance (PBMV) for a subset of pixel samples.
center | Reference center value in the [0,1] range. Normally, the median of the selected pixel samples should be used. |
beta | Rejection parameter in the [0,0.5] range. Higher values improve robustness to outliers (i.e., increase the breakdown point of the estimator) at the expense of lower efficiency. The default value is beta=0.2. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
The square root of the percentage bend midvariance is a robust estimator of scale. With the default beta=0.2, its Gaussian efficiency is 67%. With beta=0.1, its efficiency is 85% but its breakdown is only 0.1.
This member function returns PBMV in the normalized range [0,1], irrespective of the sample data type of the image.
For complex-valued images, this function returns a PBMV for the magnitudes (or absolute values) of all selected samples.
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account for calculation of the percentage bend midvariance.
References
Rand R. Wilcox (2012), Introduction to Robust Estimation and Hypothesis Testing, 3rd Edition, Elsevier Inc., Section 3.12.3.
|
inline |
Binarizes a subset of pixel samples with respect to the central value of the native range of the image. Returns a reference to this image.
This member function is a convenience shortcut for:
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
Binarizes a subset of pixel samples with respect to the specified threshold value. Returns a reference to this image.
threshold | Binarizing threshold. |
The specified binarizing threshold is converted to the sample data type of this image, using pixel traits primitives.
For information on the rest of parameters of this member function, see the documentation for Fill().
The binarized value b
of a sample s
is given by:
if s < t b = 0 else b = 1 endif
where t
is the binarizing threshold value, and 0 and 1 represent, respectively, the minimum and maximum pixel sample values in the native range of the image.
|
inline |
Returns a local image with a subset of pixel samples from this image, binarized with respect to the central value of the native range of the image.
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
Returns a local image with a subset of pixel samples from this image, binarized with respect to the specified threshold value.
For information on the rest of parameters of this member function, see the documentation for Fill().
|
inlinestaticnoexcept |
|
inline |
Returns a biweight midvariance (BWMV) for a subset of pixel samples.
center | Reference center value in the [0,1] range. Normally, the median of the selected pixel samples should be used. |
sigma | A reference estimate of dispersion in the [0,1] range. Normally, the median absolute deviation from the median (MAD) of the selected pixel samples should be used. |
k | Rejection limit in sigma units. The default value is k=9. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
The square root of the biweight midvariance is a robust estimator of scale. It is an efficient estimator with respect to many statistical distributions (about 87% Gaussian efficiency), and appears to have a breakdown point close to 0.5 (the same as MAD).
This member function returns BWMV in the normalized range [0,1], irrespective of the sample data type of the image.
For complex-valued images, this function returns a BWMV for the magnitudes (or absolute values) of all selected samples.
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account for calculation of the biweight midvariance.
References
Rand R. Wilcox (2012), Introduction to Robust Estimation and Hypothesis Testing, 3rd Edition, Elsevier Inc., Section 3.12.1.
|
inline |
Fills a subset of pixel samples with the minimum sample value in the native range of the image. Returns a reference to this image.
This member function is a convenience shortcut for:
|
inline |
Blends a rectangular region of a 32-bit RGBA bitmap with this image. Returns a reference to this image.
bitmap | Reference to a constant source bitmap. |
point | Target point in image coordinates. This is the upper left corner of the target rectangular region where the source bitmap will be applied to this image. If one or both point coordinates are equal to int_max (the maximum possible value of type int ), then the current anchor point selection will be used. The default value is Point( int_max ). |
rect | Source rectangular region in bitmap coordinates. If this parameter defines an empty rectangle, the whole source bitmap will be applied. If the specified rectangle is not empty and extends beyond image boundaries, only the intersection with the source bitmap will be used. If that intersection does not exist, then this member function has no effect. The default value is an empty rectangle. |
The blending operation involves only nominal image channels. The alpha channel of the source bitmap defines a transparency mask for combining bitmap pixel values and image pixel sample values. The resulting pixel sample value V1
after the blending operation is given in the normalized real range [0,1] by the following expression:
V1 = V*(1 - A/255) + B * A/255
where V
is the initial pixel value of this image, A
is the alpha value of the source bitmap pixel, and B
is one of the red, green or blue values in the source bitmap pixel. The expression above is applied respectively for each nominal sample of this image.
|
inline |
Returns a local duplicate of this image blended with a rectangular region of a 32-bit RGBA bitmap.
For information on the parameters of this member function, see the documentation for Blend().
|
inlinestaticnoexcept |
|
inlinenoexcept |
Returns the size in bytes of a channel of this image. This is equal to the area in square pixels multiplied by BytesPerSample().
|
inline |
Generates a vector of pixel samples from a column of this image.
x | Horizontal coordinate (or column index) of the desired column, 0 ≤ x < w, where w is the width in pixels of this image. |
channel | Channel index. If this parameter is negative, the currently selected channel will be used. The default value is -1. |
The number of components in the returned vector will be equal to the height in pixels of this image.
If this image is empty, if the specified horizontal coordinate is out of range, or if a nonexistent channel is specified, this member function returns an empty vector.
|
inline |
A convenience synonym for ColumnVector( int, int ) const.
|
inline |
Compression of image pixel samples.
compressor | A compression algorithm that will be used to compress pixel sample data from this image. |
rect | A rectangular region in image pixel coordinates. This region determines the subset of pixel samples that will be compressed. If this parameter is not specified, or if an empty rectangle is specified, this function will compress pixel samples in the current rectangular selection of this image, that is, SelectedRectangle(). |
channel | Channel index. Must be the zero-based index of an existing channel in this image, or an integer < 0. If this parameter is not specified or a negative integer, this function will compress pixel samples in the currently selected channel of this image, that is, SelectedChannel(). |
perf | If non-null, pointer to a Compression::Performance structure where performance data will be provided. |
Returns a dynamic array of compressed sub-blocks. Each array element is a Compression::Subblock structure with the compressed data and the corresponding uncompressed length in bytes. If compression succeeds, the returned array will have at least one element.
Data will be compressed for the intersection of the specified (or implicitly selected) rectangular region with this image. All predefined pixel sample types are supported, including integer, real and complex pixels.
If there is no intersection between the rectangular region and the image, if an invalid channel index is specified, or if one or more sub-blocks are not compressible with the specified compression algorithm, this function returns an empty array.
|
inline |
Returns the number of pixel samples selectable for statistics calculation from a subset of pixel samples.
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account. If range clipping is disabled, the result of this member function will be the volume of the specified (or implicitly selected) region.
When range clipping is enabled and this is a complex-valued image, this function uses the magnitudes (or absolute values) of all selected samples to compare them with the bounds of the current clipping range.
|
inline |
Creates n new alpha channels in this image. Alpha channels are those in excess of nominal channels, e.g. a fourth channel in an RGB color image, or a second channel in a grayscale image. Returns a reference to this image.
Newly created channels are not initialized, so their pixel samples will contain unpredictable values.
|
inline |
Crops the image to its current rectangular selection, filling extended regions with the minimum sample value in the native range of the image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Crops the image to its current rectangular selection. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Crops or extends the entire image by applying the specified margins, filling extended regions with the minimum sample value in the native range of the image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Crops or extends the entire image by applying the specified margins. Returns a reference to this image.
left | Left margin in pixels. |
top | Top margin in pixels. |
right | Right margin in pixels. |
bottom | Bottom margin in pixels. |
fillValues | Vector of filling sample values for extended areas, used when one or more margins are greater than zero. Each vector component is used for its corresponding channel (e.g., the first component is used to fill the red channel of an RGB image, the second component to fill the green channel, etc.). If there are less vector components than channels in the image, the minimum sample value in the native range of the image (usually zero or black) is used for the missing filling values. The default parameter value is an empty vector, so the extended areas are filled with black by default. |
Negative margins crop the image at their respective sides. Positive margin values add extra space.
|
inline |
Crops the image to the specified rectangular region, filling extended regions with the minimum sample value in the native range of the image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Crops the image to the specified rectangular region. Returns a reference to this image. Returns a reference to this image.
This member function is equivalent to:
Definition at line 13809 of file Image.h.
References pcl::GenericRectangle< T >::Ordered(), pcl::GenericRectangle< T >::x0, pcl::GenericRectangle< T >::x1, and pcl::GenericRectangle< T >::y0.
|
inline |
Crops the image to the specified rectangular region, filling extended regions with the minimum sample value in the native range of the image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
|
inline |
Destroys an alpha channel. Returns a reference to this image.
channel | Zero-based index of the alpha channel to be destroyed, 0 ≤ c < n, where n is the number of existing alpha channels before calling this function. |
Definition at line 7732 of file Image.h.
References pcl::ColorSpace::NumberOfNominalChannels().
|
inline |
Destroys all existing alpha channels in this image. Returns a reference to this image.
Definition at line 7794 of file Image.h.
References pcl::ColorSpace::NumberOfNominalChannels().
|
inline |
A synonym for SetAbsoluteDifference().
|
inline |
A synonym for SetAbsoluteDifference().
|
inline |
|
inline |
|
inline |
Divides a subset of pixel samples in this image by samples from the specified source image. Returns a reference to this image.
This member function is equivalent to:
When a source pixel sample of the specified image is zero or insignificant, the corresponding target pixel sample is set to the maximum sample value in the native range of this image.
|
inline |
Divides a subset of pixel samples in this image by the specified scalar. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Creates a local image with a subset of pixel samples from this image, and divides it by a scalar. Returns the resulting image.
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
Ensures that this image uses local pixel data storage. Returns a reference to this image.
If this object is already a local image, then calling this member function has no effect.
If the image is shared, then this function creates a local duplicate, dereferences the previously referenced pixel data, and references the newly created local duplicate. Upon returning, this image will uniquely reference its pixel data.
|
inline |
Ensures that this object uniquely references its pixel data, making a unique copy of its referenced pixel data if necessary. Returns a reference to this image.
If this object is not sharing its pixel data with other GenericImage instances, then calling this member function has no effect.
If this object is sharing its pixel data with other instances, then the previously referenced pixel data are dereferenced, and a newly created copy of the pixel data is uniquely referenced by this image. In this case this object will always be a local image after calling this function: newly created duplicates of existing pixel data are always allocated in the local heap of the calling module.
|
inline |
Exchanges a subset of pixel samples between this image and another operand image. Returns a reference to this image.
image | Operand image, whose pixel samples will be exchanged with samples from this image. |
point | Target point in image coordinates. This is the upper left corner of the target rectangular region where the source image will be exchanged with this image. If one or both point coordinates are equal to int_max (the maximum possible value of type int ), then the current anchor point selection will be used. The default value is Point( int_max ). |
channel | Target channel index (zero-based). This is the index of the first channel of this image where pixel samples will be exchanged. If this parameter is negative, then the currently selected channel will be used. The default value is -1. |
For information on the rest of parameters of this member function, see the documentation for Fill().
The specified operation is performed with samples in the intersection between the specified (or implicit) rectangular selections for both images. Each channel in the specified channel range selection for this image is operated with its counterpart channel in the operand image, starting from the first selected channel in the operand image.
The operation may involve conversions to the appropriate floating point data type for intermediate results, or LUT table lookups, as necessary to ensure preservation of the full native range of both images.
|
inline |
Fills a subset of pixel samples of this image with the scalar components of a vector of per-channel filling values. Returns a reference to this image.
values | Vector of filling values. Each component of this vector is a filling value for the corresponding channel in the pixel sample selection (i.e., the first component is the filling value for the first selected channel, the second component for the second selected channel, etc.). If the vector has less components than channels in the selection, the missing values are replaced with the minimum sample value in the native range of the image (usually zero). |
The rest of parameters of this function are identical to those of Fill( T, const Rect&, int, int ).
|
inline |
Fills a subset of pixel samples of this image with the specified scalar. Returns a reference to this image.
scalar | Scalar value to fill with. The specified value will be converted to the sample data type of this image. |
rect | Target rectangular region. If this parameter defines an empty rectangle, the current rectangular selection will be used. If the specified rectangle is not empty and extends beyond image boundaries, only the intersection with this image will be used. If that intersection does not exist, then this member function has no effect. The default value is an empty rectangle. |
firstChannel | Zero-based index of the first channel to fill. If a negative index is specified, the first selected channel will be used. If the specified index is larger than or equal to the number of channels in this image, then this member function has no effect. The default value is -1. |
lastChannel | Zero-based index of the last channel to fill. If a negative index is specified, the last selected channel will be used. If the specified index is larger than or equal to the number of channels in this image, then this member function has no effect. The default value is -1. |
Previously referenced data in this image will be dereferenced, and immediately destroyed if they become unreferenced.
If this member function causes a reallocation of pixel data, the newly allocated data will be local and uniquely referenced by this image.
|
inline |
Returns a local image with a subset of pixel samples from this image, filled with the scalar components of a vector of per-channel filling values.
For information on the parameters of this member function, see the documentation for Fill( const GenericVector&, const Rect&, int, int ).
|
inline |
Returns a local image with a subset of pixel samples from this image, filled with the specified scalar.
For information on the parameters of this member function, see the documentation for Fill( T, const Rect&, int, int ).
|
inline |
Forces this image to discard an existing alpha channel without deallocating it. Returns a reference to this image.
channel | Zero-based index of the alpha channel to be forgotten, 0 ≤ c < n, where n is the number of existing alpha channels before calling this function. |
|
inline |
Forces this image to discard all existing alpha channels without deallocating them. Returns a reference to this image.
Definition at line 7818 of file Image.h.
References pcl::ColorSpace::NumberOfNominalChannels().
|
inline |
Causes this object to reference an empty image. Returns a reference to this image.
If this object uniquely references its pixel data, then the pixel data are destroyed and deallocated immediately.
If this object is not unique, then the previously referenced pixel data are dereferenced, and a newly created empty local image is uniquely referenced by this object.
|
inline |
Stores a duplicate of a column of pixel samples in the specified array, with implicit data type conversion.
[out] | buffer | Starting address of a contiguous block where samples from the source column will be converted and copied. The length of this block must be at least equal to the height in pixels of this image. |
x | Horizontal coordinate (or column index) of the desired column, 0 ≤ x < w, where w is the width in pixels of this image. | |
channel | Channel index. If this parameter is negative, the currently selected channel will be used. The default value is -1. |
If this image is empty, if the specified horizontal coordinate is out of range, or if a nonexistent channel is specified, this member function does nothing.
|
inline |
|
inline |
Obtains the extreme values among a subset of pixel samples of this image.
[out] | min | Minimum sample value. |
[out] | max | Maximum sample value. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
If necessary, the output values will be converted from the pixel sample data type of this image using pixel traits primitives.
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account to search for the extreme sample values.
|
inline |
Computes the intensity HSI component for a subset of pixel samples and stores it in a grayscale image.
[out] | I | Reference to a destination image, where the computed intensity component will be stored. This image can be an instance of any supported GenericImage template instantiation; all the necessary data type conversions are carried out transparently. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
This member function computes the I intensity component in the HSI color ordering scheme. The intensity is useful for applications where a colorimetrically correct component, such as luminance or lightness, is not necessary. For example, the intensity component can be used for feature detection (e.g., star detection) on RGB color images.
The intensity component I of an RGB pixel is given by:
I = (Max(R,G,B) + Min(R,G,B))/2
where R, G and B are the red, green and blue components of the RGB pixel, respectively.
If this image is in the grayscale or HSI spaces, gray or intensity source samples are simply copied to the destination image, after conversion to the destination sample data type, if necessary, using pixel traits primitives.
If this image is in the RGB color space, the intensity components for each pixel is calculated as described above. For other color spaces intermediate RGB components are computed on the fly.
The intensity is computed for the specified subset of pixel samples, or for the current rectangular selection, depending on parameter values. For more information on the rest of parameters of this function, see the documentation for Fill(). The current channel range selection is always ignored by this function.
The previous contents of the destination image will be dereferenced (and immediately destroyed if they become unreferenced) and replaced with the computed, uniquely referenced intensity data. The destination image will be in the grayscale color space; it will have a single channel corresponding to the intensity of the specified pixel sample subset in this image. The dimensions of the destination image will be the same ones of the specified pixel sample subset, and it will be associated with the same RGBWS as this image.
|
inline |
Computes the intensity HSI component for a subset of pixel samples and stores it in a grayscale image, transported by an ImageVariant object.
If the specified ImageVariant does not transport an image, a new floating point image will be created with the appropriate sample type (either 32-bit or 64-bit floating point, depending on the sample data type of this image).
Definition at line 7268 of file ImageVariant.h.
|
inline |
Computes the CIE L* component for a subset of pixel samples and stores it in a grayscale image.
[out] | L | Reference to a destination image, where the computed CIE L* component will be stored. This image can be an instance of any supported GenericImage template instantiation; all the necessary data type conversions are carried out transparently. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
This member function computes the L* component of the CIE L*a*b* space. CIE L* component values are calculated in the RGB working space (RGBWS) currently associated with this image.
If this image is in the grayscale color space, gray source samples are simply copied to the destination image, after conversion to the destination sample data type, if necessary, using pixel traits primitives.
If this image is in the CIE L*a*b* color space, samples from the lightness channel (source channel #0) are simply copied to the destination image, after conversion to the destination sample data type, if necessary.
For other color spaces, CIE L* values are obtained by means of the simplest possible intermediate transformation (usually to the CIE L*a*b* space), converted to the destination sample data type if necessary, and transferred to the destination image.
The lightness is computed for the specified subset of pixel samples, or for the current rectangular selection, depending on parameter values. For more information on the rest of parameters of this function, see the documentation for Fill(). The current channel range selection is always ignored by this function.
The previous contents of the destination image will be dereferenced (and immediately destroyed if they become unreferenced) and replaced with the computed, uniquely referenced CIE L* data. The destination image will be in the grayscale color space; it will have a single channel corresponding to the lightness of the specified pixel sample subset in this image. The dimensions of the destination image will be the same ones of the specified pixel sample subset, and it will be associated with the same RGBWS as this image.
float
or double
, depending on the source data type. The recommended types are:
|
inline |
Computes the CIE L* component for a subset of pixel samples and stores it in a grayscale image, transported by an ImageVariant object.
If the specified ImageVariant does not transport an image, a new floating point image will be created with the appropriate sample type (either 32-bit or 64-bit floating point, depending on the sample data type of this image).
Definition at line 7262 of file ImageVariant.h.
|
inline |
Computes the CIE Y component for a subset of pixel samples and stores it in a grayscale image.
[out] | Y | Reference to a destination image, where the computed CIE Y component will be stored. This image can be an instance of any supported GenericImage template instantiation; all the necessary data type conversions are carried out transparently. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
This member function computes the Y component of the CIE XYZ space. CIE Y component values are calculated in the RGB working space (RGBWS) currently associated with the image.
If this image is in the grayscale color space, gray source samples are simply copied to the destination image, after conversion to the destination sample data type, if necessary, using pixel traits primitives.
If this image is in the CIE XYZ color space, samples from the luminance channel (source channel #1) are simply copied to the destination image, after conversion to the destination sample data type, if necessary.
For other color spaces, CIE Y values are obtained by means of the simplest possible intermediate transformation (usually to the CIE XYZ space), converted to the destination sample data type if necessary, and transferred to the destination image.
The luminance is computed for the specified subset of pixel samples, or for the current rectangular selection, depending on parameter values. For more information on the rest of parameters of this function, see the documentation for Fill(). The current channel range selection is always ignored by this function.
The previous contents of the destination image will be dereferenced (and immediately destroyed if they become unreferenced) and replaced with the computed, uniquely referenced CIE Y data. The destination image will be in the grayscale color space; it will have a single channel corresponding to the luminance of the specified pixel sample subset in this image. The dimensions of the destination image will be the same ones of the specified pixel sample subset, and it will be associated with the same RGBWS as this image.
float
or double
, depending on the source data type. The recommended types are:
|
inline |
Computes the CIE Y component for a subset of pixel samples and stores it in a grayscale image, transported by an ImageVariant object.
If the specified ImageVariant does not transport an image, a new floating point image will be created with the appropriate sample type (either 32-bit or 64-bit floating point, depending on the sample data type of this image).
Definition at line 7256 of file ImageVariant.h.
|
inline |
Stores a duplicate of a row of pixel samples in the specified array, with implicit data type conversion.
[out] | buffer | Starting address of a contiguous block where samples from the source row will be converted and copied. The length of this block must be at least equal to the width in pixels of this image. |
y | Vertical coordinate (or row index) of the desired scan line, 0 ≤ y < h, where h is the height in pixels of this image. | |
channel | Channel index. If this parameter is negative, the currently selected channel will be used. The default value is -1. |
If this image is empty, if the specified vertical coordinate is out of range, or if a nonexistent channel is specified, this member function does nothing.
|
inlinenoexcept |
Returns a non-cryptographic hash value computed for the specified channel of this image. This function is a synonym for Hash64().
Definition at line 13489 of file Image.h.
References pcl::Hash64().
|
inlinenoexcept |
Returns a 32-bit non-cryptographic hash value computed for the specified channel of this image.
This function calls pcl::Hash32() for the internal pixel sample buffer.
The seed parameter can be used to generate repeatable hash values. It can also be set to a random value in compromised environments.
For information on the rest of parameters of this member function, see the documentation for Fill().
Definition at line 13478 of file Image.h.
References pcl::Hash32().
|
inlinenoexcept |
Returns a 64-bit non-cryptographic hash value computed for the specified channel of this image.
This function calls pcl::Hash64() for the internal pixel sample buffer.
The seed parameter can be used to generate repeatable hash values. It can also be set to a random value in compromised environments.
For information on the rest of parameters of this member function, see the documentation for Fill().
Definition at line 13459 of file Image.h.
References pcl::Hash64().
|
inlinenoexcept |
Returns the size in bytes of all memory blocks required to store the pixel data in this image, including nominal and alpha channels. This is equal to the area in square pixels multiplied by the number of channels, multiplied by BytesPerSample().
|
inline |
Forces this image to acquire the specified pixel data. Returns a reference to this image.
data | Starting address of the acquired pixel data. Must be either a null pointer, or a pointer to an array of contiguous blocks of pixel samples. |
width | Width in pixels of the acquired pixel data. |
height | Height in pixels of the acquired pixel data. |
numberOfChannels | Number of channels in the acquired data. Must be greater than or equal to the number of nominal channels corresponding to the specified color space: one for grayscale images; three for color images. If this parameter is not specified, a single grayscale channel is assumed. |
colorSpace | Color space of the acquired data. See the ColorSpace namespace for symbolic constants. If this parameter is not specified, the grayscale space is assumed for the acquired data. |
If this object uniquely references its pixel data, then the previously existing pixel data are destroyed, deallocated, and replaced with the specified local or shared data, preserving the storage space of this instance.
If this object is a non-unique local image, then the previously referenced pixel data are dereferenced, and a newly created local image is uniquely referenced by this object and forced to own the specified local data.
If this object is a non-unique shared image, then this member function throws an Error exception with the appropriate error message: An aliased shared image cannot be forced to store externally allocated pixel data.
When successful, this function resets all image selections to the default full selection.
new'ed
block), you may cause severe heap corruption in the PixInsight core application. Similarly, if the image is local, only locally-allocated arrays and blocks must be used. In other words: shared and local pixel data and images cannot be mixed.new
and delete
operators with pixel data memory blocks. Always call the Allocator() member function of GenericImage to get a reference to its PixelAllocator object, then use its public member functions for all allocations and deallocations of pixel data.
|
inline |
Inverts a subset of pixel samples with respect to the maximum sample value in the native range of the image. Returns a reference to this image.
This member function is a convenience shortcut for:
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
Inverts a subset of pixel samples with respect to the specified scalar. Returns a reference to this image.
The inverse of a pixel sample v with respect to a scalar r is equal to r - v. Normally (but not necessarily) the reference scalar used is the maximum sample value in the native range of the image.
For information on the rest of parameters of this member function, see the documentation for Fill().
Definition at line 8089 of file Image.h.
Referenced by pcl::GenericImage< P >::operator~().
|
inline |
Returns a local image with a subset of pixel samples from this image, inverted with respect to the maximum sample value in the native range of the image.
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
Returns a local image with a subset of pixel samples from this image, inverted with respect to the specified scalar.
For information on the rest of parameters of this member function, see the documentation for Fill().
|
inlinestaticnoexcept |
|
inlinestaticnoexcept |
|
inlinenoexcept |
Returns true iff this object is a shared image. Returns false if this is a local image.
Shared images are alias objects referencing actual images living within the PixInsight core application. Shared images allocate pixel data in the core application's heap, which we call shared memory.
Local images exist within the user module's local heap, including all of their pixel data.
PCL implements an abstraction mechanism that allows you to handle local and shared images transparently. Except in very few and special cases, you don't have to know whether you're working with a shared or a local image; your code will be exactly the same under both situations.
Definition at line 6333 of file Image.h.
Referenced by pcl::GenericImage< P >::GenericImage(), and pcl::GenericImage< P >::ReleaseAlphaChannel().
|
inlinenoexcept |
Returns true iff this object uniquely references its pixel data. Returns false if this object is sharing its pixel data with other GenericImage instances.
|
inlinenoexcept |
|
inline |
Obtains the extreme values, and the image coordinates of their first occurrences, among a subset of pixel samples of this image.
[out] | xmin | Horizontal coordinate of the first occurrence of the minimum pixel sample value. |
[out] | ymin | Vertical coordinate of the first occurrence of the minimum pixel sample value. |
[out] | min | Minimum pixel sample value in the selected subset. |
[out] | xmax | Horizontal coordinate of the first occurrence of the maximum pixel sample value. |
[out] | ymax | Vertical coordinate of the first occurrence of the maximum pixel sample value. |
[out] | max | Maximum pixel sample value in the selected subset. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account to search for the extreme sample values.
|
inline |
Obtains the extreme values, and the image coordinates of their first occurrences, among a subset of pixel samples of this image.
[out] | pmin | Coordinates of the first occurrence of the minimum pixel sample value. |
[out] | min | Minimum pixel sample value in the selected subset. |
[out] | pmax | Coordinates of the first occurrence of the maximum pixel sample value. |
[out] | max | Maximum pixel sample value in the selected subset. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account to search for the extreme sample values.
|
inline |
|
inline |
|
inline |
Returns the maximum value among a subset of pixel samples of this image, and obtains the image coordinates of its first occurrence.
[out] | xmax | Horizontal coordinate of the first occurrence of the returned maximum pixel sample value. |
[out] | ymax | Vertical coordinate of the first occurrence of the returned maximum pixel sample value. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account to search for the maximum sample value.
For information on the rest of parameters of this member function, see the documentation for Fill().
|
inline |
Returns the maximum value among a subset of pixel samples of this image, and obtains the image coordinates of its first occurrence.
[out] | pmax | Coordinates of the first occurrence of the returned maximum pixel sample value. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the parameters of this member function, see the documentation for Fill().
This member function is equivalent to:
|
inline |
|
inline |
|
inline |
Returns the minimum value among a subset of pixel samples of this image, and obtains the image coordinates of its first occurrence.
[out] | xmin | Horizontal coordinate of the first occurrence of the returned minimum pixel sample value. |
[out] | ymin | Vertical coordinate of the first occurrence of the returned minimum pixel sample value. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account to search for the minimum sample value.
|
inline |
Returns the minimum value among a subset of pixel samples of this image, and obtains the image coordinates of its first occurrence.
[out] | pmin | Coordinates of the first occurrence of the returned minimum pixel sample value. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the parameters of this member function, see the documentation for Fill().
This member function is equivalent to:
|
inline |
Returns the median absolute deviation (MAD) of a subset of pixel samples with respect to the specified center value.
center | Reference central value for computation of MAD in the normalized range [0,1]. Normally, this value should be the median of the selected pixel samples, or the median of the whole image. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
This member function returns MAD in the normalized range [0,1] with respect to center, irrespective of the sample data type of the image.
For complex-valued images, this function returns the MAD of the magnitudes (or absolute values) of all selected samples.
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account for calculation of the median absolute deviation.
|
inline |
A synonym for SetMaximum().
|
inline |
A synonym for SetMaximum().
|
inline |
Creates a local image with a subset of pixel samples from this image, and computes the maximum of each sample and the specified scalar. Returns the resulting image.
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
|
inline |
Returns the maximum value among a subset of pixel samples of this image.
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account to search for the maximum sample value.
|
inline |
Returns the arithmetic mean of a subset of pixel samples.
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
This member function returns the mean in the normalized range [0,1], irrespective of the sample data type of the image.
For complex-valued images, this function returns the mean of the magnitudes (or absolute values) of all selected samples.
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account for calculation of the mean.
This function implements a numerically stable summation algorithm to reduce roundoff errors to the machine's floating point precision.
|
inline |
Returns the mean of the squares of a subset of pixel samples.
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
This member function returns the mean of squares in the normalized range [0,1], irrespective of the sample data type of the image.
For complex-valued images, this function returns the mean of the squares of the magnitudes (or absolute values) of all selected samples.
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account for calculation of the mean of squares.
This function implements a numerically stable summation algorithm to reduce roundoff errors to the machine's floating point precision.
|
inline |
Returns the median of a subset of pixel samples.
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
This member function returns the median in the normalized range [0,1], irrespective of the sample data type of the image.
For complex-valued images, this function returns the median of the magnitudes (or absolute values) of all selected samples.
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account for calculation of the median.
|
inline |
A synonym for SetMinimum().
|
inline |
A synonym for SetMinimum().
|
inline |
Creates a local image with a subset of pixel samples from this image, and computes the minimum of each sample and the specified scalar. Returns the resulting image.
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
|
inline |
Returns the minimum value among a subset of pixel samples of this image.
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account to search for the minimum sample value.
|
inline |
Returns the modulus of a subset of pixel samples.
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
The modulus is the sum of the absolute values of all selected pixel sample values. This member function returns the modulus in the normalized range [0,1], irrespective of the sample data type of the image.
This member function only makes sense for real-valued floating point images. For the rest of image types, including unsigned integer and complex valued images, this function is always equivalent to Norm().
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account for calculation of the modulus.
This function implements a numerically stable summation algorithm to reduce roundoff errors to the machine's floating point precision.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
A synonym for Multiply().
|
inline |
A synonym for Multiply().
|
inline |
Creates a local image with a subset of pixel samples from this image, and multiplies it by a scalar. Returns the resulting image.
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
|
inline |
|
inline |
Performs a bitwise NAND (NOT AND) operation between a subset of pixel samples in this image and the corresponding samples of the specified source image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
|
inlinenoexcept |
Returns the size in bytes of all memory blocks required to store the pixel data in the nominal channels of this image (i.e., excluding alpha channels).
Definition at line 6692 of file Image.h.
References pcl::ColorSpace::NumberOfNominalChannels().
|
inline |
Performs a bitwise NOR (NOT inclusive OR) operation between a subset of pixel samples in this image and the corresponding samples of the specified source image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Performs a bitwise NOR (NOT inclusive OR) operation between a subset of pixel samples in this image and the specified scalar. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Returns the norm of a subset of pixel samples.
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
The norm is the sum of all selected pixel sample values. This member function returns the norm in the normalized range [0,1], irrespective of the sample data type of the image.
For real-valued integer images, this function returns the sum of all selected samples converted to the normalized range [0,1].
For floating-point real images, this function simply sums all selected samples, assuming that no selected samples have negative values. If there are some negative values, the returned value may make not sense, depending on the application.
For complex-valued images, this function returns the sum of the magnitudes (or absolute values) of all selected samples.
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account for calculation of the norm.
This function implements a numerically stable summation algorithm to reduce roundoff errors to the machine's floating point precision.
|
inline |
Normalizes a subset of pixel samples to the native range of the image. Returns a reference to this image.
This member function is a convenience shortcut for:
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
Normalizes a subset of pixel samples to the specified range of values. Returns a reference to this image.
lowerBound | Lower bound of the normalizing range. |
upperBound | Upper bound of the normalizing range. |
The specified normalizing bounds are converted to the sample data type of this image, using pixel traits primitives.
For information on the rest of parameters of this member function, see the documentation for Fill().
Normalization is a conditional rescaling operation: Pixel sample values are rescaled to the specified normalizing range only if the existing extreme sample values exceed that range. Given the following two ranges:
m
, M
: The range of existing sample values in the selected set of pixel samples, n0
, n1
: The normalizing range,the normalized value n
for a given sample s
is:
if m < n0 or M > n1 n = n0 + (s - m)*(n1 - n0)/(M - m) else n = s endif
|
inline |
Returns a local image with a subset of pixel samples from this image, normalized to the native range of the image.
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
Returns a local image with a subset of pixel samples from this image, normalized to the specified range of values.
lowerBound | Lower bound of the normalizing range. |
upperBound | Upper bound of the normalizing range. |
For information on the rest of parameters of this member function, see the documentation for Fill().
|
inline |
Returns a vector of norms for a subset of pixel samples.
maxDegree | Maximum degree ≥ 1 of the computed vector of norms. The default value is 2, hence the L1 and L2 norms are computed if this parameter is not specified. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
This function computes a series of image norms, up to maxDegree, in a single multithreaded operation for improved efficiency. The norms are returned as a vector. The first vector component is the L1 norm, which is the sum of all selected pixel sample values. The second vector component is the L2 norm, or the sum of squared pixel sample values, and so on.
For the sake of performance, this function assumes that no negative values exist in the selected subset of pixel samples; otherwise, odd norms will provide meaningless results. All norms are returned expressed in the normalized range [0,1], irrespective of the sample data type of the image.
This function implements a numerically stable summation algorithm to reduce roundoff errors to the machine's floating point precision.
See the Norm() and SumOfSquares() member functions for more information and important implementation details.
|
inline |
Replaces a subset of pixel samples with their bitwise logical NOT values. Returns a reference to this image.
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
Fills a subset of pixel samples with the constant value resulting from converting the floating point scalar one (1.0) to the sample data type of the image. Returns a reference to this image.
This member function is a convenience shortcut for:
|
inlinenoexcept |
|
inline |
Returns a reference to a pixel sample in this image, given by its pixel position and channel index.
p | Position of the desired pixel in image coordinates. The specified point must be included in the image bounds rectangle, that is, its coordinates must refer to an existing pixel in this image. |
channel | Channel index, 0 ≤ channel < n, where n is the number of channels in this image, including nominal and alpha channels. The default value is zero. |
If this image is aliased, it is made unique before returning from this member function. This involves making a local duplicate of the previously referenced pixel data.
|
inlinenoexcept |
Returns a pixel sample value, given by its pixel position and channel index.
p | Position of the desired pixel in image coordinates. The specified point must be included in the image bounds rectangle, that is, its coordinates must refer to an existing pixel in this image. |
channel | Channel index, 0 ≤ channel < n, where n is the number of channels in this image, including nominal and alpha channels. The default value is zero. |
|
inline |
Returns a reference to a pixel sample in this image, given by its pixel coordinates and channel index.
x | Horizontal coordinate (or column index) of the desired pixel, 0 ≤ x < w, where w is the width in pixels of this image. |
y | Vertical coordinate (or row index) of the desired scan line, 0 ≤ y < h, where h is the height in pixels of this image. |
channel | Channel index, 0 ≤ channel < n, where n is the number of channels in this image, including nominal and alpha channels. The default value is zero. |
If this image is aliased, it is made unique before returning from this member function. This involves making a local duplicate of the previously referenced pixel data.
|
inlinenoexcept |
Returns a pixel sample value, given by its pixel coordinates and channel index.
x | Horizontal coordinate (or column index) of the desired pixel, 0 ≤ x < w, where w is the width in pixels of this image. |
y | Vertical coordinate (or row index) of the desired scan line, 0 ≤ y < h, where h is the height in pixels of this image. |
channel | Channel index, 0 ≤ channel < n, where n is the number of channels in this image, including nominal and alpha channels. The default value is zero. |
|
inline |
Returns a pointer to the first pixel sample in the first channel of this image.
For grayscale images, this function can be more readable and elegant than operator []( int ).
|
inlinenoexcept |
Returns a pointer to the constant first pixel sample in the first channel of this image.
This operator function is the immutable counterpart of operator *().
|
inline |
A synonym for Multiply().
|
inline |
A synonym for Multiply().
|
inline |
|
inline |
|
inline |
A synonym for Subtract().
|
inline |
A synonym for Subtract().
|
inline |
|
inline |
|
inline |
Copy assignment operator. Copies pixel samples from the specified source image to this image. Returns a reference to this image.
This operator is a synonym for Assign(), where both this object and the source image are instances of the same template instantiation of GenericImage. The declaration of this operator is necessary for optimization purposes. It also provides a pure copy assignment operator for the GenericImage template class.
|
inline |
|
inline |
Move assignment operator. Returns a reference to this image.
This operator is equivalent to Transfer( GenericImage& ).
|
inline |
|
inline |
Returns a pointer to the first pixel sample in the specified channel.
channel | Channel index, 0 ≤ channel < n, where n is the number of channels in this image, including nominal and alpha channels. |
This operator is a convenience synonym for the PixelData( int ) member function.
|
inlinenoexcept |
Returns a pointer to the constant first pixel sample in the specified channel.
This operator function is the immutable counterpart of operator []( int ).
|
inline |
|
inline |
|
inline |
Returns an inverted duplicate of this image. The inversion operation is performed on the current pixel sample selection with respect to the maximum sample value in the native range of the image.
Definition at line 8192 of file Image.h.
References pcl::GenericImage< P >::Invert().
|
inline |
Performs a bitwise OR (inclusive OR) operation between a subset of pixel samples in this image and the corresponding samples of the specified source image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
|
inline |
Returns an order statistic computed for a subset of pixel samples.
k | Selection point in the [0,1] range, where 0 corresponds to the minimum value in the ordered subset of selected pixel samples and 1 corresponds to the maximum value. If the value of this parameter is outside the [0,1] range, this function returns zero conventionally. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
This function returns the requested order statistic in the normalized range [0,1], irrespective of the sample data type of the image.
For complex-valued images, this function returns the requested order statistic for the set of magnitudes (or absolute values) of all selected samples.
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account.
|
inline |
Returns a reference to a pixel sample in this image, given by its pixel position and channel index.
|
inlinenoexcept |
Returns a pixel sample value, given by its pixel position and channel index.
|
inline |
Returns a reference to a pixel sample in this image, given by its pixel coordinates and channel index.
|
inlinenoexcept |
Returns a pixel sample value, given by its pixel coordinates and channel index.
|
inline |
Returns the address of a pixel sample in this image, given by its pixel position and channel index.
p | Position of the desired pixel in image coordinates. The specified point must be included in the image bounds rectangle, that is, its coordinates must refer to an existing pixel in this image. |
channel | Channel index, 0 ≤ channel < n, where n is the number of channels in this image, including nominal and alpha channels. The default value is zero. |
The returned value is a pointer to the sample at coordinates (p.x,p.y) in the specified channel.
If this image is aliased, it is made unique before returning from this member function. This involves making a local duplicate of the previously referenced pixel data.
Definition at line 6907 of file Image.h.
References pcl::GenericPoint< T >::x, and pcl::GenericPoint< T >::y.
|
inlinenoexcept |
Returns the address of a constant pixel sample in this image, given by its pixel position and channel index.
This member function is the immutable counterpart of PixelAddress( const Point&, int ).
Definition at line 6919 of file Image.h.
References pcl::GenericPoint< T >::x, and pcl::GenericPoint< T >::y.
|
inline |
Returns the address of a pixel sample in this image, given by its pixel coordinates and channel index.
x | Horizontal coordinate (or column index) of the desired pixel, 0 ≤ x < w, where w is the width in pixels of this image. |
y | Vertical coordinate (or row index) of the desired scan line, 0 ≤ y < h, where h is the height in pixels of this image. |
channel | Channel index, 0 ≤ channel < n, where n is the number of channels in this image, including nominal and alpha channels. The default value is zero. |
The returned value is a pointer to the sample at coordinates (x,y) in the specified channel.
If this image is aliased, it is made unique before returning from this member function. This involves making a local duplicate of the previously referenced pixel data.
|
inlinenoexcept |
Returns the address of a constant pixel sample in this image, given by its pixel coordinates and channel index.
This member function is the immutable counterpart of PixelAddress( int, int, int ).
|
inline |
Returns a pointer to the first pixel sample in the specified channel.
channel | Channel index, 0 ≤ channel < n, where n is the number of channels in this image, including nominal and alpha channels. The default value is zero. |
The returned value is the address of the pixel at coordinates x=y=0 in the specified channel.
If this image is aliased, it is made unique before returning from this member function. This involves making a local duplicate of the previously referenced pixel data.
|
inlinenoexcept |
Returns a pointer to the constant first pixel sample in the specified channel.
This member function is the immutable counterpart of PixelData( int ).
|
inline |
|
inline |
|
inline |
Qn scale estimator of Rousseeuw and Croux for a subset of pixel samples.
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
For a sample {x0,...,x_n-1}, the Qn estimator is given by:
Qn = c * first_quartile( |x_i - x_j| : i < j )
where first_quartile() is the order statistic of rank (n + 1)/4.
This member function returns Qn in the normalized range [0,1], irrespective of the sample data type of the image.
For complex-valued images, this function returns the Qn estimator of the magnitudes (or absolute values) of all selected samples.
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account for calculation of the Qn estimator.
The constant c = 2.2219 must be used to make the Qn estimator converge to the standard deviation of a pure normal distribution. However, this implementation does not apply it (it uses c=1 implicitly), for consistency with other implementations of scale estimators.
References
P.J. Rousseeuw and C. Croux (1993), Alternatives to the Median Absolute Deviation, Journal of the American Statistical Association, Vol. 88, pp. 1273-1283.
|
inline |
Raises (exponentiation operator) a subset of pixel samples in this image to samples from the specified source image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
|
inline |
Creates a local image with a subset of pixel samples from this image, and raises it to a scalar. Returns the resulting image.
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
Reads an image from a raw-storage file. Returns a reference to this image.
filePath | Path to an existing file from which new pixel data will be read. The contents of the existing file will not be modified in any way. |
This member function is just a wrapper to the more general version: Read( File& ).
|
inline |
Reads an image from a raw-storage stream. Returns a reference to this image.
file | Input stream to read from. |
If this object uniquely references its pixel data, then the previously existing pixel data are destroyed, deallocated, and replaced with a newly allocated local or shared image, preserving the storage space of this instance.
The input stream must provide pixel sample values in the sample data type of this image. The sample data type of an image is invariantly defined by its template instantiation, and thus cannot be changed. If the image stored in the input stream uses a different sample data type than this image, this function will lead to unpredictable results, most likely an exception being thrown by the stream I/O routines.
If this object is not unique, then the previously referenced pixel data are dereferenced, and a newly created local image is uniquely referenced by this object.
All image selections are reset to the default full selection after calling this function.
The data read from the specified file should have been generated by a previous call to Write().
Definition at line 13601 of file Image.h.
References pcl::File::ReadUI32().
|
inline |
Releases an alpha channel into another image. Returns a reference to this image.
image | Image that will receive the data from the released alpha channel. Its previous contents will be dereferenced and eventually destroyed. |
channel | Zero-based index of the alpha channel to be released, 0 ≤ channel < n, where n is the number of existing alpha channels before calling this function. |
Definition at line 7679 of file Image.h.
References pcl::GenericImage< P >::IsShared().
|
inline |
Releases ownership of the pixel data allocated by this image.
Returns an array of pointers to the channel data blocks that were owned by the image before calling this function. The returned array is a sequence of pointers p0, p1, ..., pn-1, where each pi is the starting address of a contiguous block containing the sample data of an image channel, and n is the number of channels in the image, including all nominal and alpha channels.
After calling this function the image will be empty, but the returned data will not be deallocated; the caller will be responsible for deallocating it when it is no longer needed.
If this member function is called for an aliased image, it throws an Error exception with the appropriate error message: Pixel data cannot be released if two or more GenericImage instances are referencing them. The reason for this limitation is that if the data of a non-unique image were released, either all instances sharing the same data would be affected, which violates the implicit data sharing paradigm, or the newly allocated data of a unique clone would be released, which makes no sense.
sample**
value points to a shared memory block. If you handle such a block as if it was a block within your local heap (e.g., if you call the delete
operator to deallocate it), you may cause severe heap corruption.new
and delete
operators with pixel data memory blocks. Always call the Allocator() member function of GenericImage to get a reference to its PixelAllocator object, then use its public member functions for all allocations and deallocations of pixel data.
|
inline |
Rescales a subset of pixel samples to the native range of the image. Returns a reference to this image.
This member function is a convenience shortcut for:
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
Rescales a subset of pixel samples to the specified range of values. Returns a reference to this image.
lowerBound | Lower bound of the rescaling range. |
upperBound | Upper bound of the rescaling range. |
The specified rescaling bounds are converted to the sample data type of this image, using pixel traits primitives.
For information on the rest of parameters of this member function, see the documentation for Fill().
The rescaling operation is as follows. Given the following two ranges:
m
, M
: The range of existing sample values in the selected set of pixel samples, r0
, r1
: The rescaling range,the rescaled value r
for a given sample s
is:
r = r0 + (s - m)*(r1 - r0)/(M - m)
|
inline |
Returns a local image with a subset of pixel samples from this image, rescaled to the native range of the image.
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
Returns a local image with a subset of pixel samples from this image, rescaled to the specified range of values.
lowerBound | Lower bound of the rescaling range. |
upperBound | Upper bound of the rescaling range. |
For information on the rest of parameters of this member function, see the documentation for Fill().
|
inline |
Generates a vector of pixel samples from a row of this image.
y | Vertical coordinate (or row index) of the desired scan line, 0 ≤ y < h, where h is the height in pixels of this image. |
channel | Channel index. If this parameter is negative, the currently selected channel will be used. The default value is -1. |
The number of components in the returned vector will be equal to the width in pixels of this image.
If this image is empty, if the specified vertical coordinate is out of range, or if a nonexistent channel is specified, this member function returns an empty vector.
|
inlinenoexcept |
|
inlinenoexcept |
|
inline |
Returns the starting address of a scan line (i.e., a row of pixels) in this image.
y | Vertical coordinate (or row index) of the desired scan line, such that 0 ≤ y < h, where h is the height in pixels of this image. |
channel | Channel index, 0 ≤ channel < n, where n is the number of channels in this image, including nominal and alpha channels. The default value is zero. |
The returned value is a pointer to the sample at coordinates (x=0,y) in the specified channel.
If this image is aliased, it is made unique before returning from this member function. This involves making a local duplicate of the previously referenced pixel data.
|
inlinenoexcept |
Returns the starting address of a constant scan line (i.e., a row of pixels) in this image.
This member function is the immutable counterpart of ScanLine( int, int ).
|
inline |
Replaces a subset of pixel samples in this image with the absolute values of their differences with samples from the specified source image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Replaces a subset of pixel samples in this image with the absolute values of their differences with the specified scalar. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Replaces a subset of pixel samples with their absolute values. Returns a reference to this image.
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
Converts the image to the specified color space. Returns a reference to this object.
colorSpace | Specifies a color space to convert the image to. See the ColorSpace namespace for symbolic constants corresponding to all supported color spaces in this version of PCL. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
Color space conversion is performed in the current RGB working space (RGBWS) associated with this image.
This function operates on the entire image; current selections are neither used nor modified (except the channel range selection, which is reset to defaults when the color space conversion involves a change in the number of nominal channels). Existing alpha channels are never modified by this member function.
Before performing the requested color space conversion, this function ensures that the image data is uniquely referenced by this object. If necessary, the previously referenced data are dereferenced (and destroyed immediately if they become unreferenced), and a new local image is allocated and referenced.
|
inline |
Sets a column of pixel samples from values in the specified array, with implicit data type conversion. Returns a reference to this image.
buffer | Starting address of a contiguous block with source values that will be converted and copied to the target column in this image. The length of this block must be at least equal to the height in pixels of this image. |
x | Horizontal coordinate (or column index) of the desired column, 0 ≤ x < w, where w is the width in pixels of this image. |
channel | Channel index. If this parameter is negative, the currently selected channel will be used. The default value is -1. |
If this image is empty, if the specified horizontal coordinate is out of range, or if a nonexistent channel is specified, this member function does nothing.
|
inline |
Replaces the CIE L* component of a subset of pixel samples with data extracted from another image.
L | Reference to a source image, from which the CIE L* components will be obtained. This image can be in any supported color space, and can be an instance of any supported template instantiation of GenericImage; all the necessary color space and data type conversions are carried out transparently. |
point | Target point in image coordinates. This is the upper left corner of the target rectangular region in this image where CIE L* components will be replaced with source values. If one or both point coordinates are equal to int_max (the maximum possible value of type int ), then the current anchor point selection will be used. The default value is Point( int_max ). |
rect | Source rectangular region. If this parameter defines an empty rectangle, the current rectangular selection in the source image will be used. If the specified rectangle is not empty and extends beyond source image boundaries, only the intersection with the source image will be used. If that intersection does not exist, then this member function has no effect. The default value is an empty rectangle. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
This member function computes and replaces the L* component of the CIE L*a*b* color space. Source CIE L* component values are calculated in the RGB working space (RGBWS) associated with the source image L. Replacement of CIE L* components in this (target) image is performed by transformations in the RGBWS associated with this image. This ensures that only pure illumination data is transferred between both images, without any chrominance contamination.
If the source image is in the grayscale, CIE L*a*b* or CIE L*c*h* color spaces, samples from its first channel are directly taken as source values, requiring no additional conversion.
Once a source CIE L* value is available, either by direct extraction or through the simplest possible intermediate transformation (usually to the CIE L*a*b* or CIE XYZ spaces), it is inserted in the corresponding destination pixel by means of a series of transformations in the target RGBWS, whose number and complexity depend on the destination color space. Additional sample data type conversions may take place using pixel traits primitives, if the source and destination data types differ. Roundoff errors are minimized during the whole process.
|
inline |
Replaces the CIE L* component of a subset of pixel samples with data extracted from another image, transported by an ImageVariant object.
If the specified ImageVariant does not transport an image, a new floating point image will be created with the appropriate sample type (either 32-bit or 64-bit floating point, depending on the sample data type of this image).
Definition at line 7281 of file ImageVariant.h.
|
inline |
Replaces the CIE Y component of a subset of pixel samples with data extracted from another image.
Y | Reference to a source image, from which the CIE Y components will be obtained. This image can be in any supported color space, and can be an instance of any supported template instantiation of GenericImage; all the necessary color space and data type conversions are carried out transparently. |
point | Target point in image coordinates. This is the upper left corner of the target rectangular region in this image where CIE Y components will be replaced with source values. If one or both point coordinates are equal to int_max (the maximum possible value of type int ), then the current anchor point selection will be used. The default value is Point( int_max ). |
rect | Source rectangular region. If this parameter defines an empty rectangle, the current rectangular selection in the source image will be used. If the specified rectangle is not empty and extends beyond source image boundaries, only the intersection with the source image will be used. If that intersection does not exist, then this member function has no effect. The default value is an empty rectangle. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
This member function computes and replaces the Y component of the CIE XYZ color space. Source CIE Y component values are calculated in the RGB working space (RGBWS) associated with the source image Y. Replacement of CIE Y components in this (target) image is performed by transformations in the RGBWS associated with this image. This ensures that only pure illumination data is transferred between both images, without any chrominance contamination.
If the source image is in the grayscale or CIE XYZ color spaces, samples from its first or second channel, respectively, are directly taken as source values, requiring no additional conversion.
Once a source CIE Y value is available, either by direct extraction or through the simplest possible intermediate transformation (usually to the CIE L*a*b* or CIE XYZ spaces), it is inserted in the corresponding destination pixel by means of a series of transformations in the target RGBWS, whose number and complexity depend on the destination color space. Additional sample data type conversions may take place using pixel traits primitives, if the source and destination data types differ. Roundoff errors are minimized during the whole process.
|
inline |
Replaces the CIE Y component of a subset of pixel samples with data extracted from another image, transported by an ImageVariant object.
If the specified ImageVariant does not transport an image, a new floating point image will be created with the appropriate sample type (either 32-bit or 64-bit floating point, depending on the sample data type of this image).
Definition at line 7274 of file ImageVariant.h.
|
inline |
Replaces a subset of pixel samples in this image with the maximum of each target sample and the corresponding source sample of the specified image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
|
inline |
Replaces a subset of pixel samples in this image with the minimum of each target sample and the corresponding source sample of the specified image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
|
inlineoverridevirtual |
Associates an RGB working space RGBWS with this image.
Reimplemented from pcl::ImageColor.
|
inline |
Sets a row of pixel samples from values in the specified array, with implicit data type conversion. Returns a reference to this image.
buffer | Starting address of a contiguous block with source values that will be converted and copied to the target row in this image. The length of this block must be at least equal to the width in pixels of this image. |
y | Vertical coordinate (or row index) of the desired scan line, 0 ≤ y < h, where h is the height in pixels of this image. |
channel | Channel index. If this parameter is negative, the currently selected channel will be used. The default value is -1. |
If this image is empty, if the specified vertical coordinate is out of range, or if a nonexistent channel is specified, this member function does nothing.
|
inline |
Shifts (translates) the image to its current anchor point selection, filling extended regions with the minimum sample value in the native range of the image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Shifts (translates) the image to its current anchor point selection. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Shifts (translates) this image by the specified increments in pixels, filling extended regions with the minimum sample value in the native range of the image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Shifts (translates) this image by the specified increments in pixels. Returns a reference to this image.
dx | Horizontal displacement in pixels. |
dy | Vertical displacement in pixels. |
fillValues | Vector of filling sample values for extended areas. See the documentation for CropBy() for more information. |
Positive increment values shift the image toward the right and bottom sides. Negative increments shift toward the left and top sides.
This member function is equivalent to:
|
inline |
Shifts (translates) the image to the specified coordinates, filling extended regions with the minimum sample value in the native range of the image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Shifts (translates) the image to the specified coordinates. Returns a reference to this image.
This member function is equivalent to:
Definition at line 13977 of file Image.h.
References pcl::GenericPoint< T >::x, and pcl::GenericPoint< T >::y.
|
inline |
Shifts (translates) the image to the specified coordinates, filling extended regions with the minimum sample value in the native range of the image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
|
inline |
Extends or crops the image at its right and top sides to the specified width and height in pixels, filling extended regions with the minimum sample value in the native range of the image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
|
inline |
Extends or crops the image at its left and top sides to the specified width and height in pixels, filling extended regions with the minimum sample value in the native range of the image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
|
inline |
Extends or crops the image centered within the specified width and height in pixels, filling extended regions with the minimum sample value in the native range of the image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
|
inline |
Extends or crops the image at its right and bottom sides to the specified width and height in pixels, filling extended regions with the minimum sample value in the native range of the image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
|
inline |
Extends or crops the image at its left and bottom sides to the specified width and height in pixels, filling extended regions with the minimum sample value in the native range of the image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
|
inline |
Sn scale estimator of Rousseeuw and Croux for a subset of pixel samples.
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
For a sample {x0,...,x_n-1}, the Sn estimator is given by:
Sn = c * low_median( high_median( |x_i - x_j| ) )
where low_median() is the order statistic of rank (n + 1)/2, and high_median() is the order statistic of rank n/2 + 1.
This member function returns Sn in the normalized range [0,1], irrespective of the sample data type of the image.
For complex-valued images, this function returns the Sn estimator of the magnitudes (or absolute values) of all selected samples.
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account for calculation of the Sn estimator.
The constant c = 1.1926 must be used to make the Sn estimator converge to the standard deviation of a pure normal distribution. However, this implementation does not apply it (it uses c=1 implicitly), for consistency with other implementations of scale estimators.
References
P.J. Rousseeuw and C. Croux (1993), Alternatives to the Median Absolute Deviation, Journal of the American Statistical Association, Vol. 88, pp. 1273-1283.
|
inline |
Returns the standard deviation from the mean of a subset of pixel samples.
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
This member function returns the standard deviation in the normalized range [0,1], irrespective of the sample data type of the image.
For complex-valued images, this function returns the standard deviation of the magnitudes (or absolute values) of all selected samples.
This implementation uses a two-pass compensated summation algorithm to minimize roundoff errors (see References).
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account for calculation of the variance.
References
William H. Press et al., Numerical Recipes in C: The Art of Scientific Computing, Second Edition (1997 reprint) Cambridge University Press, page 613.
|
inline |
A synonym for Subtract().
|
inline |
A synonym for Subtract().
|
inline |
|
inline |
|
inline |
Creates a local image with a subset of pixel samples from this image, and subtracts a scalar. Returns the resulting image.
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
Returns the sum of the squares of a subset of pixel samples.
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
This member function returns the sum of squares in the normalized range [0,1], irrespective of the sample data type of the image.
For complex-valued images, this function returns the sum of the squares of the magnitudes (or absolute values) of all selected samples.
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account for calculation of the sum of squares.
This function implements a numerically stable summation algorithm to reduce roundoff errors to the machine's floating point precision.
|
inline |
Transfers data from another image to this object. Returns a reference to this image.
Decrements the reference counter of the current image data, and destroys it if it becomes unreferenced.
Transfers the source image to this object, leaving empty and invalid the source image, which cannot be used and must be destroyed immediately after calling this function.
|
inline |
Transfers data from another image to this object. Returns a reference to this image.
Decrements the reference counter of the current image data, and destroys it if it becomes unreferenced.
Transfers the source image to this object, leaving empty and invalid the source image, which cannot be used and must be destroyed immediately after calling this function.
|
inline |
Applies a direct image transformation to a subset of pixel samples.
transform | A bidirectional image transformation that will be applied to the selected subset of pixel samples. |
For information on the rest of parameters of this member function, see the documentation for Fill().
Definition at line 406 of file ImageTransformation.h.
|
inline |
Truncates a subset of pixel samples to the native range of the image. Returns a reference to this image.
This member function is a convenience shortcut for:
For information on the parameters of this member function, see the documentation for Fill().
Note that this function only makes sense for floating point real or complex images, where pixel samples can take arbitrary values. Integer pixel samples are constrained to their native range by nature, so calling this function for integer images has no effect.
|
inline |
Truncates a subset of pixel samples to the specified range of values. Returns a reference to this image.
lowerBound | Lower bound of the truncation range. |
upperBound | Upper bound of the truncation range. |
The specified truncation bounds are converted to the sample data type of this image, using pixel traits primitives.
For information on the rest of parameters of this member function, see the documentation for Fill().
|
inline |
Returns a local image with a subset of pixel samples from this image, truncated to the native range of the image.
For information on the parameters of this member function, see the documentation for Fill().
|
inline |
Returns a local image with a subset of pixel samples from this image, truncated to the specified range of values.
lowerBound | Lower bound of the truncation range. |
upperBound | Upper bound of the truncation range. |
For information on the rest of parameters of this member function, see the documentation for Fill().
|
inline |
Returns the two-sided mean absolute deviation of a subset of pixel samples with respect to the specified center value.
center | Reference central value for computation of the mean absolute deviation in the normalized range [0,1]. Typically, the value of this parameter is the median of the set of pixel samples used for calculation. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
See AvgDev() for complete information and references.
|
inline |
Returns a two-sided biweight midvariance (BWMV) for a subset of pixel samples.
center | Reference center value in the [0,1] range. Normally, the median of the selected pixel samples should be used. |
sigma | Reference estimates of dispersion in the [0,1] range, respectively for samples below and above the reference center value (low and high members of the TwoSidedEstimate structure, respectively). Normally, a two-sided median absolute deviation from the median (two-sided MAD) for the selected pixel samples should be specified. |
k | Rejection limit in sigma units. The default value is k=9. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
See the BiweightMidvariance() member function for more information and references.
|
inline |
Returns the two-sided median absolute deviation (MAD) of a subset of pixel samples with respect to the specified center value.
center | Reference central value for computation of MAD in the normalized range [0,1]. Normally, this value should be the median of the selected pixel samples, or the median of the whole image. |
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
See MAD() for more information and references.
|
inline |
Returns the variance from the mean of a subset of pixel samples.
maxProcessors | If a value greater than zero is specified, it is the maximum number of concurrent threads that this function can execute. If zero or a negative value is specified, the current thread limit for this image will be used instead (see AbstractImage::SetMaxProcessors()). The default value is zero. |
For information on the rest of parameters of this member function, see the documentation for Fill().
This member function returns the variance in the normalized range [0,1], irrespective of the sample data type of the image.
For complex-valued images, this function returns the variance of the magnitudes (or absolute values) of all selected samples.
This implementation uses a two-pass compensated summation algorithm to minimize roundoff errors (see References).
If range clipping is enabled for this image, only pixel samples within the current clipping range will be taken into account for calculation of the variance.
References
William H. Press et al., Numerical Recipes in C: The Art of Scientific Computing, Second Edition (1997 reprint) Cambridge University Press, page 613.
|
inline |
Fills a subset of pixel samples with the maximum sample value in the native range of the image. Returns a reference to this image.
This member function is a convenience shortcut for:
|
inline |
Writes a subset of pixel samples to a raw-storage file. Returns a reference to this image.
filePath | File path where a new file will be created with pixel data from this image. |
This member function is just a wrapper to the more general version: Write( File&, const Rect&, int, int ).
|
inline |
Writes a subset of pixel samples to a raw-storage output stream. Returns a reference to this image.
file | Output stream to write to. |
The generated raw-storage can be used to generate a new image with the Read() member function.
|
inline |
A synonym for Exchange().
|
inline |
Performs a bitwise XNOR (NOT exclusive OR) operation between a subset of pixel samples in this image and the corresponding samples of the specified source image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Performs a bitwise XNOR (exclusive NOR) operation between a subset of pixel samples in this image and the specified scalar. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Performs a bitwise XOR (exclusive OR) operation between a subset of pixel samples in this image and the corresponding samples of the specified source image. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Performs a bitwise XOR (exclusive OR) operation between a subset of pixel samples in this image and the specified scalar. Returns a reference to this image.
This member function is equivalent to:
|
inline |
Fills a subset of pixel samples with the constant value resulting from converting the floating point scalar zero (0.0) to the sample data type of the image. Returns a reference to this image.
This member function is a convenience shortcut for:
|
friend |