ImageProc.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #pragma once
  2. #include <string>
  3. #include "ImageLoc.h"
  4. #include <map>
  5. #ifdef UNICODE
  6. using TString = std::wstring;
  7. #else
  8. using TString = std::string;
  9. #endif
  10. /*
  11. 此类为图像处理,包含以下工作
  12. 1.像素比较,查找
  13. 2.颜色转化
  14. 3.图像定位
  15. 4.简单OCR
  16. 5....
  17. */
  18. class ImageProc :public ImageBase
  19. {
  20. public:
  21. const static int _max_dict = 10;
  22. ImageProc();
  23. ~ImageProc();
  24. //
  25. long Capture(const TString& file);
  26. long CmpColor(long x, long y, const TString& scolor, double sim);
  27. long FindColor(const TString& color, double sim, long dir, long& x, long& y);
  28. long FindColoEx(const TString& color, double sim, long dir, TString& retstr);
  29. long FindMultiColor(const TString& first_color, const TString& offset_color, double sim, long dir, long& x, long& y);
  30. long FindMultiColorEx(const TString& first_color, const TString& offset_color, double sim, long dir, TString& retstr);
  31. //图形定位
  32. long FindPic(const TString& files, const TString& delta_colors, double sim, long dir, long& x, long& y);
  33. //
  34. long FindPicEx(const TString& files, const TString& delta_colors, double sim, long dir, TString& retstr, bool returnID = true);
  35. long FindColorBlock(const TString& color, double sim, long count, long height, long width, long& x, long& y);
  36. long FindColorBlockEx(const TString& color, double sim, long count, long height, long width, TString& retstr);
  37. TString GetColor(long x, long y);
  38. long FindLine(const TString& color, double sim, TString& retStr);
  39. long LoadPic(const TString& files);
  40. long FreePic(const TString& files);
  41. long LoadMemPic(const TString& file_name, void* data, long size);
  42. public:
  43. //当前目录
  44. TString _curr_path;
  45. //图片缓存
  46. std::map<TString, Image> _pic_cache;
  47. //是否使用图片缓存,默认开启
  48. int _enable_cache;
  49. //tesseract::TessBaseAPI _tes;
  50. private:
  51. //RETURN TYPE 0:word colors info; 1:bk color info
  52. int str2colordfs(const TString& color_str, std::vector<color_df_t>& colors);
  53. void str2colors(const TString& color, std::vector<color_t>& vcolor);
  54. void files2mats(const TString& files, std::vector<Image*>& vpic, std::vector<TString>& vstr);
  55. };