opencv3/C++视频中叠加透明图片的实现-创新互联

如下所示:

成都创新互联是一家集网站建设,祁阳企业网站建设,祁阳品牌网站建设,网站定制,祁阳网站建设报价,网络营销,网络优化,祁阳网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

大致思路:获取摄像头画面后,通过在图像上循环叠加一组背景透明的PNG图片,在图像上产生类似GIF的动图效果。

#include
using namespace cv;

//PNG透明图片叠加到视频
int main()
{
  Mat frame;
  VideoCapture capture;
  capture.open(0);
  if(!capture.isOpened())
  {
    printf("can not open the camear......\n");
    return -1;
  }
  namedWindow("mask", CV_WINDOW_AUTOSIZE);
  namedWindow("output", CV_WINDOW_AUTOSIZE);
  while (capture.read(frame))
  {
    //翻转摄像头图像
    flip(frame, frame, 1);
    Mat image = frame;   
    for (int i = 1; i < 11; i++)
    {
      char filename[100];
      sprintf(filename,"E:/image/image/00/%d.PNG",i);
      //灰度图
      Mat grayPng = imread(filename,0);      
      threshold(grayPng,grayPng,180,255,CV_THRESH_BINARY);
      //掩模反色
      Mat mask = 255 - grayPng; 
      imshow("mask",mask);
      //读取背景透明的PNG图像
      Mat png = imread(filename);
      Mat imROI;
      imROI = image(Rect(200,20,png.cols,png.rows));
      png.copyTo(imROI,mask);
      imshow("output",image);
      //替换新图
      image = frame;
      waitKey(10);
    }

  }
  waitKey();

  return 0;
}

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享题目:opencv3/C++视频中叠加透明图片的实现-创新互联
转载注明:http://pwwzsj.com/article/cejdjs.html