void RouteFinder::runProcess() { cv::Mat grayImg, image; ushort imgCntBendCrossing = 0; ushort imgCntDone = 0; ushort setSpeedCnt = 0; m_Running = true; m_Controller->printString("Start", me, 1); while(m_Running) { image = m_PicCreator->GetImage(); if (!image.empty()) { cv::cvtColor(image,grayImg,CV_BGR2GRAY); cv::Mat fltImg = cv::Mat::zeros(grayImg.rows, grayImg.cols, CV_8UC1); if (m_Rows == 0) { m_Rows = grayImg.rows; m_Cols = grayImg.cols; } edgeDetection(&grayImg, &fltImg); m_GrayImg = grayImg.clone(); m_FinalFltImg = fltImg.clone(); outPutNrOfIms(imgCntDone); setDriveState(setSpeedCnt); checkLaneLost(); setBendCheck(imgCntBendCrossing); setCrossingSearchState(imgCntBendCrossing); checkCrossingPriorityLane(); checkTargetFieldFound(); checkMaxNrOfImgsReached(imgCntDone); } } m_Controller->printString("Stop", me, 1); }
//wraps it all together void FindGoal::finalize() { loadSrc(); cv::Mat blurred = preProcess(src); std::vector<cv::Vec4i> houghLines = edgeDetection(blurred, srcCopy); cv::Vec4i goalCors = shapeValidation(houghLines); graphics(goalCors, srcCopy); }