tVoid DriverFilter::getManeuverFromString(const cString &name, Maneuver &maneuver) { if (name.Compare("left") == 0) { maneuver = MANEUVER_LEFT; } else if (name.Compare("right") == 0) { maneuver = MANEUVER_RIGHT; } else if (name.Compare("straight") == 0) { maneuver = MANEUVER_STRAIGHT; } else if (name.Compare("parallel_parking") == 0) { maneuver = MANEUVER_PARALLEL_PARKING; } else if (name.Compare("cross_parking") == 0) { maneuver = MANEUVER_CROSS_PARKING; } else if (name.Compare("pull_out_right") == 0) { maneuver = MANEUVER_PULL_OUT_RIGHT; } else if (name.Compare("pull_out_left") == 0) { maneuver = MANEUVER_PULL_OUT_LEFT; } else { LOG_INFO(cString::Format("Unbekannter Befehl: %s", name.GetPtr())); } }
cRoadSigns::cRoadSigns(cString filename,RoadSign enumGiven , tInt minHessian, tInt shapeIdentifier) : m_detector(minHessian,20) //setting parameters of detector minHessian and nOctaves { //m_image = imread(filename, CV_LOAD_IMAGE_GRAYSCALE ); m_enumSign = enumGiven; m_shapeIdentifier = shapeIdentifier; if (std::ifstream(filename.GetPtr())) { m_image = imread(filename.GetPtr(), CV_LOAD_IMAGE_COLOR); //blur(m_image,m_image,cvSize(9,9)); m_minHessian = minHessian; #if defined(WIN32) //setting parameters of detector m_detector.set("hessianThreshold",minHessian); m_detector.set("nOctaves",20); #endif m_detector.detect( m_image, m_keypoints ); if (m_keypoints.size() == 0) { m_state=tFalse; return; } //remove keypoints which are near to border tInt borderSize = m_image.cols/4; m_keypoints.erase( remove_if(m_keypoints.begin(), m_keypoints.end(), RoiPredicatePic((tFloat32)borderSize, (tFloat32)borderSize, (tFloat32)(m_image.cols - borderSize), (tFloat32)(m_image.rows - borderSize))), m_keypoints.end() ); m_extractor.compute( m_image, m_keypoints, m_descriptors ); if (m_descriptors.total() == 0) { m_state=tFalse; return; } //drawKeypoints( m_image, m_keypoints, m_image, Scalar::all(-1), DrawMatchesFlags::DEFAULT ); m_state = tTrue; } else m_state=tFalse; }