Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Mat Videograbber::getFrameMixedWithAnotherFrame(Mat &frame, Mat &addFrame)
- {
- Mat drawing = frame.clone();
- Mat img;
- resize(addFrame,img,Size(drawing.cols,drawing.rows));
- Point2f srcTri[3];
- Point2f dstTri[3];
- Mat warpMat(2,3,CV_32FC1);
- Mat warpDst;
- warpDst = Mat::zeros(img.rows, img.cols, img.type());
- //3 punkty do obliczenia macierzy przejścia
- srcTri[0] = Point2f(0,0);
- srcTri[1] = Point2f(img.cols-1,0);
- srcTri[2] = Point2f(0,img.rows-1);
- if(!rectangles.empty())
- {
- //biorę pod uwagę pierwszy prostokąt na liście
- dstTri[0] = rectangles.at(0).at(1);
- dstTri[1] = rectangles.at(0).at(2);
- dstTri[2] = rectangles.at(0).at(0);
- //macierz przejścia
- warpMat = getAffineTransform(srcTri,dstTri);
- warpAffine(img,warpDst,warpMat,warpDst.size());
- //wklejenie obrazka w oryginalną klatkę
- Mat result;
- addWeighted(frame,1.0,warpDst,1.0,0,result);
- return result;
- }
- else return frame;
- }
Advertisement
Add Comment
Please, Sign In to add comment