当前位置: 首页 > news >正文

番禺网站开发价格seo外链收录

番禺网站开发价格,seo外链收录,彩钢做网站能赚钱吗,做双语网站用什么cms系统好在上一节,我们实现了桌面捕获功能,并成功把桌面图像和麦克风声音发送给对方。在实际应用中,有时候会需要把桌面与摄像头图像叠加在一起发送,这节课我们就来看下如何实现这一功能。 1.备份与修改 备份demo10并修改demo10为demo11…

在上一节,我们实现了桌面捕获功能,并成功把桌面图像和麦克风声音发送给对方。在实际应用中,有时候会需要把桌面与摄像头图像叠加在一起发送,这节课我们就来看下如何实现这一功能。

1.备份与修改

备份demo10并修改demo10为demo11.

2.用新队列存放叠加前的图像数据

修改原函数capCam和capScr,用新的inCamQue和inScrQue存放摄像头和桌面图像Mat:


int fmle::capCam() {videoCap.open(0);cv::Mat camMat;while (true){if (!videoCap.isOpened()){Sleep(1);continue;}BOOL ifSuccess = videoCap.read(camMat);if (camMat.empty()){Sleep(1);continue;}if (camMat.cols != backWidth || camMat.rows != backHeight){resize(camMat, camMat, cv::Size(backWidth, backHeight));}if (!camMat.empty()){			EnterCriticalSection(&videoQueLock);tmpVideoQueObj.type = 1;tmpVideoQueObj.tmpMat = camMat;tmpVideoQueObj.dataLen = camMat.cols*camMat.rows * 3;inCamQue.push(tmpVideoQueObj);if (inCamQue.size() >videoDataArrNum){inCamQue.front().dataLen = 0;inCamQue.front().tmpMat.release();inCamQue.front().dataLen = NULL;inCamQue.pop();}LeaveCriticalSection(&videoQueLock);}Sleep(40);}camMat.release();return 0;
}int fmle::capScr(){HWND hwnd = GetDesktopWindow();cv::Mat scrMat;while (true){scrMat = hwndToMat(hwnd);        if (scrMat.cols != backWidth || scrMat.rows != backHeight){resize(scrMat, scrMat, cv::Size(backWidth, backHeight));}if (scrMat.data&&!scrMat.empty()){        cvtColor(scrMat, scrMat, CV_BGRA2BGR);//mainDlg->drawMatOfPub(scrMat);EnterCriticalSection(&videoQueLock);tmpVideoQueObj.type = 1;tmpVideoQueObj.tmpMat = scrMat;tmpVideoQueObj.dataLen = scrMat.cols*scrMat.rows * 3;inScrQue.push(tmpVideoQueObj);if (inScrQue.size() >videoDataArrNum){inScrQue.front().dataLen = 0;inScrQue.front().tmpMat.release();inScrQue.front().dataLen = NULL;inScrQue.pop();}LeaveCriticalSection(&videoQueLock);}Sleep(40);}scrMat.release();    return 0;
}

3.分别从桌面和摄像头队列取数据并叠加

新建一线程,调用mixVideo实现桌面和摄像头图像的叠加

int fmle::mixVideo(){cv::Mat camMat, scrMat, imageROI;while (true){if (inScrQue.size() > 0 && inCamQue.size() > 0){EnterCriticalSection(&videoQueLock);camMat = inCamQue.front().tmpMat.clone();resize(camMat, camMat, cv::Size(120, 80));scrMat = inScrQue.front().tmpMat.clone();if (!camMat.empty() && !scrMat.empty()){imageROI = scrMat(cv::Rect(0, 0, camMat.cols, camMat.rows));addWeighted(imageROI, 0, camMat, 1, 0.0, imageROI);mainDlg->drawMatOfPub(scrMat);}camMat.release();scrMat.release();imageROI.release();LeaveCriticalSection(&videoQueLock);}Sleep(40);}return 0;
}

4.调试运行

效果如下:

http://www.hrbkazy.com/news/13814.html

相关文章:

  • 做网站需要的资料360营销推广
  • 石家庄做网站哪家好北京搜索引擎推广公司
  • 泉山网站开发南安网站建设
  • 怎么建立类似百度问答的网站正规电商培训学校排名
  • 网站建站华为云小型项目外包网站
  • 网站建设安全性指标百度搜索引擎工作原理
  • 网站新媒体建设新闻最新消息
  • 郴州 网站建设石家庄seo优化
  • 做竞价网站服务器多少钱百度百度一下你就知道
  • 网站开发中 html软文广告发稿
  • 自己做的网站涉黄百度营销推广登录
  • 杭州 网站建设网站长春seo优化
  • 南京市公共建设中心网站营销型网站是什么意思
  • 装修包工头接活网站最新国际新闻事件今天
  • 怎么做网站模块广东今日最新疫情通报
  • 微信小程序论坛seocui cn
  • 建设银行扬中网站厦门网站到首页排名
  • 政府网站建设服务方案权重查询站长工具
  • 企业网站模板建站产品营销推广的方案
  • 17网站一起做网店新塘北京seo网站优化培训
  • vi企业形象设计是什么seo优化关键词分类
  • 公司做网站的发票能抵扣吗手机百度2020
  • 哪个网站有帮忙做公开课课件别做网络推广员
  • 未做301重定向的网站百度公司的企业文化
  • 做网站知名公司什么是网络销售
  • 关闭网站怎么不保存我做的更改国内最好的seo培训
  • 找大学生做网站长沙官网seo技术
  • qq刷赞网站推广软件百度网页版官网
  • 网站开发费属于研发支出吗软文案例大全
  • 公司规划发展计划书seo单词优化