Advertisement
Guest User

dasdasd

a guest
Oct 26th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.13 KB | None | 0 0
  1. void VD5(){
  2.     for (int img = 0; img < 200; img++)
  3.     {
  4.         std::string name("flow/u");
  5.         if (img < 10){ name += "0000"; }
  6.         else if (img < 100){ name += "000"; }
  7.         else{ name += "00"; }
  8.         name += to_string(img);
  9.         name += ".yml";
  10.  
  11.         FileStorage fs2(name, FileStorage::READ);
  12.         Mat flow;
  13.         fs2["flow"] >> flow;
  14.         int bigger = 5;
  15.         Mat data = Mat(flow.rows, flow.cols, CV_32FC1);
  16.         Mat data2 = Mat::zeros(flow.rows, flow.cols, CV_8UC3);
  17.         Mat lines = Mat::zeros(flow.rows*bigger, flow.cols * bigger, CV_8UC3);
  18.         Mat directions = Mat::zeros(flow.rows, flow.cols, CV_32FC2);
  19.         float max = 0;
  20.         float min = 99;
  21.         float deltat = 0.7f;
  22.  
  23.         for (int r = 0; r < flow.rows; r++)
  24.         {
  25.             for (int c = 0; c < flow.cols; c++)
  26.             {
  27.                 data.at<float>(r, c) = sqrt(SQR(flow.at<cv::Vec2f>(r, c)[1]) + SQR(flow.at<cv::Vec2f>(r, c)[0]));
  28.  
  29.                 if (max < data.at<float>(r, c)){
  30.                     max = data.at<float>(r, c);
  31.                 }
  32.                 if (min > data.at<float>(r, c)){
  33.                     min = data.at<float>(r, c);
  34.                 }
  35.                 //cout << flow.at<cv::Vec2f>(r, c)[0]<< "  " << flow.at<cv::Vec2f>(r, c)[1] << endl;
  36.                 directions.at<cv::Vec2f>(r, c) = Vec2f(r + (flow.at<cv::Vec2f>(r, c)[1] * deltat), c + (flow.at<cv::Vec2f>(r, c)[0] * deltat));
  37.                 data2.at<Vec3b>(r, c) = ColorRamp(data.at<float>(r, c), 0, 6.5, color_scale_ramp, color_scale_ramp_size);
  38.             }
  39.         }
  40.  
  41.         int step = 4;
  42.         for (int r = 0; r < flow.rows; r+=step)
  43.         {
  44.             for (int c = 0; c < flow.cols; c += step)
  45.             {
  46.                 //lines.at<Vec3b>(r * bigger, c * bigger) = ColorRamp(flow.at<cv::Vec2f>(r, c)[0], -2.7, 2.0, color_scale_ramp, color_scale_ramp_size);
  47.                 line(lines,
  48.                     Point(c* bigger, r * bigger),
  49.                     Point(directions.at<cv::Vec2f>(r, c)[1] * bigger, directions.at<cv::Vec2f>(r, c)[0] * bigger),
  50.                     //Scalar(ColorRamp(flow.at<cv::Vec2f>(r, c)[1], -6.7, 1.0, color_scale_ramp, color_scale_ramp_size)),
  51.                     Scalar(ColorRamp(data.at<float>(r, c), 0, 6.5, color_scale_ramp, color_scale_ramp_size)),
  52.                     1);
  53.             }
  54.         }
  55.  
  56.         //cout << max <<"  "<<min<< endl;
  57.  
  58.         resize(data2, data2, Size(500, 500));
  59.         //resize(lines, lines, Size(500, 500));
  60.         imshow("test", data2);
  61.         imshow("lines", lines);
  62.         waitKey(50);
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement