@@ -592,31 +592,28 @@ void StreamlineFeatureExtractor::TrainModel()
592592 /* Create Trainingdata: Go through positive and negative Bundle and save distances as cv::Mat and create vector with labels */
593593 for (int i = 0 ; i < static_cast <int >(m_DistancesPlus.size ()); i++)
594594 {
595- float data_arr[m_DistancesPlus.at (0 ).size ()];
596-
597595 labels_arr_vec.push_back (1 );
598596
597+ cv::Mat curdata (1 , m_DistancesPlus.at (0 ).size (), CV_32F);
599598 for (int j = 0 ; j < static_cast <int >(m_DistancesPlus.at (0 ).cols ()); j++)
600599 {
601- data_arr[j] = m_DistancesPlus.at (i).get (0 , j);
600+ curdata. at < float >( 0 ,j) = m_DistancesPlus.at (i).get (0 , j);
602601 }
603- cv::Mat curdata (1 , m_DistancesPlus.at (0 ).size (), CV_32F, data_arr);
604602 data.push_back (curdata);
605603 size_plus++;
606604 }
607605
608606 for (int i = static_cast <int >(m_DistancesPlus.size ()); i < static_cast <int >(m_DistancesPlus.size () + m_DistancesMinus.size ()); i++)
609607 {
610608 int it = i - size_plus;
611- float data_arr[m_DistancesMinus.at (0 ).size ()];
612609
613610 labels_arr_vec.push_back (0 );
614611
612+ cv::Mat curdata (1 , m_DistancesMinus.at (0 ).size (), CV_32F);
615613 for (int j = 0 ; j < static_cast <int >(m_DistancesMinus.at (0 ).cols ()); j++)
616614 {
617- data_arr[j] = m_DistancesMinus.at (it).get (0 , j);
615+ curdata. at < float >( 0 , j) = m_DistancesMinus.at (it).get (0 , j);
618616 }
619- cv::Mat curdata (1 , m_DistancesPlus.at (0 ).size (), CV_32F, data_arr);
620617 data.push_back (curdata);
621618 }
622619
@@ -695,17 +692,13 @@ std::vector<std::vector<unsigned int>> StreamlineFeatureExtractor::Predict()
695692{
696693 std::vector<std::vector<unsigned int >> index_vec;
697694 /* Create Dataset as cv::Mat*/
698- cv::Mat dataTest;
695+ cv::Mat dataTest (myindex. size (), m_DistancesTest. at ( 0 ). size (), CV_32F) ;
699696 for (unsigned int i = 0 ; i < myindex.size (); i++)
700697 {
701- float data_arr[m_DistancesTest.at (0 ).size ()];
702-
703698 for (unsigned int j = 0 ; j < m_DistancesTest.at (myindex.at (0 )).cols (); j++)
704699 {
705- data_arr[j] = m_DistancesTest.at (myindex.at (i)).get (0 , j);
700+ dataTest. at < float >(i,j) = m_DistancesTest.at (myindex.at (i)).get (0 , j);
706701 }
707- cv::Mat curdata (1 , m_DistancesTest.at (myindex.at (0 )).size (), CV_32F, data_arr);
708- dataTest.push_back (curdata);
709702 }
710703
711704 std::vector<unsigned int > indexPrediction;
@@ -716,7 +709,7 @@ std::vector<std::vector<unsigned int>> StreamlineFeatureExtractor::Predict()
716709 /* For every Sample/Streamline get Prediction and entropy (=based on counts of Random Forest)*/
717710 MITK_INFO << " Predicting on all cores" ;
718711 #pragma omp parallel for
719- for (unsigned int i = 0 ; i < myindex.size (); i++)
712+ for (int i = 0 ; i < static_cast < int >( myindex.size () ); i++)
720713 {
721714 int val = statistic_model->predict (dataTest.row (i));
722715 pred.at (i) = val;
0 commit comments