CFindTemplate.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #ifndef CFINDTEMPLATE_H
  3. #define CFINDTEMPLATE_H
  4. #include "CImageBasis.h"
  5. struct RefInfo {
  6. std::string image_file;
  7. int target_x = 0;
  8. int target_y = 0;
  9. int width = 0;
  10. int height = 0;
  11. int found_x;
  12. int found_y;
  13. int search_x;
  14. int search_y;
  15. int fastalg_x = -1;
  16. int fastalg_y = -1;
  17. int fastalg_min = -256;
  18. float fastalg_avg = -1;
  19. int fastalg_max = -1;
  20. float fastalg_SAD = -1;
  21. float fastalg_SAD_criteria = -1;
  22. int alignment_algo = 0; // 0 = "Default" (nur R-Kanal), 1 = "HighAccuracy" (RGB-Kanal), 2 = "Fast" (1.x RGB, dann isSimilar)
  23. };
  24. class CFindTemplate : public CImageBasis
  25. {
  26. public:
  27. int tpl_width, tpl_height, tpl_bpp;
  28. CFindTemplate(std::string name, uint8_t* _rgb_image, int _channels, int _width, int _height, int _bpp) : CImageBasis(name, _rgb_image, _channels, _width, _height, _bpp) {};
  29. bool FindTemplate(RefInfo *_ref);
  30. bool CalculateSimularities(uint8_t* _rgb_tmpl, int _startx, int _starty, int _sizex, int _sizey, int &min, float &avg, int &max, float &SAD, float _SADold, float _SADcrit);
  31. };
  32. #endif //CFINDTEMPLATE_H