bool FaceTracerFileReader::loadFaceindex(const int faceId, std::string filename, std::string foldername) { std::cout << "loadFaceindex ('" << faceId << ", " << foldername << ", " << filename << "')" << std::endl; FaceTracerFileData faceTracerData; faceTracerData.faceId = boost::lexical_cast<std::string> (faceId); // returns stats from line by faceId vector<std::string> stats = getLineById(faceId, filename); if (stats.size() == 0) { std::cerr << "Error: No face id: " << faceId << " in file: " << filename << " found! " << std::endl; return false; } boost::format fmt("%06d"); fmt % faceId; std::string faceIdString = boost::lexical_cast<std::string>(fmt); faceTracerData.faceindexFilename = filename; faceTracerData.faceIdFilename = faceIdString + ".jpg"; faceTracerData.imageFoldername = foldername; // faceTracerData.faceIdFilename = stats.at(0); // imgurl; // faceTracerData.faceIdFilename = stats.at(1); // pageurl; m_faceTracerDataMap.insert(std::pair<int, FaceTracerFileData> (boost::lexical_cast<int> (faceId), faceTracerData)); return true; }
bool DBTools::getLineByGps(Point3D & point,OUT std::vector<Line>& vLine) { int pointid = getIdByPoint(point); if(pointid == 0) return false; std::stringstream ss_id; ss_id<<pointid; std::string sql="select a.line_id from line a,shape_points b where a.line_id = b.line_id and ( a.from_point="+ss_id.str()+" or a.to_point="+ss_id.str()+" or b.point_id="+ss_id.str()+" );"; int res=mysql_query(&myCont,sql.c_str()); if(!res) { MYSQL_RES *result = mysql_store_result(&myCont); if(mysql_num_rows(result)) { MYSQL_ROW sql_row; Line lineTemp; while(sql_row=mysql_fetch_row(result)) { getLineById(atoi(sql_row[0]),lineTemp); vLine.push_back(lineTemp); } } mysql_free_result(result); return true; } return false; }
bool FaceTracerFileReader::loadFacelabel(const int faceId, std::string filename) { std::cout << "loadFacelabel ('" << faceId << ", " << filename << "')" << std::endl; //find entry with same key std::map<int, FaceTracerFileData>::iterator it; it = m_faceTracerDataMap.find(boost::lexical_cast<int>(faceId)); FaceTracerFileData faceTracerData; if (it != m_faceTracerDataMap.end()) { faceTracerData = it->second; m_faceTracerDataMap.erase(it); } else { std::wcerr << "Warning: No image for facelabels entry found -> rejected File: " << faceId << std::endl; return false; } faceTracerData.numFacelabels = FaceTracerFileData::numAttributeFileFeatureCodes; faceTracerData.facelabelFilename = filename; faceTracerData.sex = FaceMetadata::UNDEFINED; faceTracerData.glasses = FaceMetadata::UNDEFINED; faceTracerData.occluded = FaceMetadata::UNDEFINED; faceTracerData.bw = FaceMetadata::UNDEFINED; // returns stats from line by faceId vector<std::string> stats = getLineById(faceId, filename); while (stats.size() > 1) { std::string label = stats.back(); stats.pop_back(); std::string attribute = stats.back(); stats.pop_back(); if (attribute.compare("gender") == 0) { faceTracerData.sex = label.compare("male") ? FaceMetadata::FEMALE : FaceMetadata::MALE; std::cout << "eingetragen-> " << faceTracerData.sex << std::endl; } else if (attribute.compare("eye_wear") == 0) { faceTracerData.glasses = label.compare("none") ? FaceMetadata::CHECKED : FaceMetadata::UNCHECKED; std::cout << "eingetragen-> " << faceTracerData.glasses << std::endl; } else { } } m_faceTracerDataMap.insert(std::pair<int, FaceTracerFileData> (boost::lexical_cast<int> (faceId), faceTracerData)); return true; }
bool FaceTracerFileReader::loadFacestats(const int faceId, std::string filename) { std::cout << "loadFacestats ('" << faceId << ", " << filename << "')" << std::endl; //find entry with same key std::map<int, FaceTracerFileData>::iterator it; it = m_faceTracerDataMap.find(boost::lexical_cast<int>(faceId)); FaceTracerFileData faceTracerData; if (it != m_faceTracerDataMap.end()) { faceTracerData = it->second; m_faceTracerDataMap.erase(it); } else { std::wcerr << "Warning: No image for facestats entry found -> rejected File: " << faceId << std::endl; return false; } faceTracerData.numFacestats = FaceTracerFileData::numFeaturesFileFeatureCodes; faceTracerData.facestatsFilename = filename; // returns stats from line by faceId vector<std::string> stats = getLineById(faceId, filename); if (stats.size() == 0) { std::cerr << "Error: No face id: " << faceId << " in file: " << filename << " found! " << std::endl; return false; } if ((stats.size() + 1) < faceTracerData.numFieldCodes) { return false; } faceTracerData.crop = cv::Rect(utils::convertToInt(stats.at(2)), utils::convertToInt(stats.at(3)), utils::convertToInt(stats.at(0)), utils::convertToInt(stats.at(1))); faceTracerData.yaw = utils::convertToFloat(stats.at(4)) * RAD; faceTracerData.pitch = utils::convertToFloat(stats.at(5)) * RAD; faceTracerData.roll = utils::convertToFloat(stats.at(6)) * RAD; for (int i = 0; i < faceTracerData.numFacestats; i++) { double xCoord = utils::convertToDouble(stats.at(7 + (2 * i))) + faceTracerData.crop.x; double yCoord = utils::convertToDouble(stats.at(7 + (2 * i) + 1)) + faceTracerData.crop.y; faceTracerData.facestats.push_back(std::pair<double, double> (xCoord, yCoord)); } m_faceTracerDataMap.insert(std::pair<int, FaceTracerFileData> (boost::lexical_cast<int> (faceId), faceTracerData)); return true; }