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