CPxielLocation.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #pragma once
  2. #include "ILocalizationManager.h"
  3. #include "TypeDef.h"
  4. #include "ILamp.h"
  5. #include "CManageDB.h"
  6. using namespace JVision;
  7. using namespace ns_db;
  8. namespace ns_pr
  9. {
  10. enum PR_OUTPUT_TYPE {
  11. LOCALIZATION_TYPE, //定位
  12. LINE_TYPE, //直线
  13. CIRCLE_TYPE //找圆
  14. };
  15. //此处输出的偏差为:相对于图像左上角像素值
  16. struct FIND_OUTPUT_STRUCT
  17. {
  18. PR_OUTPUT_TYPE type; //方法类型
  19. double score; //分数
  20. double x; //x方向偏差(像素)
  21. double y; //y方向偏差(像素)
  22. union
  23. {
  24. double a; //角度偏差(度)
  25. double radius; //半径(像素)
  26. };
  27. };
  28. class CPixelLocation
  29. {
  30. public:
  31. CPixelLocation();
  32. //搜索图片 stOutOffset相对于图片左上角的点的象素值
  33. // 参数 iPrMethod:方法Id
  34. // 参数 image:照片
  35. // 参数 stOutOffset:用于存储搜索结果偏差信息的结构体引用,包括X、Y和角度偏差
  36. // 返回值:操作结果,例如成功返回 OK,失败返回 FAIL 等
  37. LONG SearchImageByLocalization(UINT iPrMethod, ImageInfo image, FIND_OUTPUT_STRUCT& stOutOffset);
  38. LONG EditTemplate(UINT iTemplate);
  39. private:
  40. CProduct* m_pCProduct = nullptr;
  41. ILocalizationManager* m_pLocalizationManager = nullptr;
  42. bool m_bInitSuccess;
  43. int imageNum = 0;
  44. bool ConvertBMPToImageInfo(const std::string& bmpPath, ImageInfo& imageInfo);
  45. };
  46. }