SlideIO 2.0.0
Open-source library for reading of medical images
Loading...
Searching...
No Matches
tiffdata.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#include "slideio/drivers/ome-tiff/ot_api_def.hpp"
6#include "slideio/imagetools/tiffkeeper.hpp"
7#include "slideio/drivers/ome-tiff/otdimensions.hpp"
8
9
10namespace slideio
11{
12 class TIFFFiles;
13}
14
15namespace tinyxml2
16{
17 class XMLElement;
18}
19
20namespace slideio
21{
22 namespace ometiff
23 {
24 class SLIDEIO_OMETIFF_EXPORTS TiffData
25 {
26 public:
27 TiffData() = default;
28 void init(const std::string& filePath, TIFFFiles* files, const std::string& dimOrder, int numChannels, int numZSlices, int numTFrames, tinyxml2::XMLElement* xmlTiffData);
29 bool isInRange(int channel, int slice, int frame) const;
30 int getFirstIFD() const {
31 return m_firstIFD;
32 }
33 int getPlaneCount() const {
34 return m_planeCount;
35 }
36 const std::string& getFilePath() const {
37 return m_filePath;
38 }
39 const TiffDirectory& getTiffDirectory(int plane) const;
40 int getTiffDirectoryCount() const {
41 return static_cast<int>(m_directories.size());
42 }
43 void readTile(const std::vector<int>& channelIndices, int zSlice, int tFrame, int zoomLevel, int tileIndex,
44 std::vector<cv::Mat>& rasters) const;
45 void readTileChannels(const TiffDirectory& dir, int tileIndex, const std::vector<int>& channelIndices, cv::OutputArray raster) const;
46 const OTDimensions::Coordinates& getCoordinatesFirst() const {
47 return m_coordinatesFirst;
48 }
49 const OTDimensions::Coordinates& getCoordinatesLast() const {
50 return m_coordinatesLast;
51 }
52 private:
53 int m_firstIFD = 0;
54 int m_planeCount = 0;
55 std::string m_filePath;
56 libtiff::TIFF* m_tiff;
57 std::vector<TiffDirectory> m_directories;
58 OTDimensions m_dimensions;
59 OTDimensions::Coordinates m_coordinatesFirst;
60 OTDimensions::Coordinates m_coordinatesLast;
61 };
62 }
63}
Definition: exceptions.hpp:15