void lane_analysis_handler(carmen_bumblebee_basic_stereoimage_message * stereo_image) {

	// if there is no car pose yet, return
	if (car_pose == nullptr) {
		printf("I do not see any car pose at the moment... sorry!\n");
		return;
	}

	// get the image from the bumblebee
	Mat3b image;
	if (stereo_image->image_size == 3686400) image = Mat3b(960, 1280);
	else image = Mat3b(480, 640);

	if (camera_side == CameraSide::LEFT) image.data = (uchar *) stereo_image->raw_left;
	else if(camera_side == CameraSide::RIGHT) image.data = (uchar *) stereo_image->raw_right;
	else image.data = (uchar *) stereo_image->raw_right;

	cvtColor(image, image, CV_RGB2BGR);
	cv::resize(image, image, Size(640,480));

	fnumber++;

//	if(fnumber>100)
//	{
//		exit(0);
//	}

	if (!image.empty()) {
		cout << "frame: " << fnumber << endl;
		// run ELAS
		ELAS::run(image);
		printf("CARMEN::ELAS... done!\n");

		// get the raw message
		printf("get_raw_message()... ");
		_raw_elas_message = ELAS::get_raw_message();
		_raw_elas_message.idx_frame = fnumber;
		printf("done!\n");

		// publish messages
		lane_analysis_publish_messages(stereo_image->timestamp);

#ifdef SHOW_DISPLAY
		// display viz
		ELAS::display(image, &_raw_elas_message);
#endif

	} else {
		printf("End of dataset!\n");
	}
}