Guest User

Untitled

a guest
Aug 8th, 2015
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.04 KB | None | 0 0
  1. Mat Videograbber::getFrameMixedWithAnotherFrame(Mat &frame, Mat &addFrame)
  2. {
  3.     Mat drawing = frame.clone();
  4.     Mat img;
  5.     resize(addFrame,img,Size(drawing.cols,drawing.rows));
  6.  
  7.     Point2f srcTri[3];
  8.     Point2f dstTri[3];
  9.  
  10.     Mat warpMat(2,3,CV_32FC1);
  11.     Mat warpDst;
  12.  
  13.     warpDst = Mat::zeros(img.rows, img.cols, img.type());
  14.  
  15.     //3 punkty do obliczenia macierzy przejścia
  16.     srcTri[0] = Point2f(0,0);
  17.     srcTri[1] = Point2f(img.cols-1,0);
  18.     srcTri[2] = Point2f(0,img.rows-1);
  19.  
  20.     if(!rectangles.empty())
  21.     {
  22.         //biorę pod uwagę pierwszy prostokąt na liście
  23.         dstTri[0] = rectangles.at(0).at(1);
  24.         dstTri[1] = rectangles.at(0).at(2);
  25.         dstTri[2] = rectangles.at(0).at(0);
  26.         //macierz przejścia
  27.         warpMat = getAffineTransform(srcTri,dstTri);
  28.         warpAffine(img,warpDst,warpMat,warpDst.size());
  29.         //wklejenie obrazka w oryginalną klatkę
  30.         Mat result;
  31.         addWeighted(frame,1.0,warpDst,1.0,0,result);
  32.         return result;
  33.     }
  34.     else return frame;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment