926f8b74feaa9ddfc84457e3dffe0dd0682761ca
[platform/upstream/dldt.git] / inference-engine / samples / common / format_reader / opencv_wraper.h
1 // Copyright (C) 2018 Intel Corporation
2 //
3 // SPDX-License-Identifier: Apache-2.0
4 //
5
6 /**
7  * \brief Image reader
8  * \file opencv_wraper.h
9  */
10 #pragma once
11
12 #ifdef USE_OPENCV
13 #include <memory>
14 #include <string>
15 #include <format_reader.h>
16
17 #include <opencv2/opencv.hpp>
18
19 #include "register.h"
20
21 namespace FormatReader {
22 /**
23  * \class OCVMAT
24  * \brief OpenCV Wraper
25  */
26 class OCVReader : public Reader {
27 private:
28     cv::Mat img;
29     size_t _size;
30     static Register<OCVReader> reg;
31
32 public:
33     /**
34     * \brief Constructor of BMP reader
35     * @param filename - path to input data
36     * @return BitMap reader object
37     */
38     explicit OCVReader(const std::string &filename);
39     virtual ~OCVReader() {
40     }
41
42     /**
43     * \brief Get size
44     * @return size
45     */
46     size_t size() const override {
47         return _size;
48     }
49
50     void Release() noexcept override {
51         delete this;
52     }
53
54     std::shared_ptr<unsigned char> getData(int width, int height) override;
55 };
56 }  // namespace FormatReader
57 #endif