一种提高实物展示流畅性的方法及系统的制作方法
【技术领域】
[0001]本发明涉及实物展示技术领域,具体涉及一种提高实物展示流畅性的方法及系统。
【背景技术】
[0002]在通过视频进行实物展示过程中,一般需要通过摄像头或摄像机采集实物的图像信息,然后将实物的图像通过显示设备以视频的方式展示出来。在图像以视频的方式展示过程中,大致包括了帧处理、渲染以及显示三部分。
[0003]帧处理是通过读取摄像头采集的帧数据并转换成开源计算机图像库(OpenSource Computer Vis1nibrary,OpenCV)图像,并将该图像送入每个自定义的过滤器(Filter)中进行处理,过滤器是基于DirectShow创建的组件对象模型(COM),执行一些多媒体流的操作,如绘图、批注等。过滤器的种类有很多,不同种类的过滤器相互连接在一起就形成了过滤器图表。同时,帧处理过程还包括通过开源计算机图像库对视频图像进行的处理包括如视频绘图、视频的旋转、图像的纠偏、图像的自动捕捉与拍照、图像的自动去黑边、剪切等,高效率的实现了视频图像的实时处理。
[0004]在帧处理过程中,为了可以提高数据的处理速度,一般会在在通过dxshow打开摄像头以后创建了一个线程,该线程专门负责读取帧数据并将该帧数据进行过滤器处理,完后调用渲染模块,将经过处理后的图像显示在用户指定的窗口中。但是当用户启动了绘图(或批注等)过滤器后,为了让绘图比较流畅,必须要把渲染的帧率提高起来,这时候就会出现一个现象,渲染(刷新)的帧率大于摄像头本身支持的最大帧率,这个情况下如果还是每一帧数据都从摄像头获取,会拖慢渲染的速度,直接影响了用户体验。
【发明内容】
[0005]针对以上不足,本发明的目的之一在于提供一种提高实物展示流畅性的方法,其通过将渲染的帧数据和通过摄像头获取的帧数据的速率进行分离,刷新较快时帧进行重复使用,可以在界面操作频繁的时候设置较大的渲染速度,让绘图或者批注的操作相对流畅,提供了更好的用户体验。
[0006]本发明的目的是这样实现的:
[0007]—种提高实物展示流畅性的方法,其包括以下步骤:
[0008]步骤1、通过摄像头对实物进行图像扫描,获取所述实物的在前视频图像;
[0009]步骤2、采集所述在前视频图像,并将所述在前视频图像以及采集该在前视频图像的时间存储到存储单元中;
[0010]步骤3、对步骤2中存储到存储单元中的在前视频图像进行帧处理;
[0011]步骤4、将步骤3中帧处理完毕后的在前视频图像经过渲染后进行显示;
[0012]步骤5、在步骤4中,如果渲染该在前视频图像的时间小于一间隔时间,则继续执行步骤3-4,反之,则执行步骤6 ;
[0013]步骤6、对实物进行再次图像扫描,获取所述实物的在后视频图像,并将该在后视频图像执行步骤2-5的操作,所述间隔时间为采集所述在后视频图像的时间与采集在前视频图像的时间之差。
[0014]所述步骤I还包括通过麦克风捕获音频信息,并将所述音频信息经步骤2-4进行处理。
[0015]所述在前视频图像和再后视频图像均为I帧数据。
[0016]帧处理后执行挂起操作,所述间隔时间包括该挂起的时间。
[0017]所述步骤3中,如果在单位时间内从摄像头获取的视频图像帧数大于帧处理的视频图像帧数,则执行丢帧操作,所述丢帧操作为将多余部分不进行帧处理以及渲染而直接释放,所述多余部分为在单位时间内从摄像头获取的视频图像帧与帧处理的视频图像帧相减后的视频图像帧。
[0018]本发明的目的之一在于提供一种提高实物展示流畅性的系统,其通过将渲染的帧数据和通过摄像头获取的帧数据的速率进行分离,刷新较快时帧进行重复使用,可以在界面操作频繁的时候设置较大的渲染速度,让绘图或者批注的操作相对流畅,提供了更好的用户体验。
[0019]本发明的目的是这样实现的:
[0020]一种提高实物展示流畅性的系统,其包括:
[0021]图像扫描单元,用于通过摄像头对实物进行图像扫描,获取所述实物的在前视频图像;
[0022]图像采集和存储单元,用于采集所述在前视频图像,并将所述在前视频图像以及采集该在前视频图像的时间存储到存储单元中;
[0023]帧处理单元,用于对图像采集和存储单元中存储到存储单元中的在前视频图像进行帧处理;
[0024]显示单元,用于将帧处理单元中帧处理完毕后的在前视频图像经过渲染后进行显示;
[0025]比较单元,在显示单元中,如果渲染该在前视频图像的时间小于一间隔时间,则继续执行帧处理单元和显示单元,反之,则执行图像再扫描单元;
[0026]图像再扫描单元,用于对实物进行再次图像扫描,获取所述实物的在后视频图像,并将该在后视频图像依次执行图像采集和存储单元、帧处理单元、显示单元和比较单元的操作,所述间隔时间为采集所述在后视频图像的时间与采集在前视频图像的时间之差。
[0027]所述图像扫描单元还包括音频信息采集单元,用于通过麦克风捕获音频信息,并将所述音频信息经图像采集和存储单元、帧处理单元和显示单元依次进行处理。
[0028]所述在前视频图像和再后视频图像均为I帧数据。
[0029]所述帧处理单元中,帧处理后执行挂起操作,所述间隔时间包括该挂起的时间。
[0030]所述帧处理单元中,如果在单位时间内从摄像头获取的视频图像帧数大于帧处理的视频图像帧数,则执行丢帧操作,所述丢帧操作为将多余部分不进行帧处理以及渲染而直接释放,所述多余部分为在单位时间内从摄像头获取的视频图像帧与帧处理的视频图像帧相减后的视频图像帧。
[0031]与现有技术相比,本发明的有益效果在于:
[0032]1、通过将渲染的帧数据和通过摄像头获取的帧数据的速率进行分离,刷新较快时帧进行重复使用,可以在界面操作频繁的时候设置较大的渲染速度,让绘图或者批注的操作相对流畅,提供了更好的用户体验。
[0033]2、在每次帧处理后执行挂起(通过sle印函数实现)操作,这样既可以降低CPU的使用率,也可以控制帧率。
[0034]3、在人眼分辨不出的情况下,通过适当丢帧的操作,进一步提高流畅度。
【附图说明】
[0035]图1为本发明一种提高实物展示流畅性的方法的流程图。
【具体实施方式】
[0036]下面结合【具体实施方式】对本发明作进一步的说明。
[0037]请参照图1所示,一种提高实物展示流畅性的方法,其大致包括以下步骤:
[0038]步骤1、通过摄像头对实物进行图像扫描,获取所述实物的在前视频图像;
[0039]步骤2、采集所述在前视频图像,并将所述在前视频图像以及采集该在前视频图像的时间存储到存储单元中;
[0040]步骤3、创建帧处理线程;
[0041]步骤4、通过帧处理线程对存储单元中的在前视频图像进行帧处理;
[0042]步骤5、帧处理完毕后,创建一渲染队列和与所述渲染队列对应的渲染队列处理线程,所述渲染队列在内存中建立;
[0043]步骤6、将帧处理后的在前视频图像压入到所述渲染队列中;
[0044]步骤7、通过渲染队列处理线程实时检测所述渲染队列中是否存在在前视频图像,如果存在,则执行步骤8;
[0045]步骤8、通过渲染队列处理线程对该在前视频图像进行渲染后使其显示在用户指定的窗口中;
[0046]步骤9、在步骤8中,如果渲染该在前视频图像的时间小于一间隔时间,则继续执行步骤8,反之,则执行步骤10 ;
[0047]步骤10、对实物进行再次图像扫描,获取所述实物的在后视频图像,并将该在后视频图像依次执行步骤2、4、6、7的操作,所述间隔时间为采集所述在后视频图像的时间与采集在前视频图像的时间之差。
[0048]其中,上述步骤5-7涉及异步渲染技术,为本发明的一种优选方案,下面对各步骤的实现方式及实现过程做一详细描述。
[0049]步骤I涉及图像扫描
[0050]通过摄像头对实物进行图像扫描,获取所述实物的在前视频图像。例如通过CMOS (Complementary Metal Oxie Semiconductor)镜头对待扫描的实物进行图像扫描,也即拍摄,从而获取所述实物的视频图像。同时,根据实际需要,可通过麦克风捕获实物拍摄现场的音频信息,音频信息的处理过程与视频图像的处理过程相似,这里仅以视频图像进行详细的说明。这种拍摄式扫描的方式对扫描实物的介质没有要求,而且可实现对普通平面实物及书籍等立体实物的扫描。将首次扫描获取的实物的视频图像定义为在前视频图像,以与在后扫描获取的视频图像进行区分。
[0051 ] 步骤2涉及图像采集和存储
[0052]采集所述在前视频图像,并将所述在前视频图像以及采集该在前视频图像的时间存储到存储单元中,存储单元为在内存中创建;视频图像通过视频采集卡进行采集,然后再由视频采集过滤器(Video Capture Filter)从视频采集卡中获得视频图像数据流进行解码。解码后的视频图像直接存储到存储单元中,这样帧处理即可直接从存储单元中调取。
[0053]步骤3涉及创建帧处理线程
[0054]为了实现异步渲染,将原本只有一个线程实现帧处理和渲染的过程,分割成由独立的帧处理线程实现帧处理过程以及由独立的渲染队列处理线程实现渲染过程,帧处理过程的帧数据(视频图像,开始为在前视频图像)来自于存储单元,帧处理后的帧数据在储存到渲染队列中,渲染队列处理线程只针对渲染队列中的帧数据进行渲染。创建帧处理线程以及渲染队列处理线程只执行一次,之后的各种操作时忽略这两个步骤。
[0055]步骤4涉及帧处理
[0056]帧处理是通过帧处理线程读取摄像头采集的帧数据并转换成开源计算机图像库(Open Source Computer Vis1nibrary, OpenCV)图像,并将该图像送入每个自定义的过滤器(Filter)中进行处理,过滤器是基于DirectShow创建的组件对象模型(C0M),执行一些多媒体流的操作,如绘图、批注等。过滤器的种类有很多,不同种类的过滤器相互连接在一起就形成了过滤器图表。同时,帧处理过程还包括通过开源计算机图像库对视频图像进行的处理包括如视频绘图、视频的旋转、图像的纠偏、图像的自动捕捉与拍照、图像的自动