6#include "slideio/drivers/ome-tiff/ot_api_def.hpp"
7#include "slideio/core/cvscene.hpp"
8#include "slideio/drivers/ome-tiff/otscene.hpp"
9#include "slideio/imagetools/tifftools.hpp"
10#include "slideio/core/tools/tilecomposer.hpp"
11#include "slideio/drivers/ome-tiff/otstructs.hpp"
12#include "slideio/drivers/ome-tiff/tiffdata.hpp"
13#include "slideio/imagetools/tifffiles.hpp"
14#include "slideio/drivers/ome-tiff/otdimensions.hpp"
18#pragma warning( push )
19#pragma warning(disable: 4251)
28 class SLIDEIO_OMETIFF_EXPORTS OTScene :
public CVScene,
public Tiler
31 explicit OTScene(
const ImageData& filePath,
int sceneIndex,
const std::string& driverId);
32 int getNumChannels()
const override;
33 cv::Rect getRect()
const override;
34 int findZoomLevel(
double zoom)
const;
36 int getTileCount(
void* userData)
override;
37 bool getTileRect(
int tileIndex, cv::Rect& tileRect,
void* userData)
override;
38 bool readTile(
int tileIndex,
const std::vector<int>& channelIndices, cv::OutputArray tileRaster,
39 void* userData)
override;
40 void initializeBlock(
const cv::Size& blockSize,
const std::vector<int>& channelIndices, cv::OutputArray output)
override;
41 std::string getChannelName(
int channel)
const override;
42 void readResampledBlockChannelsEx(
const cv::Rect& blockRect,
const cv::Size& blockSize,
43 const std::vector<int>& componentIndices,
int zSliceIndex,
int tFrameIndex,
44 cv::OutputArray output)
override;
45 std::string getFilePath()
const override;
46 int getSceneIndex()
const override {
return m_sceneIndex; }
47 const std::string& getDriverId()
const override {
50 std::string getName()
const override;
51 DataType getChannelDataType(
int channel)
const override;
52 Resolution getResolution()
const override;
53 double getMagnification()
const override;
55 int getNumZSlices()
const override;
56 int getNumTFrames()
const override;
57 int getNumTiffFiles()
const {
return m_files.getNumberOfOpenFiles(); }
58 int getNumTiffDataItems()
const {
return static_cast<int>(m_tiffData.size()); }
59 const TiffData& getTiffData(
int index)
const {
return m_tiffData[index]; }
60 double getZSliceResolution()
const override {
return m_zResolution; }
61 double getTFrameResolution()
const override {
return m_tResolution; }
63 void extractImagePyramids();
65 void initializeChannelAttributes(tinyxml2::XMLElement* pixels);
66 void extractMagnificationFromMetadata();
67 void extractTiffData(tinyxml2::XMLElement* pixels);
68 void extractImageIndex();
69 LevelInfo extractLevelInfo(
const TiffDirectory& dir,
int index)
const;
70 void collectTiffDataIndices(std::vector<int> channelIndices,
int zSliceIndex,
int tFrameIndex,
71 std::vector<int>& tiffDataIndices)
const;
73 int m_numChannels = 0;
74 std::vector<std::string> m_channelNames;
75 tinyxml2::XMLElement* m_imageXml;
76 std::shared_ptr<tinyxml2::XMLDocument> m_imageDoc;
77 std::string m_imageId;
78 std::vector<TiffData> m_tiffData;
79 std::string m_dimensionOrder;
80 DataType m_dataType = DataType::DT_Unknown;
84 bool m_bigEndian =
false;
85 std::string m_imageName;
86 std::string m_filePath;
88 Resolution m_resolution = {};
89 double m_magnification = 0;
90 int m_imageIndex = -1;
92 double m_zResolution = 0.0;
93 double m_tResolution = 0.0;
94 int m_sceneIndex = -1;
95 std::string m_driverId;
101#pragma warning( pop )
Definition: exceptions.hpp:15
Compression
raster data compression enum
Definition: slideio_enums.hpp:12