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

番禺网站开发价格网络营销就业方向和前景

番禺网站开发价格,网络营销就业方向和前景,吉林省建设信息网平台,最新商城系统在上一节,我们实现了桌面捕获功能,并成功把桌面图像和麦克风声音发送给对方。在实际应用中,有时候会需要把桌面与摄像头图像叠加在一起发送,这节课我们就来看下如何实现这一功能。 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.dinnco.com/news/70743.html

相关文章:

  • 做视频网站需要多大空间网站推广途径和要点
  • 房产网站搭建google框架一键安装
  • 网站主机和空间百度seo优化方法
  • wordpress开启缩略图南宁seo主管
  • 做网站的背景怎么调整大小单个药品营销策划方案
  • 扁平化色块风格的网站网站秒收录
  • 作文生成器网站黄山网站建设
  • 广告设计作品seo门户
  • 做高效能的父母网站2023最火的十大新闻
  • 今天的新闻联播直播班级优化大师头像
  • 内网网站如何建设厦门百度快照优化排名
  • 济南网站建设模板苏州网站建设
  • 乐清手机网站设计百度服务中心官网
  • 石家庄营销型网站建设公司小红书推广怎么收费
  • h5视频网站模板seo教学平台
  • 门户网站wordpress哪个比较好百度指数如何提升
  • 缙云做网站软文营销
  • 厦门建设工程招标中心的网站晋江友情链接是什么意思
  • 专门做自助游的网站网站推广的方式有
  • 怎么样建设自己的网站总裁班课程培训
  • 城乡建设厅网站首页网页制作作业100例
  • 应该符合建设网站市场营销计划方案
  • 现在主流网站用什么做的广告策划公司
  • 企业网站建设找外包公司做推广服务公司
  • 沈阳市网站设计制作公司seo查询在线
  • 付款网站源码图片外链
  • 网名设计在线生成器百度关键字优化价格
  • 网站排名如何上升百度热线
  • 怎么修改网站源文件成都网站seo技巧
  • 营销网站建设多钱seo专业课程