首页| 论坛| 消息

标题:QT+工业相机
作者:jffx
日期:2016-09-08 10:31
内容:

各位大虾,本人用QT+工业网口相机播放视频,用相机获取到图像后再QLabel播放,但是很卡顿,因为之前没做过类似的,不知道如何下手,我是用信号槽来传送图像的,参数是一个QImage对象(不知道是否是这个原因导致它很卡顿),,我听别人说用共享内存来做,但是不太清楚大概是怎样的流程。以下是主要的代码片段。
int width = 659;
int height =494;
int w_8=(659*8+31)/32*4; //
QSize colourImgSize2(660,494);
QVector grayTable;
for(int i = 0; i < 256; i++)
grayTable.push_back(qRgb(i,i,i));
QImage desImage = QImage(colourImgSize2, QImage::Format_Indexed8);
uchar*transData=desImage.bits();
while ( camera.IsGrabbing())
{
// Wait for an image and then retrieve it. A timeout of 5000 ms is used.
camera.RetrieveResult( 5000, ptrGrabResult, TimeoutHandling_ThrowException);
printf("Grabbing\n");
..


#1 [cycloveu 09-08 10:39]
嗯很好
#2 [liudianwu 09-08 10:58]
请发布到提问区,这里是作品展。建议你用多线程,在线程中update,每秒钟更新超过几十张必须要用多线程,否则卡顿!
#3 [never_forget 09-08 12:54]
共享内存 QT 有系统实现,用起来还是挺简单的,把图片存入共享内存,另一端也同时只读访问,应该就是这样的流程,【PS:如果共享内存能加速的话】楼主加油!
#4 回 liudianwu 的帖子 [jffx 09-08 14:41]
liudianwu:请发布到提问区,这里是作品展。建议你用多线程,在线程中update,每秒钟更新超过几十张必须要用多线程,否则卡顿! (2016-09-08 10:58) 
不好意思,新人没注意到,,谢谢提醒
#5 [yanwuyue 09-09 09:51]
工业相机的帧率一般都很高,我都是隔几帧刷一次,算好频率在30FPS左右,反正对肉眼也没什么区别

<< 1 2 >> (1/2)

回复 发表
主题 版块