tea_cv_api.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. /*
  2. tea sorter
  3. */
  4. #pragma once
  5. #include "data_def_api.h"
  6. using namespace std;
  7. //定义TCV_DEBUG,每一步图像处理都会输出中间结果图片显示(opencv),回车后继续执行,用于测试
  8. // #define TCV_DEBUG
  9. // export
  10. #define TCV_EXPORTS
  11. #ifdef TCV_EXPORTS
  12. #define TCV_API __declspec(dllexport)
  13. #else
  14. #define TCV_API __declspec(dllimport)
  15. #endif
  16. #ifdef __cplusplus
  17. extern "C"
  18. {
  19. #endif
  20. namespace graft_cv
  21. {
  22. //1 设置log路径
  23. TCV_API int cv_set_logpath(char*lpath);
  24. //2 设置log等级
  25. TCV_API int cv_set_loglevel(int lev);// 0-debug, 1-info, 2-warning, 3-error
  26. //3 设置是否存储图片(存储路径在configure文件中),true--保存,false--不保存
  27. TCV_API int cv_init_image_saver();
  28. //4 初始化:本地配置文件初始化(yml)
  29. // 返回: 0- 正常; 1- 配置文件不存在
  30. TCV_API int cv_init(char*conf_file);
  31. //5 初始化:通过ConfigParam结构体对象直接赋值配置参数(内存)
  32. TCV_API void cv_set_param(ConfigParam&);
  33. TCV_API int cv_set_param_from_file(char*conf_file);
  34. //6 接口退出前的释放
  35. TCV_API int cv_release();
  36. //7 获取当前配置文件路径,输入char*要空间足够,内部没有检测是否越界
  37. TCV_API void cv_get_conf_file(char*);
  38. //8 保存到本地配置文件中(覆盖)
  39. TCV_API void cv_save_param(char* conf_file/*=0*/);
  40. //9 获取当前的配置参数
  41. TCV_API void cv_get_param(ConfigParam&);
  42. //10 获取当前版本号,char*要空间足够,内部没有检测是否越界
  43. TCV_API void get_version(char* buf);
  44. //11 找到抓取位置
  45. //
  46. // 输入:
  47. // ImgInfo------- 输入
  48. // posinfo ------- 输出
  49. // fn ------------ 输入, points指向0,且fn可用时,读取文件中的数据(用于测试),仅支持ply格式
  50. //
  51. //[0] tea_grab_x1; //第一株茶叶抓取位置x1,
  52. //[1] tea_grab_y1; //第一株茶叶抓取位置y1,
  53. //[2] tea_grab_angle1; //第一株茶叶抓取角度r1,
  54. //[3] tea_grab_x2; //第二株茶叶抓取位置x2,
  55. //[4] tea_grab_y2; //第二株茶叶抓取位置y2,
  56. //[5] tea_grab_angle2; //第二株茶叶抓取角度r2,
  57. //[6] tea_cut_x1; //第一株茶叶切割位置x1,
  58. //[7] tea_cut_y1; //第一株茶叶切割位置y1,
  59. //[8] tea_cut_angle1; //第一株茶叶切割角度r1,
  60. //[9] tea_cut_x2; //第二株茶叶切割位置x2,
  61. //[10] tea_cut_y2; //第二株茶叶切割位置y2,
  62. //[11] tea_cut_angle2; //第二株茶叶切割角度r2,
  63. // 如果为0,则不存在
  64. // posinfo.pp_images;
  65. //
  66. // 返回: 0- 正常; 其他- 失败
  67. TCV_API int tea_grab_point(ImgInfo*, PositionInfo& posinfo, const char* fn=0);
  68. //12 找到切割位置
  69. //
  70. // 输入:
  71. // ImgInfo------- 输入
  72. // posinfo ------- 输出
  73. // fn ------------ 输入, points指向0,且fn可用时,读取文件中的数据(用于测试),仅支持ply格式
  74. //
  75. //[0] tea_grab_x1; //第一株茶叶抓取位置x1,
  76. //[1] tea_grab_y1; //第一株茶叶抓取位置y1,
  77. //[2] tea_grab_angle1; //第一株茶叶抓取角度r1,
  78. //[3] tea_grab_x2; //第二株茶叶抓取位置x2,
  79. //[4] tea_grab_y2; //第二株茶叶抓取位置y2,
  80. //[5] tea_grab_angle2; //第二株茶叶抓取角度r2,
  81. //[6] tea_cut_x1; //第一株茶叶切割位置x1,
  82. //[7] tea_cut_y1; //第一株茶叶切割位置y1,
  83. //[8] tea_cut_angle1; //第一株茶叶切割角度r1,
  84. //[9] tea_cut_x2; //第二株茶叶切割位置x2,
  85. //[10] tea_cut_y2; //第二株茶叶切割位置y2,
  86. //[11] tea_cut_angle2; //第二株茶叶切割角度r2,
  87. // 如果为0,则不存在
  88. // posinfo.pp_images;
  89. //
  90. // 返回: 0- 正常; 其他- 失败
  91. TCV_API int tea_cut_point(ImgInfo*, PositionInfo& posinfo, const char* fn = 0);
  92. };//namespace tea_cv
  93. #ifdef __cplusplus
  94. }
  95. #endif