SlideIO 2.0.0
Open-source library for reading of medical images
Loading...
Searching...
No Matches
etsfile.hpp
1// This file is part of slideio project.
2// It is subject to the license terms in the LICENSE file found in the top-level directory
3// of this distribution and at http://slideio.com/license.html.
4#pragma once
5
6#include <string>
7#include <vector>
8
9#include "slideio/drivers/vsi/vsi_api_def.hpp"
10#include "slideio/drivers/vsi/etsfilescene.hpp"
11#include "slideio/drivers/vsi/volume.hpp"
12#include "slideio/drivers/vsi/vsistruct.hpp"
13#include "slideio/base/slideio_enums.hpp"
14#include "slideio/drivers/vsi/vsistream.hpp"
15#include "slideio/drivers/vsi/pyramid.hpp"
16
17#if defined(_MSC_VER)
18#pragma warning(push)
19#pragma warning(disable : 4251)
20#endif
21
22namespace slideio
23{
24 namespace vsi
25 {
26
27 class SLIDEIO_VSI_EXPORTS EtsFile
28 {
29 public:
30 EtsFile(const std::string& filePath);
31
32 std::string getFilePath() const {
33 return m_filePath;
34 }
35
36 DataType getDataType() const {
37 return m_dataType;
38 }
39
40 int getNumChannels() const {
41 return m_numChannels;
42 }
43
44 slideio::Compression getCompression() const {
45 return m_compression;
46 }
47
48 void read(std::list<std::shared_ptr<Volume>>& volumes, TileInfoListPtr& tiles);
49 void readTilePart(const vsi::TileInfo& tileInfo, cv::OutputArray tileRaster);
50 bool assignVolume(std::list<std::shared_ptr<vsi::Volume>>& volumes);
51 void initStruct(TileInfoListPtr& tiles);
52
53 void setVolume(const std::shared_ptr<Volume>& volume) {
54 m_volume = volume;
55 }
56
57 std::shared_ptr<Volume> getVolume() const {
58 return m_volume;
59 }
60
61 const cv::Size& getSize() const {
62 return m_size;
63 }
64
65 const cv::Size& getTileSize() const {
66 return m_tileSize;
67 }
68
69 int getNumZSlices() const {
70 return m_numZSlices;
71 }
72
73 int getNumTFrames() const {
74 return m_numTFrames;
75 }
76
77 int getNumLambdas() const {
78 return m_numLambdas;
79 }
80
81 int getNumPyramidLevels() const {
82 return m_pyramid.getNumLevels();
83 }
84
85 const PyramidLevel& getPyramidLevel(int index) const {
86 return m_pyramid.getLevel(index);
87 }
88 const cv::Size& getSizeWithCompleteTiles() const {
89 return m_sizeWithCompleteTiles;
90 }
91 void readTile(int levelIndex, int tileIndex, const std::vector<int>& channelIndices, int zSlice, int tFrame, cv::OutputArray output);
92 private:
93 std::string m_filePath;
94 DataType m_dataType = DataType::DT_Unknown;
95 int m_numChannels = 1;
96 ColorSpace m_colorSpace = ColorSpace::Unknown;
98 int m_compressionQuality = 0;
99 cv::Size m_size;
100 cv::Size m_sizeWithCompleteTiles;
101 cv::Size m_tileSize;
102 int m_numZSlices = 1;
103 int m_numTFrames = 1;
104 int m_numLambdas = 1;
105 uint32_t m_pixelInfoHints[17] = {0};
106 uint32_t m_backgroundColor[10] = {0};
107 bool m_usePyramid = false;
108 int m_numDimensions;
109 std::shared_ptr<Volume> m_volume;
110 Pyramid m_pyramid;
111 std::unique_ptr<VSIStream> m_etsStream;
112 std::vector<uint8_t> m_buffer;
113 std::vector<int> m_maxCoordinates;
114 };
115 }
116}
Definition: exceptions.hpp:15
Compression
raster data compression enum
Definition: slideio_enums.hpp:12
@ Unknown
Unknown compression.