Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of gr-peach-opencv-project-sd-card by
GpuMat Class Reference
[Data Structures]
Base storage class for GPU memory with reference counting. More...
#include <cuda.hpp>
Public Member Functions | |
GpuMat (Allocator *allocator=defaultAllocator()) | |
default constructor | |
GpuMat (int rows, int cols, int type, Allocator *allocator=defaultAllocator()) | |
constructs GpuMat of the specified size and type | |
GpuMat (int rows, int cols, int type, Scalar s, Allocator *allocator=defaultAllocator()) | |
constucts GpuMat and fills it with the specified value _s | |
GpuMat (const GpuMat &m) | |
copy constructor | |
GpuMat (int rows, int cols, int type, void *data, size_t step=Mat::AUTO_STEP) | |
constructor for GpuMat headers pointing to user-allocated data | |
GpuMat (const GpuMat &m, Range rowRange, Range colRange) | |
creates a GpuMat header for a part of the bigger matrix | |
GpuMat (InputArray arr, Allocator *allocator=defaultAllocator()) | |
builds GpuMat from host memory (Blocking call) | |
~GpuMat () | |
destructor - calls release() | |
GpuMat & | operator= (const GpuMat &m) |
assignment operators | |
void | create (int rows, int cols, int type) |
allocates new GpuMat data unless the GpuMat already has specified size and type | |
void | release () |
decreases reference counter, deallocate the data when reference counter reaches 0 | |
void | swap (GpuMat &mat) |
swaps with other smart pointer | |
void | upload (InputArray arr) |
pefroms upload data to GpuMat (Blocking call) | |
void | upload (InputArray arr, Stream &stream) |
pefroms upload data to GpuMat (Non-Blocking call) | |
void | download (OutputArray dst) const |
pefroms download data from device to host memory (Blocking call) | |
void | download (OutputArray dst, Stream &stream) const |
pefroms download data from device to host memory (Non-Blocking call) | |
GpuMat | clone () const |
returns deep copy of the GpuMat, i.e. the data is copied | |
void | copyTo (OutputArray dst) const |
copies the GpuMat content to device memory (Blocking call) | |
void | copyTo (OutputArray dst, Stream &stream) const |
copies the GpuMat content to device memory (Non-Blocking call) | |
void | copyTo (OutputArray dst, InputArray mask) const |
copies those GpuMat elements to "m" that are marked with non-zero mask elements (Blocking call) | |
void | copyTo (OutputArray dst, InputArray mask, Stream &stream) const |
copies those GpuMat elements to "m" that are marked with non-zero mask elements (Non-Blocking call) | |
GpuMat & | setTo (Scalar s) |
sets some of the GpuMat elements to s (Blocking call) | |
GpuMat & | setTo (Scalar s, Stream &stream) |
sets some of the GpuMat elements to s (Non-Blocking call) | |
GpuMat & | setTo (Scalar s, InputArray mask) |
sets some of the GpuMat elements to s, according to the mask (Blocking call) | |
GpuMat & | setTo (Scalar s, InputArray mask, Stream &stream) |
sets some of the GpuMat elements to s, according to the mask (Non-Blocking call) | |
void | convertTo (OutputArray dst, int rtype) const |
converts GpuMat to another datatype (Blocking call) | |
void | convertTo (OutputArray dst, int rtype, Stream &stream) const |
converts GpuMat to another datatype (Non-Blocking call) | |
void | convertTo (OutputArray dst, int rtype, double alpha, double beta=0.0) const |
converts GpuMat to another datatype with scaling (Blocking call) | |
void | convertTo (OutputArray dst, int rtype, double alpha, Stream &stream) const |
converts GpuMat to another datatype with scaling (Non-Blocking call) | |
void | convertTo (OutputArray dst, int rtype, double alpha, double beta, Stream &stream) const |
converts GpuMat to another datatype with scaling (Non-Blocking call) | |
uchar * | ptr (int y=0) |
returns pointer to y-th row | |
template<typename _Tp > | |
_Tp * | ptr (int y=0) |
template version of the above method | |
GpuMat | row (int y) const |
returns a new GpuMat header for the specified row | |
GpuMat | col (int x) const |
returns a new GpuMat header for the specified column | |
GpuMat | rowRange (int startrow, int endrow) const |
... for the specified row span | |
GpuMat | colRange (int startcol, int endcol) const |
... for the specified column span | |
GpuMat | operator() (Range rowRange, Range colRange) const |
extracts a rectangular sub-GpuMat (this is a generalized form of row, rowRange etc.) | |
GpuMat | reshape (int cn, int rows=0) const |
creates alternative GpuMat header for the same data, with different number of channels and/or different number of rows | |
void | locateROI (Size &wholeSize, Point &ofs) const |
locates GpuMat header within a parent GpuMat | |
GpuMat & | adjustROI (int dtop, int dbottom, int dleft, int dright) |
moves/resizes the current GpuMat ROI inside the parent GpuMat | |
bool | isContinuous () const |
returns true iff the GpuMat data is continuous (i.e. | |
size_t | elemSize () const |
returns element size in bytes | |
size_t | elemSize1 () const |
returns the size of element channel in bytes | |
int | type () const |
returns element type | |
int | depth () const |
returns element type | |
int | channels () const |
returns number of channels | |
size_t | step1 () const |
returns step/elemSize1() | |
Size | size () const |
returns GpuMat size : width == number of columns, height == number of rows | |
bool | empty () const |
returns true if GpuMat data is NULL | |
Static Public Member Functions | |
static Allocator * | defaultAllocator () |
default allocator | |
Data Fields | |
int | flags |
int | rows |
the number of rows and columns | |
size_t | step |
a distance between successive rows in bytes; includes the gap if any | |
uchar * | data |
pointer to the data | |
int * | refcount |
pointer to the reference counter; when GpuMat points to user-allocated data, the pointer is NULL | |
uchar * | datastart |
helper fields used in locateROI and adjustROI | |
Allocator * | allocator |
allocator |
Detailed Description
Base storage class for GPU memory with reference counting.
Its interface matches the Mat interface with the following limitations:
- no arbitrary dimensions support (only 2D)
- no functions that return references to their data (because references on GPU are not valid for CPU)
- no expression templates technique support
Beware that the latter limitation may lead to overloaded matrix operators that cause memory allocations. The GpuMat class is convertible to cuda::PtrStepSz and cuda::PtrStep so it can be passed directly to the kernel.
- Note:
- In contrast with Mat, in most cases GpuMat::isContinuous() == false . This means that rows are aligned to a size depending on the hardware. Single-row GpuMat is always a continuous matrix.
- You are not recommended to leave static or global GpuMat variables allocated, that is, to rely on its destructor. The destruction order of such variables and CUDA context is undefined. GPU memory release function returns error if the CUDA context has been destroyed before.
- See also:
- Mat
Definition at line 96 of file cuda.hpp.
Constructor & Destructor Documentation
GpuMat | ( | Allocator * | allocator = defaultAllocator() ) |
[explicit] |
default constructor
GpuMat | ( | int | rows, |
int | cols, | ||
int | type, | ||
Allocator * | allocator = defaultAllocator() |
||
) |
constructs GpuMat of the specified size and type
constucts GpuMat and fills it with the specified value _s
GpuMat | ( | int | rows, |
int | cols, | ||
int | type, | ||
void * | data, | ||
size_t | step = Mat::AUTO_STEP |
||
) |
constructor for GpuMat headers pointing to user-allocated data
Definition at line 49 of file cuda_gpu_mat.cpp.
creates a GpuMat header for a part of the bigger matrix
Definition at line 101 of file cuda_gpu_mat.cpp.
GpuMat | ( | InputArray | arr, |
Allocator * | allocator = defaultAllocator() |
||
) | [explicit] |
builds GpuMat from host memory (Blocking call)
Member Function Documentation
GpuMat & adjustROI | ( | int | dtop, |
int | dbottom, | ||
int | dleft, | ||
int | dright | ||
) |
moves/resizes the current GpuMat ROI inside the parent GpuMat
Definition at line 230 of file cuda_gpu_mat.cpp.
int channels | ( | ) | const |
returns number of channels
GpuMat colRange | ( | int | startcol, |
int | endcol | ||
) | const |
... for the specified column span
void convertTo | ( | OutputArray | dst, |
int | rtype | ||
) | const |
converts GpuMat to another datatype (Blocking call)
void convertTo | ( | OutputArray | dst, |
int | rtype, | ||
Stream & | stream | ||
) | const |
converts GpuMat to another datatype (Non-Blocking call)
Definition at line 503 of file cuda_gpu_mat.cpp.
void convertTo | ( | OutputArray | dst, |
int | rtype, | ||
double | alpha, | ||
double | beta = 0.0 |
||
) | const |
converts GpuMat to another datatype with scaling (Blocking call)
void convertTo | ( | OutputArray | dst, |
int | rtype, | ||
double | alpha, | ||
Stream & | stream | ||
) | const |
converts GpuMat to another datatype with scaling (Non-Blocking call)
void convertTo | ( | OutputArray | dst, |
int | rtype, | ||
double | alpha, | ||
double | beta, | ||
Stream & | stream | ||
) | const |
converts GpuMat to another datatype with scaling (Non-Blocking call)
Definition at line 511 of file cuda_gpu_mat.cpp.
void copyTo | ( | OutputArray | dst, |
InputArray | mask, | ||
Stream & | stream | ||
) | const |
copies those GpuMat elements to "m" that are marked with non-zero mask elements (Non-Blocking call)
Definition at line 478 of file cuda_gpu_mat.cpp.
void copyTo | ( | OutputArray | dst ) | const |
copies the GpuMat content to device memory (Blocking call)
Definition at line 465 of file cuda_gpu_mat.cpp.
void copyTo | ( | OutputArray | dst, |
Stream & | stream | ||
) | const |
copies the GpuMat content to device memory (Non-Blocking call)
Definition at line 471 of file cuda_gpu_mat.cpp.
void copyTo | ( | OutputArray | dst, |
InputArray | mask | ||
) | const |
copies those GpuMat elements to "m" that are marked with non-zero mask elements (Blocking call)
void create | ( | int | rows, |
int | cols, | ||
int | type | ||
) |
allocates new GpuMat data unless the GpuMat already has specified size and type
Definition at line 427 of file cuda_gpu_mat.cpp.
GpuMat::Allocator * defaultAllocator | ( | ) | [static] |
default allocator
Definition at line 416 of file cuda_gpu_mat.cpp.
int depth | ( | ) | const |
returns element type
void download | ( | OutputArray | dst ) | const |
pefroms download data from device to host memory (Blocking call)
Definition at line 452 of file cuda_gpu_mat.cpp.
void download | ( | OutputArray | dst, |
Stream & | stream | ||
) | const |
pefroms download data from device to host memory (Non-Blocking call)
Definition at line 458 of file cuda_gpu_mat.cpp.
size_t elemSize | ( | ) | const |
returns element size in bytes
size_t elemSize1 | ( | ) | const |
returns the size of element channel in bytes
bool empty | ( | ) | const |
returns true if GpuMat data is NULL
bool isContinuous | ( | ) | const |
returns true iff the GpuMat data is continuous (i.e.
when there are no gaps between successive rows)
locates GpuMat header within a parent GpuMat
Definition at line 204 of file cuda_gpu_mat.cpp.
extracts a rectangular sub-GpuMat (this is a generalized form of row, rowRange etc.)
_Tp* ptr | ( | int | y = 0 ) |
template version of the above method
uchar* ptr | ( | int | y = 0 ) |
returns pointer to y-th row
void release | ( | void | ) |
decreases reference counter, deallocate the data when reference counter reaches 0
Definition at line 435 of file cuda_gpu_mat.cpp.
GpuMat reshape | ( | int | cn, |
int | rows = 0 |
||
) | const |
creates alternative GpuMat header for the same data, with different number of channels and/or different number of rows
Definition at line 161 of file cuda_gpu_mat.cpp.
GpuMat rowRange | ( | int | startrow, |
int | endrow | ||
) | const |
... for the specified row span
GpuMat & setTo | ( | Scalar | s, |
InputArray | mask, | ||
Stream & | stream | ||
) |
sets some of the GpuMat elements to s, according to the mask (Non-Blocking call)
Definition at line 494 of file cuda_gpu_mat.cpp.
GpuMat& setTo | ( | Scalar | s, |
InputArray | mask | ||
) |
sets some of the GpuMat elements to s, according to the mask (Blocking call)
sets some of the GpuMat elements to s (Non-Blocking call)
Definition at line 486 of file cuda_gpu_mat.cpp.
size_t step1 | ( | ) | const |
returns step/elemSize1()
void swap | ( | GpuMat & | mat ) |
swaps with other smart pointer
int type | ( | ) | const |
returns element type
void upload | ( | InputArray | arr ) |
pefroms upload data to GpuMat (Blocking call)
Definition at line 439 of file cuda_gpu_mat.cpp.
void upload | ( | InputArray | arr, |
Stream & | stream | ||
) |
pefroms upload data to GpuMat (Non-Blocking call)
Definition at line 445 of file cuda_gpu_mat.cpp.
Field Documentation
uchar* datastart |
int flags |
int* refcount |
Generated on Tue Jul 12 2022 14:48:02 by
