vector<PlateRegion> RegionDetector::detect(Mat frame) { Mat frame_gray; cvtColor( frame, frame_gray, CV_BGR2GRAY ); vector<PlateRegion> regionsOfInterest = doCascade(frame_gray); return regionsOfInterest; }
vector<PlateRegion> DetectorCPU::detect(Mat frame, std::vector<cv::Rect> regionsOfInterest) { Mat frame_gray; cvtColor( frame, frame_gray, CV_BGR2GRAY ); vector<PlateRegion> detectedRegions = doCascade(frame_gray, regionsOfInterest); return detectedRegions; }
vector<PlateRegion> DetectorCUDA::detect(Mat frame, std::vector<cv::Rect> regionsOfInterest) { Mat frame_gray; cvtColor( frame, frame_gray, CV_BGR2GRAY ); vector<PlateRegion> detectedRegions; for (int i = 0; i < regionsOfInterest.size(); i++) { Mat cropped = frame_gray(regionsOfInterest[i]); vector<PlateRegion> subRegions = doCascade(cropped, regionsOfInterest[i].x, regionsOfInterest[i].y); for (int j = 0; j < subRegions.size(); j++) detectedRegions.push_back(subRegions[j]); } return detectedRegions; }