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;
}