Pleora Technologies Inc. eBUS SDK v6.2.8.5877 API



PvImage.h
1 // *****************************************************************************
2 //
3 // Copyright (c) 2010, Pleora Technologies Inc., All rights reserved.
4 //
5 // *****************************************************************************
6 
7 #ifndef __PVIMAGE_H__
8 #define __PVIMAGE_H__
9 
10 #include <PvPixelType.h>
11 
12 
13 class PvBuffer;
15 
16 
17 class PV_BUFFER_API IPvImage
18 {
19 public:
20 
21  virtual ~IPvImage() {}
22 
23 #ifdef EBUS_PYTHON_DOXYGEN
24  virtual ndarray GetDataPointer() = 0;
25 #else
26  virtual const uint8_t *GetDataPointer() const = 0;
27  virtual uint8_t *GetDataPointer() = 0;
28 #endif
29  virtual uint32_t GetImageSize() const = 0;
30 
31  virtual uint32_t GetWidth() const = 0;
32  virtual uint32_t GetHeight() const = 0;
33  virtual PvPixelType GetPixelType() const = 0;
34  virtual uint32_t GetBitsPerPixel() const = 0;
35 
36  virtual uint32_t GetOffsetX() const = 0;
37  virtual uint32_t GetOffsetY() const = 0;
38  virtual uint16_t GetPaddingX() const = 0;
39  virtual uint16_t GetPaddingY() const = 0;
40 
41  virtual uint64_t GetBlockID() const = 0;
42  virtual uint64_t GetTimestamp() const = 0;
43  virtual uint64_t GetReceptionTime() const = 0;
44 
45 };
46 
47 
48 class PV_BUFFER_API PvImage
49  : public IPvImage
50 {
51 public:
52 
53  virtual uint32_t GetMaximumChunkLength() const = 0;
54 
55  static uint32_t GetPixelSize( PvPixelType aPixelType );
56  static bool IsPixelColor( PvPixelType aPixelType );
57  static bool IsPixelHighRes( PvPixelType aPixelType );
58  static uint32_t GetBitsPerComponent( PvPixelType aPixelType );
59  static PvString PixelTypeToString( PvPixelType aPixelType );
60 
61  virtual uint32_t GetRequiredSize() const = 0;
62  virtual uint32_t GetEffectiveImageSize() const = 0;
63 
64  virtual void SetOffsetX( uint32_t aValue ) = 0;
65  virtual void SetOffsetY( uint32_t aValue ) = 0;
66 
67  virtual bool IsAllocated() const = 0;
68  virtual bool IsAttached() const = 0;
69  virtual PvResult Alloc( uint32_t aSizeX, uint32_t aSizeY, PvPixelType aPixelType, uint16_t aPaddingX = 0, uint16_t aPaddingY = 0, uint32_t aMaximumChunkLength = 0 ) = 0;
70  virtual void Free() = 0;
71 #ifdef EBUS_PYTHON_DOXYGEN
72  virtual PvResult Attach( ndarray aRawBuffer, PvPixelType aPixelType, int aPaddingX, int aPaddingY, int aMaximumChunkLength ) = 0;
73  virtual ndarray Detach() = 0;
74 #else
75  virtual PvResult Attach( void * aRawBuffer, uint32_t aSizeX, uint32_t aSizeY, PvPixelType aPixelType, uint16_t aPaddingX = 0, uint16_t aPaddingY = 0, uint32_t aMaximumChunkLength = 0 ) = 0;
76  virtual uint8_t *Detach() = 0;
77 #endif
78 
79  virtual bool IsPartialLineMissing() const = 0;
80  virtual bool IsFullLineMissing() const = 0;
81  virtual void SetEOFByLineCount( bool aValue = true ) = 0;
82  virtual bool IsEOFByLineCount() const = 0;
83  virtual bool IsInterlacedEven() const = 0;
84  virtual bool IsInterlacedOdd() const = 0;
85  virtual bool IsImageDropped() const = 0;
86  virtual bool IsDataOverrun() const = 0;
87 
88  virtual PvBuffer *GetBuffer() = 0;
89 
90 private:
91 
92  friend class PvTruesenseConverter;
93 
94 };
95 
96 
97 #endif
String class.
Definition: PvString.h:21
Result information.
Definition: PvResult.h:13
PvPixelType
Definition: PvPixelType.h:53
Generic image interface.
Definition: PvImage.h:17
Converts images from TRUESENSE(TM) to RGB.
Definition: PvTruesenseConverter.h:21
Represents a block of GigE Vision or USB3 Vision data in memory.
Definition: PvBuffer.h:47
Image interface to a PvBuffer.
Definition: PvImage.h:48

Copyright (c) 2002-2021 Pleora Technologies Inc.
www.pleora.com