123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- //cut point reid for rootstock plant
- #pragma once
- #include <time.h>
- #include <opencv.hpp>
- #include "data_def_api.h"
- #include "data_def.h"
- #include "logger.h"
- #include "imstorage_manager.h"
- //using namespace cv;
- namespace graft_cv{
- class CRootStockCutPointReid{
- public:
- CRootStockCutPointReid(ConfigParam&c,CGcvLogger*pLog=0);
- ~CRootStockCutPointReid();
- int cut_point_reid( //切后切割点识别
- ImgInfo*, //切后图片
- cv::Mat&, //切后图片,测试用
- const char * pre_img_id, //切前图像id
- PositionInfo& posinfo,
- map<string, cv::Mat>& img_cache
- );
- void set_image_saver(CImStoreManager** ppis){m_ppImgSaver=ppis;}
- private:
- cv::Mat m_preGrayImg;// gray image
- //Mat m_binImg;// binary image
- cv::Mat m_grayImg;// gray image
- cv::Mat m_edgeImg;
- string m_imgId;
- CImStoreManager** m_ppImgSaver;
- //返回图片,用于调试
- ImgInfo* m_pImginfoBinFork;//fork-y, right-x
- ImgInfo* m_pImgCorners;//corners, reference-point, candidate box
- ImgInfo* m_pImgCutPoint;//reference-point, cutpoint
- //global configure parameters
- ConfigParam& m_cparam;
- CGcvLogger * m_pLogger;
- // image segment
- void img_preprocess(cv::Mat&);
- void clear_imginfo();
-
- };
- // 茄科切割点识别
- // 切后识别
- class CSolaCutPointReid {
- public:
- CSolaCutPointReid(ConfigParam&c, int stemType=0, CGcvLogger*pLog=0);
- ~CSolaCutPointReid();
- int cut_point_reid( //切后切割点识别
- ImgInfo*, //切后图片
- cv::Mat&, //切后图片,测试用
- PositionInfo& posinfo
- );
- private:
- int m_stem_type; //植株类别:0--砧木;1--穗苗
- //global configure parameters
- ConfigParam& m_cparam;
- CGcvLogger * m_pLogger;
- string m_imgId;
- CImStoreManager** m_ppImgSaver;
- cv::Mat m_grayImg;// gray image
- cv::Mat m_binImg; // bin image
- //返回图片,用于调试
- ImgInfo* m_pImginfoBin;//
- ImgInfo* m_pImgCutPoint;//reference-point, cutpoint
- void clear_imginfo();
- inline string get_stem_type_name();
- void img_preprocess(cv::Mat&img);
- void find_cut_curve(vector<cv::Point>&points,
- vector<cv::Point>&cut_curve,
- cv::RotatedRect& retval);
-
- };
- };
|