CPxielLocation.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. CIRCLE_TYPE //找圆
  13. };
  14. //此处输出的偏差为:相对于图像左上角像素值
  15. struct FIND_OUTPUT_STRUCT
  16. {
  17. PR_OUTPUT_TYPE type; //方法类型
  18. double score; //分数
  19. double x; //x方向偏差(像素)
  20. double y; //y方向偏差(像素)
  21. union
  22. {
  23. double angle; //角度偏差(度)
  24. double radius; //半径(像素)
  25. };
  26. };
  27. class CPixelLocation
  28. {
  29. public:
  30. CPixelLocation();
  31. //搜索图片 stOutOffset相对于图片左上角的点的象素值
  32. // 参数 iPrMethod:方法Id
  33. // 参数 image:照片
  34. // 参数 stOutOffset:用于存储搜索结果偏差信息的结构体引用,包括X、Y和角度偏差
  35. // 返回值:操作结果,例如成功返回 OK,失败返回 FAIL 等
  36. LONG SearchImageByLocalization(UINT iPrMethod, ImageInfo image, FIND_OUTPUT_STRUCT& stOutOffset);
  37. LONG EditTemplate(UINT iTemplate);
  38. private:
  39. CProduct* m_pCProduct = nullptr;
  40. ILocalizationManager* m_pLocalizationManager = nullptr;
  41. bool m_bInitSuccess;
  42. bool ConvertBMPToImageInfo(const std::string& bmpPath, ImageInfo& imageInfo);
  43. };
  44. }