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

做营销网站要多少钱手机logo在线制作 免费

做营销网站要多少钱,手机logo在线制作 免费,wordpress邮件新文章,玉溪企业网站建设公司前段时间做项目需要用opencv读usb摄像头的视频数据#xff0c;遇到很多无解的问题#xff0c;虽然后来没有用到#xff0c;但是还是记录下来#xff0c;也许以后就知道答案了呢。 1、无论摄像头的实际分辨率是多少#xff0c;opencv读进来的视频分辨率都是640*480大小的遇到很多无解的问题虽然后来没有用到但是还是记录下来也许以后就知道答案了呢。 1、无论摄像头的实际分辨率是多少opencv读进来的视频分辨率都是640*480大小的网上说可以用内置的函数修改分辨率的大小我试了下下面的函数语句虽然分辨率确实变成了720p但是清晰度并没有提升甚至有些模糊看起来像是强行插值扯大的没有真正得到清晰度720p的图像。cap.set(CV_CAP_PROP_FRAME_WIDTH, 1280);//不起作用cap.set(CV_CAP_PROP_FRAME_HEIGHT, 720);另外看网上有资料说可以修改opencv的默认值找到了设置640*480的地方在modules/highgui/src/cap_v4l.cpp但是修改之后编译并没有什么变化不知道编译的方式是不是不对。 2、无论摄像头的帧率多少用opencv内置的函数读到的帧率永远是0.double fps cap.get(CV_CAP_PROP_FPS);//帧率总是得到0后来用内置语句对帧率进行设置没有明显的变化但是再次输出时帧率的确是1.也许是显示的原因设置waitkey1000ms就可以真正达到一秒一帧。 cap.set(CV_CAP_PROP_FPS, 1); 3、最大的谜团是关于循环读摄像头最终会内存泄漏这个问题。解决这个问题引申出很多其他问题比如opencv读摄像头的缓存机制抓取和显示的延迟内存的释放等等。刚开始没有考虑释放内存因为觉得Mat图像有自己的释放机制但是往往只读到7-8万帧程序就崩溃了。实际上Mat的析构函数只有在程序退出时才会起作用所以while循环读图时没有调用析构函数需要每用完一帧手动释放一帧也就是加了一句frame.release这样程序可以一直运行只测试了一天一夜。程序如下 int main() {VideoCapture cap(0);if (!cap.isOpened()){return -1;}Mat frame;long currentFrame 0;//计数bool stop false;char image_name[100];//用来存储保存的图片名字while (!stop){cap frame; //存储每一帧图像 if ( !frame.empty()) //注意要判断图像是否为空{//处理这张图..........算法 sprintf(image_name, %d%s, currentFrame, .bmp);//保存的图片名imwrite(image_name, frame);//保存图片imshow(【检测结果】, frame);//视频显示 cout 正在判断的帧数为 currentFrame 判断结果为 正常 endl;}if (waitKey(30) 0)stop true;currentFrame;//帧数1frame.release();}return 0; }我以为这样就能够及时释放内存然而在while里面加了算法的处理程序以后依然会出现动态分配内存空间不足的问题说明已经没有足够连续的内存能用了。当然由于我的算法只能达到1秒一帧不能实时的读取-处理-释放所以想每隔一定的帧数处理一帧但是要考虑帧率和算法的时间等问题也有可能是这个原因导致内存不能及时释放。程序如下 int main() {VideoCapture cap(0);if (!cap.isOpened()){return -1;}Mat frame;Mat edges;long currentFrame 0;//计数int interval 20;//每隔20帧处理一帧,具体间隔可根据算法时间、摄像头帧率、传送带速度配合修改double t 0;bool stop false;char image_name[100];//用来存储保存的图片名字while (!stop){cap frame; //存储每一帧图像 if ( currentFrame % interval 0 !frame.empty()) //每隔50帧且图片不为空时处理这一帧.{//处理这张图..........算法 cvtColor(frame, edges, CV_BGR2GRAY);GaussianBlur(edges, edges, Size(7, 7), 1.5, 1.5);Canny(edges, edges, 0, 30, 3);sprintf(image_name, %d%s, currentFrame, .bmp);//保存的图片名imwrite(image_name, frame);//保存图片imshow(【检测结果】, frame);//视频显示 cout 正在判断的帧数为 currentFrame 判断结果为 正常 endl;}if (waitKey(30) 0)stop true;currentFrame;//帧数1frame.release();}return 0; }看遍了所有的博客都没有找到有效的解决办法后来看到外国论坛上很多人讨论这个问题较多的解决办法是使用多线程一个线程去抓取只保留当前帧另一个线程去处理。多线程在实际中很多地方都用到比如这次公司影音部门的人就提出将一张图划分为4块每块并行处理以加快速度。以后会慢慢去了解这一块。 4、OpenCV读取摄像头会产生一定的滞后目前显示或者处理的图像有可能是之前的图像帧没有找到什么规律去知道到底处理的哪一帧。论坛上有人说相机有一定的缓存机制每次缓存五张图只保存新的一张到硬盘里。帧的缓冲存在于硬件层面无法避免。
http://www.sadfv.cn/news/345393/

相关文章:

  • 红桥集团网站建设沈阳网站建设求职简历
  • 许昌住房建设局的网站提供邯郸网站建设
  • 设计有哪些网站电影推荐网站开发
  • 网络科技有限公司名字推荐wordpress 加速优化
  • 网站建设与管理策划书网站建设可以作为无形资产吗
  • 荆州市建设厅网站新乡最新消息
  • 做游戏网站在哪里找网站构建器
  • 淘宝做问卷的网站wordpress 简介
  • 企业网站建设 推广投资管理公司注册条件和要求
  • 建设网站明细报价表宁波网站推广优化公司电话
  • 加强网站互动交流平台建设自查网页制作费用
  • 如何做彩票网站代理中国打仗最新消息
  • 医药公司网站建设网站开发谢辞
  • 大型门户网站建设效果好吗创建网站的三种方法
  • 男女生做爰视频网站深圳企业招聘信息最新招聘信息
  • 专业微网站建设公司广东 网站建设
  • 网站运营是什么如何看网站空间问题
  • 网站次页沈阳微信网站制作
  • 高端网站建设968阜阳网站建设阜阳
  • 网站改版升级步骤手机网站建设行业现状
  • 做网站需要花多少钱企业网站seo托管怎么做
  • 瑞安哪里有做百度的网站做窗帘网站图片大全
  • 怎样自己做刷赞网站建设局怎么进
  • 创新的南昌网站设计青岛市住房和城乡建设局
  • 漫画网站怎么做阿里云可以做哪些网站吗
  • 做网站 编程语言传奇网页游戏下载
  • 医药类网站怎么做seo设计网站遇到的问题
  • 网站模板广告去除个人主页网址怎么写
  • 苏州网站建设设计公司哪家好开发工具下载
  • 百度网站做防水补漏南山网站公司定