示例#1
0
	void sceneTextDetector::set_Filter()
	{
		for (int i = 0; i<2; i++)
		{
			Ptr<ERFilter> er_filter1 = createERFilterNM1(loadClassifierNM1("trained_classifierNM1.xml"), 7, 0.00015f, 0.13f, 0.2f, true, 0.02f);
			Ptr<ERFilter> er_filter2 = createERFilterNM2(loadClassifierNM2("trained_classifierNM2.xml"), 0.2);
			er_filters1.push_back(er_filter1);
			er_filters2.push_back(er_filter2);
		}
	}
示例#2
0
文件: ocr.cpp 项目: somacar/somacar
OCRTess::OCRTess(bool downsize, int region, int group) {
    this->downsize = downsize;
    this->REGION = region;
    this->GROUP = group;

    for (int i = 0; i < 2; i++) {
        Ptr<ERFilter> er_filter1 = createERFilterNM1(loadClassifierNM1(DIR + TR_NM1), 8, 0.00015f, 0.13f, 0.2f, true, 0.1f);
        Ptr<ERFilter> er_filter2 = createERFilterNM2(loadClassifierNM2(DIR + TR_NM2), 0.5);
        this->erf1.push_back(er_filter1);
        this->erf2.push_back(er_filter2);
    }
}
void ExtractTexto::Segmentar( cv::Mat const & source, std::vector<cv::Rect> &groups_boxes ){
    
    std::vector<cv::Mat> channels;
          
    cv::text::computeNMChannels(source, channels);
    
    groups_boxes.clear();
    
    int cn = (int)channels.size();
        
    for (int c = 0; c < cn-1; c++)
        channels.push_back(channels[c]);    
   
    //Ptr<cv::text::ERFilter> er_filter1 = createERFilterNM1(loadClassifierNM1("trained_classifierNM1.xml"), 11, 0.00005, 0.2, 0.8, true, 0.5);
   
    Ptr<cv::text::ERFilter> er_filter1 = createERFilterNM1(loadClassifierNM1("trained_classifierNM1.xml"), 13, 0.0005, 0.2, 0.5, true, 0.5);
    
    Ptr<cv::text::ERFilter> er_filter2 = createERFilterNM2(loadClassifierNM2("trained_classifierNM2.xml"), 0.5);
    
    std::vector< std::vector<cv::text::ERStat> > regions(channels.size());
    
    for (int c=0; c<(int)channels.size(); c++){
        er_filter1->run(channels[c], regions[c]); 
        er_filter2->run(channels[c], regions[c]);
    }
    
    std::vector< std::vector<Vec2i>> region_groups;    
    
    cv::text::erGrouping(source, channels, regions, region_groups, groups_boxes, ERGROUPING_ORIENTATION_HORIZ);
        
    cv::Mat imagClone = source.clone();
       
    findSuperRect(groups_boxes, groups_boxes);
    
    groups_draw(imagClone, groups_boxes);  
           
    er_filter1.release();
    er_filter2.release();
    regions.clear();
    
}