FAST  3.2.0
Framework for Heterogeneous Medical Image Computing and Visualization
ImagePyramidAccess.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <FAST/Object.hpp>
5 
6 typedef struct _openslide openslide_t;
7 
8 namespace fast {
9 
10 class Image;
11 class ImagePyramid;
12 
13 class FAST_EXPORT ImagePyramidPatch {
14 public:
15  std::unique_ptr<uchar[]> data;
16  int width;
17  int height;
18  int offsetX;
19  int offsetY;
20 };
21 
22 class FAST_EXPORT ImagePyramidLevel {
23 public:
24  int width;
25  int height;
26  int tileWidth = 256;
27  int tileHeight = 256;
28  int tilesX;
29  int tilesY;
31  uint8_t* data;
32 #ifdef WIN32
33  void* fileHandle;
34 #else
36 #endif
37 };
38 
39 class FAST_EXPORT ImagePyramidAccess : Object {
40 public:
41  typedef std::unique_ptr<ImagePyramidAccess> pointer;
42  ImagePyramidAccess(std::vector<ImagePyramidLevel> levels, openslide_t* fileHandle, std::shared_ptr<ImagePyramid> imagePyramid, bool writeAccess);
43  void setScalar(uint x, uint y, uint level, uint8_t value, uint channel = 0);
44  void setScalarFast(uint x, uint y, uint level, uint8_t value, uint channel = 0) noexcept;
45  uint8_t getScalar(uint x, uint y, uint level, uint channel = 0);
46  uint8_t getScalarFast(uint x, uint y, uint level, uint channel = 0) noexcept;
47  std::unique_ptr<uchar[]> getPatchData(int level, int x, int y, int width, int height);
48  ImagePyramidPatch getPatch(std::string tile);
49  ImagePyramidPatch getPatch(int level, int patchX, int patchY);
50  std::shared_ptr<Image> getLevelAsImage(int level);
51  std::shared_ptr<Image> getPatchAsImage(int level, int offsetX, int offsetY, int width, int height);
52  std::shared_ptr<Image> getPatchAsImage(int level, int patchIdX, int patchIdY);
53  void release();
55 private:
56  std::shared_ptr<ImagePyramid> m_image;
57  std::vector<ImagePyramidLevel> m_levels;
58  bool m_write;
59  openslide_t* m_fileHandle;
60 };
61 
62 }
Object.hpp
fast::ImagePyramidLevel::tilesX
int tilesX
Definition: ImagePyramidAccess.hpp:28
fast::ImagePyramidLevel::width
int width
Definition: ImagePyramidAccess.hpp:24
fast
Definition: AffineTransformation.hpp:7
fast::ImagePyramidPatch::data
std::unique_ptr< uchar[]> data
Definition: ImagePyramidAccess.hpp:15
fast::ImagePyramidLevel::height
int height
Definition: ImagePyramidAccess.hpp:25
fast::ImagePyramidAccess::pointer
std::unique_ptr< ImagePyramidAccess > pointer
Definition: ImagePyramidAccess.hpp:41
fast::Image
Definition: Image.hpp:32
fast::ImagePyramidLevel::fileHandle
int fileHandle
Definition: ImagePyramidAccess.hpp:35
fast::Object
Definition: Object.hpp:34
fast::ImagePyramid
Definition: ImagePyramid.hpp:19
fast::ImagePyramidLevel::tilesY
int tilesY
Definition: ImagePyramidAccess.hpp:29
fast::ImagePyramidPatch::offsetX
int offsetX
Definition: ImagePyramidAccess.hpp:18
fast::ImagePyramidLevel::data
uint8_t * data
Definition: ImagePyramidAccess.hpp:31
fast::ImagePyramidLevel::memoryMapped
bool memoryMapped
Definition: ImagePyramidAccess.hpp:30
fast::ImagePyramidPatch
Definition: ImagePyramidAccess.hpp:13
fast::ImagePyramidLevel
Definition: ImagePyramidAccess.hpp:22
DataTypes.hpp
fast::ImagePyramidPatch::height
int height
Definition: ImagePyramidAccess.hpp:17
fast::ImagePyramidAccess
Definition: ImagePyramidAccess.hpp:39
uint
unsigned int uint
Definition: DataTypes.hpp:16
fast::ImagePyramidPatch::width
int width
Definition: ImagePyramidAccess.hpp:16
uchar
unsigned char uchar
Definition: DataTypes.hpp:14
fast::ImagePyramidPatch::offsetY
int offsetY
Definition: ImagePyramidAccess.hpp:19
openslide_t
struct _openslide openslide_t
Definition: ImagePyramidAccess.hpp:6