123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #pragma once
- #include <string>
- #include "ImageLoc.h"
- #include <map>
- #ifdef UNICODE
- using TString = std::wstring;
- #else
- using TString = std::string;
- #endif
- /*
- 此类为图像处理,包含以下工作
- 1.像素比较,查找
- 2.颜色转化
- 3.图像定位
- 4.简单OCR
- 5....
- */
- class ImageProc :public ImageBase
- {
- public:
- const static int _max_dict = 10;
- ImageProc();
- ~ImageProc();
- //
- long Capture(const TString& file);
- long CmpColor(long x, long y, const TString& scolor, double sim);
- long FindColor(const TString& color, double sim, long dir, long& x, long& y);
- long FindColoEx(const TString& color, double sim, long dir, TString& retstr);
- long FindMultiColor(const TString& first_color, const TString& offset_color, double sim, long dir, long& x, long& y);
- long FindMultiColorEx(const TString& first_color, const TString& offset_color, double sim, long dir, TString& retstr);
- //图形定位
- long FindPic(const TString& files, const TString& delta_colors, double sim, long dir, long& x, long& y);
- //
- long FindPicEx(const TString& files, const TString& delta_colors, double sim, long dir, TString& retstr, bool returnID = true);
- long FindColorBlock(const TString& color, double sim, long count, long height, long width, long& x, long& y);
- long FindColorBlockEx(const TString& color, double sim, long count, long height, long width, TString& retstr);
- TString GetColor(long x, long y);
- long FindLine(const TString& color, double sim, TString& retStr);
- long LoadPic(const TString& files);
- long FreePic(const TString& files);
- long LoadMemPic(const TString& file_name, void* data, long size);
- public:
- //当前目录
- TString _curr_path;
- //图片缓存
- std::map<TString, Image> _pic_cache;
- //是否使用图片缓存,默认开启
- int _enable_cache;
- //tesseract::TessBaseAPI _tes;
- private:
- //RETURN TYPE 0:word colors info; 1:bk color info
- int str2colordfs(const TString& color_str, std::vector<color_df_t>& colors);
- void str2colors(const TString& color, std::vector<color_t>& vcolor);
- void files2mats(const TString& files, std::vector<Image*>& vpic, std::vector<TString>& vstr);
- };
|