fork_rs.h 797 B

12345678910111213141516171819202122232425262728293031
  1. #pragma once
  2. #include <opencv2\imgproc\imgproc.hpp>
  3. using namespace cv;
  4. namespace graft_cv{
  5. // CForkDetectOptimal类实现优化
  6. // 用于优化分叉点检测
  7. // 要求:1)分叉点位于茎中心
  8. // 2)通过分叉点的线能够实现有效切割
  9. // 方法:通过茎中心线上的点,切割角度,找到不伤叶子的最优位置进行切割
  10. // 采用虚拟切割线两侧区域前景对比的方法
  11. class CForkDetectOptimal
  12. {
  13. public:
  14. CForkDetectOptimal();
  15. CForkDetectOptimal(int w, int h);
  16. ~CForkDetectOptimal();
  17. double center_pt_index(const Mat& binimg, Point&cent, double cut_angle);
  18. void set_roi_size(int w, int h);
  19. void get_roi_size(int &w, int &h);
  20. private:
  21. int m_roi_width;
  22. int m_roi_height;
  23. double roi_object_size(const Mat& binimg, RotatedRect &rrect);
  24. bool is_in_rrect(Point2f* ptf4,Point2f ptf, float fAngle);
  25. };
  26. };