123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #pragma once
- #include <opencv.hpp>
- #include "data_def_api.h"
- #include "data_def.h"
- #include "logger.h"
- #include "tea_detect.h"
- #include "imstorage_manager.h"
- using namespace cv;
- namespace graft_cv{
- class CTeaSort{
- public:
- CTeaSort(
- ConfigParam& ap,
- img_type dtype,
- CGcvLogger*pLog = 0
- );
- ~CTeaSort();
- int detect(
- ImgInfo*, PositionInfo& posinfo, const char* fn = 0);
-
- int load_data(
- ImgInfo*imginfo,
- const char* fn = 0);
- int load_model();
- void set_image_saver(CImStoreManager** ppis) { m_ppImgSaver = ppis; }
- private:
- img_type m_dtype; // data type: tea_grab, tea_cut
- string m_imgId;
- string m_dtype_str;
- Mat m_raw_img;
- ConfigParam& m_cp;
- RetinaDrop m_drop_detector;
- CImStoreManager** m_ppImgSaver;
- CGcvLogger* m_pLogger;
- ImgInfo* m_pImginfoRaw;
- ImgInfo* m_pImginfoDetected;
- int generate_detect_windows(vector<Rect>&boxes);
- int detect_impl(cv::Mat& img, vector<Rect>&drop_regions, vector<Bbox> &droplets_raw);
- void clear_imginfo();
- double calalate_angle(Bbox&b, double& grab_x, double&grab_y);
- };
- };
|