#pragma once #include #include "ImageLoc.h" #include #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 _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& colors); void str2colors(const TString& color, std::vector& vcolor); void files2mats(const TString& files, std::vector& vpic, std::vector& vstr); };