Commit 493785a7 authored by lluis's avatar lluis

moves implementation to cpp file and removes using directive from header file

parent 3ab63082
...@@ -46,7 +46,6 @@ ...@@ -46,7 +46,6 @@
#include <vector> #include <vector>
#include <string> #include <string>
using namespace std;
namespace cv namespace cv
{ {
...@@ -65,29 +64,20 @@ class CV_EXPORTS BaseOCR ...@@ -65,29 +64,20 @@ class CV_EXPORTS BaseOCR
{ {
public: public:
virtual ~BaseOCR() {}; virtual ~BaseOCR() {};
virtual void run(Mat& image, string& output_text, vector<Rect>* component_rects=NULL, virtual void run(Mat& image, std::string& output_text, std::vector<Rect>* component_rects=NULL,
vector<string>* component_texts=NULL, vector<float>* component_confidences=NULL, std::vector<std::string>* component_texts=NULL, std::vector<float>* component_confidences=NULL,
int component_level=0) = 0; int component_level=0) = 0;
}; };
class CV_EXPORTS OCRTesseract : public BaseOCR class CV_EXPORTS OCRTesseract : public BaseOCR
{ {
public: public:
virtual void run(Mat& image, string& output_text, vector<Rect>* component_rects=NULL, virtual void run(Mat& image, std::string& output_text, std::vector<Rect>* component_rects=NULL,
vector<string>* component_texts=NULL, vector<float>* component_confidences=NULL, std::vector<std::string>* component_texts=NULL, std::vector<float>* component_confidences=NULL,
int component_level=0) int component_level=0);
{
CV_Assert( (image.type() == CV_8UC1) || (image.type() == CV_8UC1) ); static Ptr<OCRTesseract> create(const char* datapath=NULL, const char* language=NULL,
CV_Assert( (component_level == OCR_LEVEL_TEXTLINE) || (component_level == OCR_LEVEL_WORD) ); const char* char_whitelist=NULL, int oem=3, int psmode=3);
output_text.clear();
if (component_rects != NULL)
component_rects->clear();
if (component_texts != NULL)
component_texts->clear();
if (component_confidences != NULL)
component_confidences->clear();
}
static Ptr<OCRTesseract> create(const char* datapath=NULL, const char* language=NULL, const char* char_whitelist=NULL, int oem=3, int psmode=3);
}; };
......
...@@ -47,13 +47,28 @@ ...@@ -47,13 +47,28 @@
#include <iostream> #include <iostream>
#include <fstream> #include <fstream>
#include <queue> #include <queue>
using namespace std;
namespace cv namespace cv
{ {
namespace text namespace text
{ {
using namespace std;
void OCRTesseract::run(Mat& image, string& output_text, vector<Rect>* component_rects,
vector<string>* component_texts, vector<float>* component_confidences,
int component_level)
{
CV_Assert( (image.type() == CV_8UC1) || (image.type() == CV_8UC1) );
CV_Assert( (component_level == OCR_LEVEL_TEXTLINE) || (component_level == OCR_LEVEL_WORD) );
output_text.clear();
if (component_rects != NULL)
component_rects->clear();
if (component_texts != NULL)
component_texts->clear();
if (component_confidences != NULL)
component_confidences->clear();
}
class OCRTesseractImpl : public OCRTesseract class OCRTesseractImpl : public OCRTesseract
{ {
...@@ -174,7 +189,8 @@ public: ...@@ -174,7 +189,8 @@ public:
}; };
Ptr<OCRTesseract> OCRTesseract::create(const char* datapath, const char* language, const char* char_whitelist, int oem, int psmode) Ptr<OCRTesseract> OCRTesseract::create(const char* datapath, const char* language,
const char* char_whitelist, int oem, int psmode)
{ {
return makePtr<OCRTesseractImpl>(datapath,language,char_whitelist,oem,psmode); return makePtr<OCRTesseractImpl>(datapath,language,char_whitelist,oem,psmode);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment