Please enable JavaScript.
Coggle requires JavaScript to display documents.
答题卡类一页ExamPage (public: (成员函数 (virtual Json::Value serialize();, virtual…
答题卡类一页ExamPage
public:
成员函数
virtual Json::Value serialize();
virtual bool deserialize(Json::Value root);
virtual void init_keys();
void set_page_size(PageSize& page_size);
~ExamPage();
void set_abpaper_rect(ABPaperRect& abpaper);
ExamPage();
void set_four_anchors(FourAnchors& four_anchors);
void set_top_anchors(TopPositionAnchors& top_anchors);
void set_left_anchors(LeftPositionAnchors& left_anchors);
void set_omr_school_number(OmrSchoolNumber& school_numbers);
void set_barcode_school_number(BarcodeSchoolNumber& school_numbers);
void set_omr_objectives(std::vector<OmrObjectives>& omr_objectives);
void set_optional_subjectives(std::vector<OptionalSubjectives>& optional_sbj);
void set_absent_rects(AbsentRect& absent_rects);
void set_page_numbers(PageNumbers& page_numbers);
void set_subjective_score_bar(std::vector<SubjectiveScoreBar>& scorebars);
void set_judge_score_blocks(std::vector<JudgeScoreBlocks>& score_blocks);
PageSize& get_page_size();
ABPaperRect& get_abpaper_rect();
FourAnchors& get_four_anchors();
TitleRect& get_title_rect();
std::vector<OmrObjectives>& get_omr_objectives();
std::vector<OptionalSubjectives>& get_optional_subjectives();
AbsentRect& get_absent_rects();
PageBarcode& get_page_barcode();
PageNumbers& get_page_numbers();
std::vector<OmrObjectivesGroup>& get_omr_objective_groups();
std::vector<SubjectiveScoreBar>& get_subjective_scorebars();
std::vector<JudgeScoreBlocks>& get_judge_score_blocks();
TitleRect& get_top_title_rect();
TopPositionAnchors& get_top_anchors();
LeftPositionAnchors& get_left_anchors();
cv::Rect_<double> get_left_anchor_area();
通过上面的两个四角定位块计算出整个top
anchor的区域位置cv::Rect
<double> get_top_anchor_area();
OmrSchoolNumber& get_omr_school_number();
SCHOOL_NUM_TYPE get_school_number_type();
int get_page_number();
BarcodeSchoolNumber& get_barcode_school_number();
void reset_found_state(int state);
void set_four_anchor
rects(std::vector<cv::Rect
<double>>& rects);
设置是否为先阅后扫 void set_is_hand_written_scores(bool yes);
是否先阅后扫 bool is_hand_written_scores();
void set_handwritten(int handwritten);
int get_handwritten();
成员变量
enum {OMR = 1, BARCODE = 2, NONE = 3} SCHOOL_NUM_TYPE;
private:
成员变量
BarcodeSchoolNumber m_barcodeSchoolNumber;
vector<OmrObjectives> m_objectives;
OmrSchoolNumber m_omrSchoolNumber;
vector<OptionalSubjectives> m_optionalSubjectives;
LeftPositionAnchors m_leftAnchors;
AbsentRect m_absentRect;
TopPositionAnchors m_topAnchors;
PageNumbers m_pageNumbers;
PageBarcode m_pageBarcode;
PageSize m_pageSize;
SCHOOL_NUM_TYPE m_school_num_type;
ABPaperRect m_abPaperRect;
成员函数
void init_keys();
Json::Value serialize();
bool deserialize(Json::Value root);
void transform(Transformer& transformer);
void sort();
vector<OmrRect>& get_abpaper_omrs();
vector<cv::Rect> get_abpaper_rects();
vector<OmrPoint>& get_abpaper_grids();
size_t size();
Point get_grid(int index);
成员变量
vector<OmrRect> m_omrs;
vector<OmrPoint> m_grids;
OmrRect m_bounds;
位置(x,y)宽高(w,h)值 V
标题文字定位点TitleRect m_titleRect;
FourAnchors m_fourAnchors;
顶部文字定位点TitleRect m_topTitleRect;
vector<OmrObjectivesGroup> m_objectivesGroups;
bool m_isHandWritten; // 是否为先阅后扫,手写给分
先阅后扫答题卡类型:1表示填涂打分答题卡,2表示手写数字打分答题卡 int m_handWritten;
主观题的给分板 std::vector<SubjectiveScoreBar> m_subjectiveScoreBars;
填空题判断对错vector<JudgeScoreBlocks> m_judgeScoreBlocks;