Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef TEXT_LOCATOR_TRECOGNIZER_HPP_
00026 #define TEXT_LOCATOR_TRECOGNIZER_HPP_
00027 #include "TDetector.hpp"
00028 #include "Text2D.hpp"
00029 #include <vector>
00030 #include <tesseract/baseapi.h>
00031 #include <leptonica/allheaders.h>
00032 #include <opencv2/opencv.hpp>
00033
00034 namespace ros_text_locator {
00035
00036 class TRecognizer {
00037 private:
00038 tesseract::PageSegMode mode;
00039 std::string lang;
00040 tesseract::TessBaseAPI* api;
00041 bool initTesseract();
00042 const char* tesseract(const cv::Mat &image, int left, int top, int width,
00043 int height);
00044
00045 public:
00046 TRecognizer(tesseract::PageSegMode pageSegMode, std::string lang);
00047 virtual ~TRecognizer();
00048 void recognize(const cv::Mat &img, std::vector<Text2D>& text2d);
00049 std::string recognize(const cv::Mat &img, int x, int y, int width, int height);
00050
00051 const std::string& getLang() const {
00052 return lang;
00053 }
00054
00055 void setLang(std::string lang) {
00056 this->lang = lang;
00057 }
00058
00059 const tesseract::PageSegMode getMode() const {
00060 return mode;
00061 }
00062
00063 void setMode(tesseract::PageSegMode mode) {
00064 this->mode = mode;
00065 }
00066 };
00067
00068 }
00069 #endif