SlideIO 2.0.0
Open-source library for reading of medical images
Loading...
Searching...
No Matches
cvtools.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.org/license.html.
4#pragma once
5
6#include <opencv2/core.hpp>
7#include "slideio/core/slideio_core_def.hpp"
8#include "slideio/core/cvslide.hpp"
9#include "slideio/base/slideio_enums.hpp"
10#include <string>
11#include <vector>
12
13namespace slideio
14{
15 class SLIDEIO_CORE_EXPORTS CVTools
16 {
17 public:
18 static std::shared_ptr<CVSlide> cvOpenSlide(const std::string& path, const std::string& driver);
19 static std::vector<std::string> cvGetDriverIDs();
20
21 static inline DataType fromOpencvType(int type)
22 {
23 return static_cast<DataType>(type);
24 }
25 static inline int toOpencvType(DataType dt)
26 {
27 return static_cast<int>(dt);
28 }
29
30 static inline bool isValidDataType(slideio::DataType dt)
31 {
32 return dt <= slideio::DataType::DT_LastValid;
33 }
34
35 static int cvGetDataTypeSize(DataType dt);
36 static int cvTypeFromDataType(DataType dt);
37 static void extractSliceFrom3D(cv::Mat mat3D, int sliceIndex, cv::OutputArray output);
38 static void extractSliceFromMultidimMatrix(cv::Mat multidimMat, const std::vector<int>& indices,
39 cv::OutputArray output);
46 static void insertSliceInMultidimMatrix(cv::Mat& multidimMat, const cv::Mat& sliceMat,
47 const std::vector<int>& indices);
48 static std::string dataTypeToString(DataType dataType);
49 static std::string compressionToString(Compression dataType);
50
51 static DataType getMatDataType(const cv::Mat& mat) {
52 return CVTools::fromOpencvType(mat.type() & CV_MAT_DEPTH_MASK);;
53 }
54 };
55}
Definition: exceptions.hpp:15