天天看点

MFC+OPENCV实现JPEG图片的播放

用vc6.0进行开发真的有点蛋疼,在实现jpeg图片的播放,vc6.0的picture控件居然只支持位图>_<

开始想法是在程序中加一个编码过程,边读图边解码边显示,先将jpeg图片转化为位图再显示,但代价是在opencv中的自带的函数支持编解码,但要先写下来,所以读写再度时间较长无法满足实时性的要求;

第二种方法是用vtk中带的vtkjpegreader类,在mfc中创建一个vtk的自定义控件,后读入显示,但结果是读入显示太慢,屏幕会一闪一闪的,速度太慢,查资料说要用双缓冲的技术;

后继续找资料,找到了cvvimage的类,这个类功能有点强;

opencv vc6.0的配置直接网上搜吧,这里不在累述

建立一个界面,如图:

MFC+OPENCV实现JPEG图片的播放

简单地包含一个picture的控件和一个按钮控件

设置picture控件的id为:idc_picture

往dlg.c文件中加入opencv的头文件:

在debug运行时还应加入highgui100.dll到目录下

接着对按钮继续消息相应函数的编写:

在mfc的框架下cvwaitkey();这一函数无法延时;

用for(;;)循环也不能进行延时;

经测试sleep()可以进行延时

结果是应该能达到二十多帧,

结果:

MFC+OPENCV实现JPEG图片的播放

双缓冲的技术可能马上就会用到>_<

除非有特殊要求,劲量还是不要用vc6.0

MFC+OPENCV实现JPEG图片的播放

继续阅读