OpenCV显示图像帧率过低

SuperHeroMario 2018-01-03 04:57:37
我编译了一个测试程序,用来从相机的连续模式中获取图像数据并显示出来,图像取出来是正确的,但是帧率很慢,每秒只有5帧左右,把图像显示的代码注释掉之后,帧率提升极大,达到每秒50帧左右,我测试用的库是opencv2.4.9,图像的数据结构是8位1通道,图像尺寸是1920*1080,相机的借口是USB3.0,传输协议用的是libusb-1.0的库,测试用的MacBook,下面是我的测试程序的图像获取和显示部分。
ret = BeginLive(camhandle);
if(ret == SUCCESS)
{
printf("BeginLive success!\n");
//cvNamedWindow("show",1);

while(ret == SUCCESS)
{
while(ret_live == ERROR){
ret_live = GetLiveFrame(camhandle,&w,&h,&bpp,&channels,ImgData);
}
//image = cvCreateImage(cvSize(w,h),bpp,channels);
//image->imageData = (char *)ImgData;

//cvShowImage("show",image);
//cvWaitKey(1);
ret_live = ERROR;
fps++;

t_end = time(NULL);
if(t_end - t_start >= 1){
t_num ++;
if(t_num % 5 == 0){
printf("Time pass:%3d | Frame rate:%5.1f\n",t_num,(float)fps/5);
fps = 0;
}else
printf("Time pass:%3d | bpp = %d channels = %d\n",t_num,bpp,channels);
t_start = time(NULL);
}

if(t_num >= 120)
{
//break;
ret = ERROR;
}
}

//cvDestroyWindow("show");
//cvReleaseImage(&image);
}
...全文
2270 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxwalkman 2019-12-19
  • 打赏
  • 举报
回复
我也遇到了,但我把mbp连到1080p显示器时帧率正常,直接在自带屏幕上显示帧率很低,同一个代码,所以我感觉是视网膜屏进行了缩放的原因。
SuperHeroMario 2018-01-05
  • 打赏
  • 举报
回复
引用 1 楼 u011258240 的回复:
waitKey(40);
谢谢,不过没效果,和原来一样
大大的道道的 2018-01-04
  • 打赏
  • 举报
回复
waitKey(40);

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧