一种保持图像不偏转方法、装置及可视耳勺与流程

文档序号:32819697发布日期:2023-01-04 05:05阅读:70来源:国知局
一种保持图像不偏转方法、装置及可视耳勺与流程

1.本技术涉及可视技术领域,特别是涉及一种保持图像不偏转方法、装置及可视耳勺。
2.

背景技术:

3.可视耳勺包括耳镜和耳勺本体,耳镜主要用于观察耳朵,使用时需要将耳镜采集到的图像传输(一般是通过无线,也可以是有线)到app端(也可以是其他设备端)显示。而用户在使用时,经常会旋转耳勺本体,由于耳镜和耳勺本体通常是一体式设计,旋转耳勺本体的过程中必然也会带动耳镜旋转,如果不做任何处理,app端上的图像也会随着旋转,容易让用户分不清当前应该往哪个方向运动,这种情况会给用户造成不便,从而降低用户的体验感。
4.相关技术中的处理方式是在耳勺本体上安装一个加速度传感器g-sensor,当用户在水平方向旋转耳勺本体时,能够给app端一个旋转角度的数据。app端接收到旋转角度的数据会将图像进行处理,以保持app端上图像的不偏转。
5.针对上述中的相关技术,发明人认为增加g-sensor会导致成本增加,另外,由于g-sensor本身的特性,稳定性和可靠性并不高。


技术实现要素:

6.为了节约生产成本,并提升用户体验,本技术提供一种保持图像不偏转方法、装置及可视耳勺。
7.第一方面,本技术提供一种保持图像不偏转方法,采用如下的技术方案:一种保持图像不偏转方法,包括:接收原始视频流;按照预设模式对所述原始视频流按时序抽取关键帧图像,并进行转化处理;按照预设模式追踪对比所述转化处理后的关键帧图像之间的图像特征值,以计算求得图像位移和偏转角度;根据所述图像位移和偏转角度,按照所述预设模式对预设的关键帧图像进行仿射变换以保持图像不偏转;其中,所述预设模式包括单帧模式、平滑模式或混合模式。
8.可选的,所述单帧模式包括:从预设的初始帧开始,每间隔n帧抽取一关键帧图像,并将当前抽取的关键帧图像与前一抽取的关键帧图像进行追踪对比,将追踪对比结果应用于当前抽取帧与下一待抽取帧之间的所有关键帧图像上;其中,n为正整数。
9.可选的,所述平滑模式包括:从预设的初始帧开始,以m帧为周期,将当前m帧中的每一关键帧图像分别与各自的前一关键帧图像进行追踪对比,将每一追踪对比结果做平均后,应用于下一m帧内的所有关键帧图像上;其中,m为正整数。
10.可选的,所述混合模式包括:从预设的初始帧开始,以p+q帧为周期;将当前p+q帧中第p帧的关键帧图像与上一p+q帧中最后一帧的关键帧图像进行追踪对比;将当前p+q帧中第p+1帧至第p+q帧的每一关键帧图像分别与各自的前一关键帧图像进行追踪对比;将每一追踪对比结果做平均后,应用于下一p+q帧中的所有关键帧图像上;其中,p和q均为正整数。
11.可选的,所述转化处理具体包括:将所述关键帧图像数据转换为矩阵;在所述矩阵中进行角点检测;根据所述角点检测的结果,计算出前后两帧图像的光流。
12.可选的,所述将所述关键帧图像数据转换为矩阵具体包括:将所述关键帧图像数据转换为向量;将所述向量转换为矩阵;将所述矩阵由彩色矩阵转换为灰度矩阵。
13.可选的,所述仿射变换具体包括:指定要旋转的图像矩阵及旋转角度,其中,所述旋转角度是由预设的初始帧开始计算的所有偏转角度累加获得;将所述要旋转的图像矩阵的中心点标注为要旋转的图像中心;给输出矩阵分配内存空间;根据所述图像位移和旋转角度,遍历所述要旋转的图像矩阵的每个横纵坐标,获得所述输出矩阵;将所述输出矩阵转换为彩色输出矩阵;将所述彩色输出矩阵通过图像编码转换为彩色输出图片。
14.可选的,所述将所述彩色输出矩阵通过图像编码转换为彩色输出图片之后还包括:对每个获得的所述彩色输出图片进行渲染;将经过渲染后的所述彩色输出图片发送并显示。
15.可选的,所述计算出前后两帧图像的光流具体包括:采用金字塔lucas-kanade算法计算出前后两帧图像的光流。
16.可选的,所述图像位移和偏转角度的计算方法包括:计算两个2d点集之间的仿射变换参数;根据所述仿射变换参数,分别获取仿射变换后矩阵第0行第2列的值dx和第1行第2列的值dy,所述dx为所述图像位移在x轴方向的分量,所述dy为所述图像位移在y轴方向的分量;计算仿射变换后矩阵第1行第0列的值和第0行第0列的值之间的反正切值,以求得所述偏转角度。
17.可选的,当求得的所述偏转角度在预设角度区间之外时,取所述偏转角度为0。
18.第二方面,本技术还提供一种保持图像不偏转装置,采用如下的技术方案:一种保持图像不偏转装置,包括:存储器,用于存储原始视频流、关键帧图像和保持图像不偏转程序;处理器,在运行所述保持图像不偏转程序时执行上述保持图像不偏转方法的步骤。
19.第三方面,本技术还提供一种可视耳勺,采用如下的技术方案:一种可视耳勺,包括:耳勺本体;耳镜,一体式设置于所述耳勺本体上,用于采集耳朵内的画面;显示装置,用于显示耳朵内的画面;上述的保持图像不偏转装置,输入端连接所述耳镜,输出端连接所述显示装置。
20.综上所述,本技术在无须增加硬件的情况下,降低了产品的制作难度,通过软件算法,能够低成本、高效率地处理图像,同时,保留了原图像信息,并且能够保持图像不偏转,满足了可视耳镜稳定输出视频的需求,能够获得较好的视频观看体验,从而提升用户使用体验。
附图说明
21.图1为本技术保持图像不偏转装置结构示意图;图2为本技术保持图像不偏转方法流程示意图;图3为本技术仿射变换参数的2
×
3阶矩阵示意图。
具体实施方式
22.相关技术中,为了保持图像不偏转,在耳勺本体上安置一个加速度传感器g-sensor,当用户在水平方向旋转耳勺本体时,能够给app端一个旋转角度的数据。app端接收到旋转角度的数据会将图像进行处理,以保持app端上图像的不偏转。
23.但是,在耳勺本体上添加一个g-sensor会增加硬件成本,如果去掉这颗g-sensor,相应的成本就会降低20-30%。
24.而且,由于g-sensor存在噪声,那么意味着即使耳勺本体静止不动,app端的图像也会产生抖动,由于耳镜视频是个实时系统,很多算法不好应用,难以兼顾静止时图像的抖动以及运动时的及时响应速度之间的统一。
25.此外,为了节约成本,有些采用的是二轴的g-sensor,当耳勺本体不是水平放置时,得到的偏移角度就会有误差,在极限情况下,如果将耳勺本体垂直放置,g-sensor将彻底无效。
26.下面结合说明书附图对本技术可视耳勺的实施例作详细描述,但该实施例不应理解为对本技术的限制。
27.如图1所示,本技术实施例提供一种可视耳勺,所述可视耳勺包括耳勺本体、一体式设置于所述耳勺本体上的耳镜、显示装置和保持图像不偏转装置;所述保持图像不偏转装置集成有存储器和处理器,输入端连接所述耳镜,输出端连接所述显示装置。
28.所述耳镜用于对耳朵内的画面进行拍摄,并获取视频流以供所述处理器进行处
理;所述显示装置用于显示经过所述处理器处理后的耳朵内的画面;所述存储器用于存储原始视频流、关键帧图像和保持图像不偏转程序,其中,原始视频流、原始关键帧图像、处理后的视频流或处理后的关键帧图像均可以选择性地进行存储保存;所述处理器在运行所述保持图像不偏转程序时执行以下保持图像不偏转方法的步骤。
29.可以理解的是,所述保持图像不偏转装置和显示装置可以由手机端代替,即利用手机端上的处理器、存储器和显示屏等硬件通过软件实现相应的功能,也可以是采用平板、电脑等其他设备来实现。为了描述方便,以下以手机端作为实施例进行说明。
30.下面结合可视耳勺对保持图像不偏转方法的实施例作进一步的详细说明。
31.如图2所示,本技术实施例提供一种保持图像不偏转方法,包括:s10:接收原始视频流;这里的原始视频流指的是通过耳镜等图像传感器对目标(例如耳道)进行拍摄而获取的视频流,可以是mjpeg、raw data、mpeg1-4、wmv、rmvb、flv等格式,本技术并不以此为限。
32.需要说明的是,在本实施例中,耳镜一体式设置于耳勺本体上,而耳镜对目标进行拍摄获取的视频流需要传输(一般是通过无线,也可以是有线)给手机端进行处理和显示,因此,耳镜还需通过有线连接到手机端,或者通过无线模块(例如蓝牙、wifi等)连接手机端,所属领域的技术人员可以清楚地了解到,在此不再赘述。
33.s20:按照预设模式对所述原始视频流按时序抽取关键帧图像,并进行转化处理;所述预设模式包括单帧模式、平滑模式或混合模式,可以理解的是,在不同的预设模式下,抽取关键帧图像的方式不一样,而选择哪种预设模式,可以由使用者事先选择并预设好,也可以在使用过程中根据实际效果做出更改,当预设模式更改后,后续的视频流则按照最新选择的预设模式进行处理即可。
34.s30:按照预设模式追踪对比所述转化处理后的关键帧图像之间的图像特征值,以计算求得图像位移和偏转角度;可以理解的是,在不同的预设模式下,所需要对比的关键帧图像是不同的,当上一步骤中选择好预设模式时,该步骤中只需按照对应预设模式设定好的对比规则执行即可。
35.其中,按照预设模式追踪对比所述转化处理后的关键帧图像之间的图像特征值,从而获得追踪对比结果,该追踪对比结果包括图像位移和偏转角度da,且图像位移包括图像位移在x轴方向的分量dx以及图像位移在y轴方向的分量dy。
36.s40:根据所述图像位移和偏转角度,按照所述预设模式对预设的关键帧图像进行仿射变换以保持图像不偏转。
37.所述单帧模式包括:从预设的初始帧开始,每间隔n帧抽取一关键帧图像,并将当前抽取的关键帧图像与前一抽取的关键帧图像进行追踪对比,将追踪对比结果应用于当前抽取帧与下一待抽取帧(包括该待抽取帧)之间的所有关键帧图像上;其中,n为正整数。可以理解的是,在单帧模式中,上述预设的关键帧图像指的就是当前抽取帧与下一待抽取帧(包括该待抽取帧)之间的所有关键帧图像。需要说明的是,所述预设的初始帧也需要抽取,并且,该预设的初始帧无需进行处理,可以直接用于手机端进行显示。
38.在本实施例中,为了方便说明单帧模式,假设预设的初始帧为0且n=5,则从第0帧开始,每间隔5帧抽取一关键帧图像,即抽取第0帧、第5帧、第10帧、第15帧
……
关键帧图像,
并且,将第5帧与第0帧的关键帧图像进行追踪对比,将追踪对比结果应用于第5帧与第10帧之间(即第6帧、第7帧、第8帧、第9帧、第10帧)的所有关键帧图像上,将第10帧与第5帧的关键帧图像进行追踪对比,将追踪对比结果应用于第10帧与第15帧之间(即第11帧、第12帧、第13帧、第14帧、第15帧)的所有关键帧图像上,以此类推。
39.可以理解的是,在单帧模式中,采用单帧对比和单独应用方式,n的取值大小能够直接影响显示效果。例如,当n取1时,则表示将视频流中的每一关键帧图像均进行追踪对比,这种情况下的显示效果最好,但所需要的算力也是最高的,在手机端算力有限的情况下,可能会造成计算时间过长,出现junk(废弃)帧,从而造成视频卡顿;而当n取值越大时,所需要的算力越低,但是越容易出现偏转抖动,显示效果越低。因此,在单帧模式下,可以结合手机端算力选定适合的n值,从而获得较好的显示效果。
40.所述平滑模式包括:从预设的初始帧开始,以m帧为周期,将当前m帧(包括第m帧)中的每一关键帧图像分别与各自的前一关键帧图像进行追踪对比,将每一追踪对比结果做平均(例如加权平均)后,应用于下一m帧内的所有关键帧图像上;其中,m为正整数。可以理解的是,在平滑模式中,上述预设的关键帧图像指的就是下一m帧内的所有关键帧图像。需要说明的是,所述预设的初始帧也需要抽取,并且,该预设的初始帧无需进行处理,可以直接用于手机端进行显示。
41.在本实施例中,为了方便说明平滑模式,假设预设的初始帧为0且m=3,则从第0帧开始,以3帧为周期,将当前3帧(即第1帧、第2帧和第3帧)中的每一关键帧图像分别与各自的前一关键帧图像进行追踪对比,即:分别将第1帧与第0帧进行追踪对比获得e1,将第2帧与第1帧进行追踪对比获得e2,将第3帧与第2帧进行追踪对比获得e3,并且将e1、e2和e3做平均(例如加权平均)后,应用于下一3帧(即第4帧、第5帧和第6帧)关键帧图像上;然后分别将第4帧与第3帧进行追踪对比获得e4,将第5帧与第4帧进行追踪对比获得e5,将第6帧与第5帧进行追踪对比获得e6,并且将e4、e5和e6做平均(例如加权平均)后,应用于下一3帧(即第7帧、第8帧和第9帧)关键帧图像上,以此类推。
42.可以理解的是,在平滑模式中,采用多帧对比和平均值应用方式,相对于单帧模式,能够明显减少算力,但是计算粒度比较粗,显示效果没有单帧模式好。
43.作为本技术一实施方式,所述混合模式包括:从预设的初始帧开始,以p+q帧为周期;将当前p+q帧中第p帧的关键帧图像与上一p+q帧中最后一帧的关键帧图像进行追踪对比,其中,当第一次抽取p+q帧时,所述上一p+q帧中最后一帧对应为所述预设的初始帧;将当前p+q帧中第p+1帧至第p+q帧(包括第p+1帧和第p+q帧)的每一关键帧图像分别与各自的前一关键帧图像进行追踪对比;将每一追踪对比结果做平均(例如加权平均)后,应用于下一p+q帧中的所有关键帧图像上;其中,p和q均为正整数。可以理解的是,在混合模式中,上述预设的关键帧图像指的就是下一p+q帧中的所有关键帧图像。需要说明的是,所述预设的初始帧也需要抽取,并且,该预设的初始帧无需进行处理,可以直接用于手机端进行显示。
44.在本实施例中,为了方便说明混合模式,假设预设的初始帧为0且p=3、q=6,则从第
0帧开始,在第一个9帧(即第1帧至第9帧)内,将第3帧的关键帧图像与第0帧的关键帧图像进行追踪对比获得f1,将第4帧的关键帧图像与第3帧的关键帧图像进行追踪对比获得f2,将第5帧的关键帧图像与第4帧的关键帧图像进行追踪对比获得f3
……
将第9帧的关键帧图像与第8帧的关键帧图像进行追踪对比获得f7,并且将f1、f2、f3
……
f7做平均(例如加权平均)后,应用于第二个9帧(即第10帧至第18帧)的所有关键帧图像上;在第二个9帧(即第10帧至第18帧)内,将第12帧的关键帧图像与第9帧的关键帧图像进行追踪对比获得f11,将第13帧的关键帧图像与第12帧的关键帧图像进行追踪对比获得f12,将第14帧的关键帧图像与第13帧的关键帧图像进行追踪对比获得f13
……
将第18帧的关键帧图像与第17帧的关键帧图像进行追踪对比获得f17,并且将f11、f12、f13
……
f17做平均(例如加权平均)后,应用于第三个9帧(即第19帧至第27帧)的所有关键帧图像上,以此类推。
45.作为本技术另一实施方式,所述混合模式包括:从预设的初始帧开始,以p+q帧为周期;将当前p+q帧中第p帧的关键帧图像与上一p+q帧中最后一帧的关键帧图像进行追踪对比,并将追踪对比结果应用于下一p+q帧中前p帧的所有关键帧图像上,其中,当第一次抽取p+q帧时,所述上一p+q帧中最后一帧对应为所述预设的初始帧;将当前p+q帧中第p+1帧至第p+q帧(包括第p+1帧和第p+q帧)的每一关键帧图像分别与各自的前一帧关键帧图像进行追踪对比,并将每一追踪对比结果做平均(例如加权平均)后,应用于下一p+q帧中后q帧的所有关键帧图像上;其中,p和q均为正整数。可以理解的是,在混合模式中,上述预设的关键帧图像指的就是下一p+q帧中的所有关键帧图像。需要说明的是,所述预设的初始帧也需要抽取,并且,该预设的初始帧无需进行处理,可以直接用于手机端进行显示。
46.在本实施例中,为了方便说明混合模式,假设预设的初始帧为0且p=3、q=6,则从第0帧开始,在第一个9帧(即第1帧至第9帧)内,将第3帧的关键帧图像与第0帧的关键帧图像进行追踪对比获得g1,并将追踪对比结果g1应用于第二个9帧中前3帧(即第10帧、第11帧和第12帧)的所有关键帧图像上,将第4帧的关键帧图像与第3帧的关键帧图像进行追踪对比获得g2,将第5帧的关键帧图像与第4帧的关键帧图像进行追踪对比获得g3
……
将第9帧的关键帧图像与第8帧的关键帧图像进行追踪对比获得g7,并且将g2、g3
……
g7做平均(例如加权平均)后,应用于第二个9帧中后6帧(即第13帧至第18帧)的所有关键帧图像上;在第二个9帧(即第10帧至第18帧)内,将第12帧的关键帧图像与第9帧的关键帧图像进行追踪对比获得g11,并将追踪对比结果g11应用于第三个9帧中前3帧(即第19帧、第20帧和第21帧)的所有关键帧图像上,将第13帧的关键帧图像与第12帧的关键帧图像进行追踪对比获得g12,将第14帧的关键帧图像与第13帧的关键帧图像进行追踪对比获得g13
……
将第18帧的关键帧图像与第17帧的关键帧图像进行追踪对比获得g17,并且将g12、g13
……
g17做平均(例如加权平均)后,应用于第三个9帧中后6帧(即第22帧至第27帧)的所有关键帧图像上,以此类推。
47.可以理解的是,单帧模式的单帧对比和单独应用方式能够得到更好的显示效果,但是需要较高算力;平滑模式的多帧对比和平均值应用方式能够明显减少算力,但是显示效果较差;而结合单帧模式和平滑模式优点的混合模式,更容易取得算力和显示效果之间的平衡,因此,在实际应用中,为了适应不同算力的手机端,采用混合模式能够更好地调整
算力和显示效果的平衡。
48.可以理解的是,在上述加权平均中,可以根据经验或标准对每一追踪对比结果进行权重分配,所属领域的技术人员可以清楚地了解到加权平均的计算方式,在此不再赘述。
49.具体来说,在步骤s20中,所述转化处理具体包括:s21:将所述关键帧图像数据转换为矩阵;在本技术实施例中,可以将关键帧图像数据按原格式尺寸转换为矩阵,由于使用矩阵无需手动分配内存,对于不再使用的内存,也无需进行释放,因此,在任何时候都只用到执行任务所需要的内存,而无需进行额外的操作,使用过程方便快捷。
50.具体来说,所述步骤s21具体包括:s211:将所述关键帧图像数据转换为向量;在该步骤中,可以为每个关键帧图像数据分配一个向量,该向量封装了动态大小数组的顺序容器。
51.s212:采用解码内存数据工具将所述向量转换为矩阵;在该步骤中,可以使用imdecode等解码内存数据工具来解码内存数据,将向量转换为矩阵,转换标准可以是imread_unchanged返回原始图像,这个矩阵包含了图像的所有信息,以便于更完整地保存源图像的数据,同时也便于后续计算。
52.s213:采用色彩空间转换工具将所述矩阵由彩色矩阵转换为灰度矩阵。
53.在该步骤中,可以采用cvtcolor进行色彩空间转换,最终转换为color_bgr2gray灰度矩阵,使用cvtcolor在转换的过程中能够保证数据的类型不变,即转换后的图像的数据类型和位深与源图像一致,而灰度矩阵使用单一色调来表示图像,转换后可以有效减小图像数据量。
54.s22:在所述矩阵中进行角点检测;在本技术实施例中,将处理过的灰度矩阵图像数据按照特定标准进行goodfeaturestotrack角点检测,从而获取到精确的图像特征值;上述特定标准可以采用harris角点检测,也可以采用shi tomasi算法的角点检测,检测到的角点依然是像素级别的。
55.s23:根据所述角点检测的结果,计算出前后两帧图像的光流。
56.在本技术实施例中,可以借助calcopticalflowpyrlk计算出前后两帧图像的光流,这里的光流计算可以使用具有金字塔的迭代lucas-kanade算法计算稀疏特征集的光流。
57.可以理解的是,上述前后两帧图像指的并非是原始视频流在时序上相邻的前后两帧图像,而是指根据上述预设模式抽取的所有关键帧图像在时序上相邻的前后两帧图像。
58.每当耳镜发生移动或是旋转,采集到的视频流就会发生同样的移动或是旋转,需要追踪关键帧图像中的特征值以求得后面关键帧图像相对于前面关键帧图像追踪对比结果,该追踪对比结果包括图像位移和偏转角度da,所述图像位移包括图像位移在x轴方向的分量dx以及图像位移在y轴方向的分量dy。
59.在本技术实施例中,所述步骤s30中,图像位移和偏转角度的计算方法包括:s31:计算两个2d点集之间的仿射变换参数;在该步骤中,可以使用estimateaffine2d来计算两个 2d 点集之间的仿射变换参
数。
60.如图3所示,在本技术实施例中,采集到的该仿射变换参数可以采用一个2
×
3阶矩阵来表示,其中,(0,0)表示第0行第0列对应的值,(0,1)表示第0行第1列对应的值,(0,2)表示第0行第2列对应的值,(1,0)表示第1行第0列对应的值,(1,1)表示第1行第1列对应的值,(1,2)表示第1行第2列对应的值。
61.s32:根据所述仿射变换参数,继续参照图3,获取仿射变换后2
×
3阶矩阵第0行第2列(0,2)的值作为图像位移在x轴方向的分量dx,获取仿射变换后2
×
3阶矩阵第1行第2列(1,2)的值作为图像位移在y轴方向的分量dy;计算仿射变换后2
×
3阶矩阵第1行第0列(1,0)的值和第0行第0列(0,0)的值之间的反正切值作为所述偏转角度da,需要说明的是,以2
×
3阶矩阵第1行第0列(1,0)的值和第0行第0列(0,0)的值,求该两个值之间的反正切值以便求得该两个值之间的反正切值,所属领域的技术人员可以清楚地了解到,在此不再赘述。
62.需要注意的是,在该步骤中,由于采集误差的存在,有可能使求得的反正切值也出现错误,从而获得错误的偏转角度,如果按照错误的偏转角度对图像进行纠正,就会使得输出结果也出现错误,因此,当求得的偏转角度可能存在错误时,丢弃该错误的偏转角度,具体实现方式为,当求得的偏转角度在预设角度区间之外时,取偏转角度为0,其中,预设角度区间的具体取值可以固定设置,也可以根据当前的采集帧率进行设置。
63.举例来说,在本实施例中,初始时,固定设置预设角度区间为[-1/3π,1/3π],当偏转角度大于1/3π或小于-1/3π时,取偏转角度为0,即:使得当前图像不做偏转,从而丢弃该错误的偏转角度,且对后续的步骤不造成更多的影响。另外,还可以根据当前的采集帧率对所述预设角度区间进行调整,具体实现方式为:若当前的采集帧率大于预设采集帧率,则将所述预设角度区间缩小,若当前的采集帧率小于预设采集帧率,则将所述预设角度区间增大,其中,所述预设角度区间缩小或增大的幅度由当前的采集帧率与预设采集帧率之间的差值决定,差值越大,缩小或增大的幅度越大。举例来说,初始时,固定设置预设角度区间为[-1/3π,1/3π],固定设置预设采集帧率为25;若当前的采集帧率为30,则将所述预设角度区间缩小为[-1/6π,1/6π],若当前的采集帧率为20,则将所述预设角度区间增大为[-1/2π,1/2π]。
[0064]
在本技术实施例中,在步骤s40中,所述仿射变换具体包括:s41:指定要旋转的图像矩阵及旋转角度,其中,所述旋转角度是由预设的初始帧开始计算的所有偏转角度累加获得;具体来说,要旋转的图像矩阵指的就是当前需要处理的图像矩阵,由于偏转角度表示的是抽取的前后两帧关键帧图像之间的偏转,而当前需要处理的图像矩阵需要旋转的角度则应该是与预设的初始帧的关键帧图像进行比较,因此,旋转角度是从预设的初始帧开始计算的所有偏转角度累加获得。
[0065]
s42:将所述要旋转的图像矩阵的中心点标注为要旋转的图像中心;具体来说,就是将当前需要处理的图像矩阵的图像长的二分之一与宽的二分之一交叉处标注为要旋转的图像中心。
[0066]
s43:给输出矩阵分配内存空间;
具体来说,可以按照原图像尺寸及类型给输出矩阵分配内存空间。
[0067]
s44:根据所述图像位移和旋转角度,遍历所述要旋转的图像矩阵的每个横纵坐标,获得所述输出矩阵;具体来说,遍历所述要旋转的图像矩阵的每个横纵坐标,就是把原图像矩阵的每个坐标进行位移变换,将原始视频流里旋转后的图像按图像位移和旋转角度旋转回预设的初始帧的角度,以消除位移和偏转对图像的影响,使显示出的图像稳定在相同视角,这样即使耳勺设备发生旋转,但是通过处理后,视频图像是会保持在同一角度的。
[0068]
可以理解的是,由于最后输出的图像是以原图像中心旋转并且保持图像尺寸不变,所以变换后的输出矩阵中没有位于重合点上的像素可以进行黑色填充。
[0069]
s45:将所述输出矩阵转换为彩色输出矩阵;在本技术实施例中,可以采用函数vec3b(0, 0, 0)将所述输出矩阵转换为彩色输出矩阵。
[0070]
s46:将所述彩色输出矩阵通过图像编码转换为彩色输出图片。
[0071]
旋转后输出的数据也是个矩阵,需要将彩色输出矩阵数据通过图像编码imencode转换为彩色输出图片。
[0072]
在本技术实施例中,将所述彩色输出矩阵通过图像编码转换为彩色输出图片之后还包括:对每个获得的所述彩色输出图片进行渲染;将经过渲染后的所述彩色输出图片发送并显示。
[0073]
可以理解的是,将处理好的连续的彩色输出图片不断切换实时或缓存之后显示在手机端的app页面中,在用户视角就是实时显示耳镜不偏转图像的视频。其中,实时显示指的是,所有的处理结果立即应用到当前帧的关键帧图像上并实时显示;缓存之后显示指的是,缓存多帧,经过上述方法计算了这些帧的偏转角度,并且应用了偏转角度处理后再将该多帧关键帧图像回放到手机端。
[0074]
经过旋转处理后的图像边缘处会留有部分黑色区域,为了提升用户体验,可以对图像进行切割显示,最终在手机端的app上显示为正圆图像,具体来说,可以以图像中心为原点,最小边为直径,截取一个正圆图像,这样就能显示出完整且没有黑边的图像,其中,最小边指的是原点到黑色填充的最小距离,另一方面,该最小边也可以根据经验进行人为预先设定。而且,在显示的同时还可以保存图像,保存的图像可以是未经处理的原始视频或图像,也可以是处理后的视频或图像。
[0075]
基于上述同一发明构思,本技术实施例提供一种计算机可读存储介质,包括能够被处理器加载执行时实现保持图像不偏转方法流程中所述的各个步骤。
[0076]
所述计算机可读存储介质例如包括:u盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
[0077]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0078]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以
通过其他的方式实现。所述集成的单元如果以软件功能单元的形式实现并作为单独的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备或处理器执行本技术各个实施例所述方法的全部或部分步骤。
[0079]
以上实施例仅用以对本技术的技术方案进行详细介绍,但以上实施例的说明只是用于帮助理解本技术的方法及其核心思想,不应理解为对本技术的限制。本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1