22 #ifndef _svlSampleCUDAImageCustom_h
23 #define _svlSampleCUDAImageCustom_h
34 extern "C" bool cisst_cudaMemset(
void* devPtr,
unsigned char value,
unsigned int size);
41 template <
class _ValueType,
unsigned int _DataChannels,
unsigned int _V
ideoChannels>
57 for (
unsigned int vch = 0; vch < _VideoChannels; vch ++) {
67 for (
unsigned int vch = 0; vch < _VideoChannels; vch ++) {
82 for (
unsigned int vch = 0; vch < _VideoChannels; vch ++) {
109 if (IsTypeUInt8<_ValueType>(static_cast<_ValueType>(0))) {
110 if (_DataChannels == 1) {
114 if (_DataChannels == 3) {
118 if (_DataChannels == 4) {
123 if (IsTypeUInt16<_ValueType>(static_cast<_ValueType>(0))) {
124 if (_DataChannels == 1) {
129 if (IsTypeUInt32<_ValueType>(static_cast<_ValueType>(0))) {
130 if (_DataChannels == 1) {
135 if (IsTypeFloat<_ValueType>(static_cast<_ValueType>(0))) {
146 for (
unsigned int vch = 0; vch < _VideoChannels && vch < samplevideochannels; vch ++) {
166 for (
unsigned int vch = 0; vch < _VideoChannels && vch < samplevideochannels; vch ++) {
190 for (
unsigned int vch = 0; vch < _VideoChannels; vch ++) {
197 if (!regular_image ||
204 for (
unsigned int vch = 0; vch < _VideoChannels; vch ++) {
220 for (
unsigned int vch = 0; vch < _VideoChannels; vch ++) {
221 if (Width[vch] < 1 || Height[vch] < 1)
return false;
235 void SetSize(
const unsigned int width,
const unsigned int height)
237 for (
unsigned int vch = 0; vch < _VideoChannels; vch ++) {
242 void SetSize(
const unsigned int videochannel,
const unsigned int width,
const unsigned int height)
244 if (videochannel < _VideoChannels) {
245 if (Width[videochannel] == width && Height[videochannel] == height)
return;
247 if (ImageBuffer[videochannel]) {
249 ImageBuffer[videochannel] = 0;
250 Width[videochannel] = 0;
251 Height[videochannel] = 0;
254 if (width > 0 && height > 0) {
256 if (ImageBuffer[videochannel]) {
257 Width[videochannel] = width;
258 Height[videochannel] = height;
264 #if CISST_SVL_HAS_OPENCV
265 int SetSize(
const IplImage* ipl_image,
const unsigned int videochannel = 0)
266 #else // CISST_SVL_HAS_OPENCV
268 #endif // CISST_SVL_HAS_OPENCV
270 #if CISST_SVL_HAS_OPENCV
271 if (ipl_image && videochannel >= _VideoChannels) {
272 SetSize(videochannel, ipl_image->width, ipl_image->height);
275 #endif // CISST_SVL_HAS_OPENCV
281 return _VideoChannels;
286 return _DataChannels;
291 return (
sizeof(_ValueType) * _DataChannels);
294 unsigned int GetWidth(
const unsigned int videochannel = 0)
const
296 if (videochannel < _VideoChannels)
return Width[videochannel];
300 unsigned int GetHeight(
const unsigned int videochannel = 0)
const
302 if (videochannel < _VideoChannels)
return Height[videochannel];
308 if (videochannel < _VideoChannels)
return Width[videochannel] *
GetBPP();
314 if (videochannel < _VideoChannels) {
334 for (
unsigned int vch = 0; vch < _VideoChannels; vch ++) {
341 if (!regular_image ||
348 for (
unsigned int vch = 0; vch < _VideoChannels; vch ++) {
364 if (videochannel < _VideoChannels)
return ImageBuffer[videochannel];
370 if (videochannel < _VideoChannels)
return ImageBuffer[videochannel];
376 void* ImageBuffer[_VideoChannels];
377 unsigned int Width[_VideoChannels];
378 unsigned int Height[_VideoChannels];
381 #endif // _svlSampleCUDAImageCustom_h
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
virtual unsigned int GetBPP() const =0
virtual void * GetCUDAPointer(const unsigned int videochannel=0)=0
int CopyOf(const svlSample &sample)
Definition: svlSampleCUDAImageCustom.h:213
Definition: svlSampleMatrix.h:34
int CopyTo(svlSample *sample) const
Definition: svlSampleCUDAImageCustom.h:325
Definition: svlDefinitions.h:210
Definition: svlDefinitions.h:215
virtual unsigned int GetHeight(const unsigned int videochannel=0) const =0
svlStreamType
Definition: svlDefinitions.h:193
Definition: svlDefinitions.h:214
svlSampleCUDAImageCustom(const ThisType &other)
Definition: svlSampleCUDAImageCustom.h:64
#define CMN_UNUSED(argument)
Definition: cmnPortability.h:479
virtual unsigned int GetDataSize() const =0
bool cisst_cudaMemcpyDeviceToHost(void *hostDestPtr, const void *devSrcPtr, unsigned int size)
Definition: svlSampleCUDAImageCustom.h:42
virtual svlPixelType GetPixelType() const
svlSample * GetNewInstance() const
Definition: svlSampleCUDAImageCustom.h:102
Definition: svlDefinitions.h:219
unsigned int GetDataChannels() const
Definition: svlSampleCUDAImageCustom.h:284
const void * GetCUDAPointer(const unsigned int videochannel=0) const
Definition: svlSampleCUDAImageCustom.h:368
virtual unsigned int GetWidth(const unsigned int videochannel=0) const =0
int SetSize(const svlSample *sample)
Definition: svlSampleCUDAImageCustom.h:141
Definition: svlDefinitions.h:213
bool cisst_cudaMemcpyHostToDevice(void *devDestPtr, const void *hostSrcPtr, unsigned int size)
unsigned int GetHeight(const unsigned int videochannel=0) const
Definition: svlSampleCUDAImageCustom.h:300
virtual unsigned char * GetUCharPointer()=0
unsigned int GetWidth(const unsigned int videochannel=0) const
Definition: svlSampleCUDAImageCustom.h:294
svlSample & operator=(const svlSample &other)
virtual unsigned int GetHeight(const unsigned int videochannel=0) const =0
svlSampleCUDAImageCustom()
Definition: svlSampleCUDAImageCustom.h:54
void IplImage
Definition: svlTypes.h:70
Definition: svlDefinitions.h:195
virtual unsigned int GetVideoChannels() const =0
bool cisst_cudaMemcpyDeviceToDevice(void *devDestPtr, const void *devSrcPtr, unsigned int size)
int SetSize(const IplImage *CMN_UNUSED(ipl_image), const unsigned int CMN_UNUSED(videochannel)=0)
Definition: svlSampleCUDAImageCustom.h:267
void SetSize(const unsigned int width, const unsigned int height)
Definition: svlSampleCUDAImageCustom.h:235
void * GetCUDAPointer(const unsigned int videochannel=0)
Definition: svlSampleCUDAImageCustom.h:362
unsigned int GetRowStride(const unsigned int videochannel=0) const
Definition: svlSampleCUDAImageCustom.h:306
virtual unsigned int GetRows() const =0
virtual unsigned int GetVideoChannels() const =0
Definition: svlDefinitions.h:216
virtual int CopyTo(svlSample *sample) const =0
void SetSize(const unsigned int videochannel, const unsigned int width, const unsigned int height)
Definition: svlSampleCUDAImageCustom.h:242
svlStreamType GetType() const
Definition: svlSampleCUDAImageCustom.h:107
Definition: svlSampleImage.h:35
int CopyOf(const svlSample *sample)
Definition: svlSampleCUDAImageCustom.h:181
Macros to export the symbols of cisstStereoVision (in a Dll).
#define CMN_DECLARE_SERVICES(hasDynamicCreation, lod)
Definition: cmnClassRegisterMacros.h:116
Definition: svlDefinitions.h:218
virtual int SetSize(const svlSample *sample)=0
int CopyTo(svlSample &sample) const
Definition: svlSampleCUDAImageCustom.h:357
void * cisst_cudaMalloc(unsigned int size)
unsigned int GetBPP() const
Definition: svlSampleCUDAImageCustom.h:289
Definition: svlDefinitions.h:217
bool cisst_cudaMemset(void *devPtr, unsigned char value, unsigned int size)
#define SVL_FAIL
Definition: svlDefinitions.h:124
unsigned int GetDataSize() const
Definition: svlSampleCUDAImageCustom.h:226
bool cisst_cudaFree(void *devPtr)
unsigned int GetDataSize(const unsigned int videochannel) const
Definition: svlSampleCUDAImageCustom.h:312
unsigned int GetVideoChannels() const
Definition: svlSampleCUDAImageCustom.h:279
void SetTimestamp(double ts)
const int CMN_DYNAMIC_CREATION
Definition: cmnClassRegisterMacros.h:331
~svlSampleCUDAImageCustom()
Definition: svlSampleCUDAImageCustom.h:80
bool IsInitialized() const
Definition: svlSampleCUDAImageCustom.h:218
virtual int CopyOf(const svlSample *sample)=0
virtual int SetSize(const svlSample *sample)=0
Definition: svlDefinitions.h:211
#define CMN_LOG_ALLOW_DEFAULT
Definition: cmnLogLoD.h:76
Definition: svlDefinitions.h:209
#define SVL_OK
Definition: svlDefinitions.h:123
int SetSize(const svlSample &sample)
Definition: svlSampleCUDAImageCustom.h:161
Definition: svlSampleCUDAImage.h:31
virtual unsigned int GetWidth(const unsigned int videochannel=0) const =0
Definition: svlSample.h:31
Definition: svlDefinitions.h:212
double GetTimestamp() const
virtual unsigned int GetCols() const =0