具体实施方式
实施例一
图1为本发明实施例一提供的移动终端的图像处理方法流程图。如图1所示,本实施例提供的移动终端的图像处理方法具体可以应用于移动终端对摄像头单元采集的视频流的实时处理过程,并通过显示单元为用户显示。该移动终端具体可以为智能手机、平板电脑等移动设备,摄像头单元和显示单元可以集成在该移动终端上,也可以单独设置。
本实施例提供的移动终端的图像处理方法具体包括:
步骤10、中央处理单元获取摄像头单元实时采集到的视频流的每一帧图像,根据每一帧图像生成至少一个纹理,根据接收到的处理指示信息生成参数矩阵,将至少一个纹理和参数矩阵发送给图形处理单元;
具体地,中央处理单元可以通过移动终端的中央处理器(CentralProcessing Unit,简称CPU)或微控制器(Micro Control Unit,简称MCU)来实现,图形处理单元可以通过图形处理器(Graphic Processing Unit,简称GPU)来实现,该图形处理器也可以设置在移动终端中。
当摄像头单元开始工作时,该摄像头单元实时采集视频流,具体地,视频流是由一帧一帧连续的图像组成,中央处理单元获取该实时采集到视频流的每一帧图像,并根据每一帧图像生成至少一个纹理。具体地,图像处理单元可以基于开放图形库(Open Graphics Library,简称OpenGL)技术,则纹理可以为OpenGL纹理。生成的纹理的个数具体可以预先设置,也可以根据处理场景需要来实时调整。
接收到的处理指示信息具体可以为用户通过移动终端的输入单元输入的用于指示对视频流进行处理的参数信息,也可以为从服务器同步获得优选的处理指示信息。该处理指示信息具体可以包括非线性处理指示信息、色温处理指示信息、亮度处理指示信息、对比度处理指示信息、曝光度处理指示信息、饱和度处理指示信息和色相处理指示信息等。中央处理单元根据处理指示信息生成与该处理指示信息对应的参数矩阵,该参数矩阵可以被图形处理单元解析并执行。该处理指示信息可以为上述一种处理指示信息,也可以多种处理指示信息的结合。
步骤20、图形处理单元根据参数矩阵对至少一个纹理进行处理,生成处理后图像并发送给显示单元。
具体地,若该处理指示信息为非线性处理指示信息,则图形处理单元对该至少一个纹理进行非线性编辑,以实现对视频流的非线性调节。若该处理指示信息为色温处理指示信息,则图形处理单元对该至少一个纹理进行色温调节,以实现对视频流的色温调节。若该处理指示信息为亮度处理指示信息,则图形处理单元对该至少一个纹理进行亮度调节,以实现对视频流的亮度调节。若该处理指示信息为对比度处理指示信息,则图形处理单元对该至少一个纹理进行对比度调节,以实现对视频流的对比度调节。若该处理指示信息为曝光度处理指示信息,则图形处理单元对该至少一个纹理进行曝光度调节,以实现对视频流的曝光度调节。若该处理指示信息为饱和度处理指示信息,则图形处理单元对该至少一个纹理进行饱和度调节,以实现对视频流的饱和度调节。若该处理指示信息为色相处理指示信息,则图形处理单元对该至少一个纹理进行色相调节,以实现对视频流的色相调节。
上述图像处理方法可以应用于拍摄之前对景物的预览过程中,对摄像头单元实时采集到的视频流的处理过程,用户可以首先通过输入或选择处理指示信息的方式对视频流进行调节,当到达满意效果时,再进行拍摄。用户也可以在摄像过程中,对视频流进行调节,则实时反馈给用户的图像效果也会被录制下来。
本实施例提供的移动终端的图像处理方法,中央处理单元获取摄像头单元实时采集到的视频流的每一帧图像,根据每一帧图像生成至少一个纹理,根据接收到的处理指示信息生成参数矩阵,将至少一个纹理和参数矩阵发送给图形处理单元,图形处理单元根据参数矩阵对至少一个纹理进行处理,生成处理后图像并发送显示单元。中央处理单元对接收到的处理指示信息进行转换整合,并协调处理资源,图形处理单元对纹理进行相应地处理,通过中央处理单元和图形处理单元的配合,实现了对实时获取的视频流的处理。用户的每个操作均可以实时预览到该操作所产生的效果,大大提高了移动终端对实时视频流的处理效果。
实施例二
本实施例提供的移动终端的图像处理方法在图1所示实施例的基础上,具体地,步骤10中的中央处理单元根据接收到的处理指示信息生成参数矩阵,将至少一个纹理和参数矩阵发送给图形处理单元,可以包括如下步骤:
中央处理单元根据接收到的非线性处理指示信息生成非线性参数矩阵,将至少一个纹理和非线性参数矩阵发送给图形处理单元,其中,非线性处理指示信息包括以下至少一种:红色通道调节指示信息、绿色通道调节指示信息和蓝色通道调节指示信息;
相应地,步骤20中图形处理单元根据参数矩阵对至少一个纹理进行处理,具体可以包括如下步骤:
图形处理单元根据非线性参数矩阵对至少一个纹理进行非线性编辑处理。
具体地,非线性处理指示信息用以指示对视频流进行非线性编辑,该非线性编辑具体为对视频流的每一帧图像对应的红(Red,简称R)绿(Green,简称G)蓝(Blue,简称B)三通道以及RGB混合通道的调节。用户希望对视频流进行非线性调节时,可以输入该非线性处理指示信息。可以设置对红绿蓝三通道各自对应的曲线并通过显示单元显示给用户,以使用户通过对曲线的调整实现对该红绿蓝三通道的调节,也可以通过其他形式来实现该非线性处理指示信息的输入。
在本实施例中,优选地,显示单元为触摸屏。触摸屏不仅可以为用户显示处理后的图像和操作控件,用户还可以通过对该触摸屏上显示的操作控件进行触控操作实现处理指示信息的输入。操作控件具体可以通过Widget技术来实现。触摸屏同时显示处理后的图像和操作控件,操作控件可以位于图像层之上。
则相应地,步骤中央处理单元根据接收到的非线性处理指示信息生成非线性参数矩阵,具体可以包括:
中央处理单元对显示单元进行检测,获取非线性处理指示信息对应的触控点的坐标,根据贝塞尔曲线算法对坐标进行处理生成贝塞尔曲线,根据贝塞尔曲线生成非线性参数矩阵。
具体地,显示单元可以为用户提供对应于红绿蓝三通道的曲线,用户可以通过触摸屏对该曲线进行调节。初始时,该曲线可以为一条直线。如图2所示,优选地,将直线对应的横轴和纵轴分别平均分成256份,以设定该直线上各点对应的坐标。中央处理单元对显示单元进行检测,获取非线性处理指示信息对应的触控点的坐标,根据贝塞尔曲线算法对坐标进行处理生成贝塞尔曲线,贝塞尔曲线即为用户调节后的曲线。
通过曲线调整实现非线性编辑,操作简单,用户无需掌握复杂的图像处理技术也可以实现对实时视频流的处理,提高了用户的体验效果。
在本实施例中,步骤图形处理单元根据非线性参数矩阵对至少一个纹理进行非线性编辑处理,具体可以包括:
图形处理单元根据非线性参数矩阵对第一查找表进行更新,根据更新后的第一查找表对至少一个纹理进行渲染处理,其中,第一查找表用以记录对应于非线性处理指示信息的颜色通道的灰度值。
具体地,若该非线性处理指示信息为对R通道的调节,则第一查找表用以记录R通道的灰度值。第一查找表具体可以为一维数组,若贝塞尔曲线对应的横轴和纵轴分别平均分成256份,则该一维数组包含256个整数值,每个整数值得范围为0-255,对应于贝塞尔曲线上的各点,用以指示灰度值。对第一查找表更新后,就可以根据该第一查找表实现对至少一个纹理的渲染处理。
实施例三
在本实施例中,步骤10中的中央处理单元根据接收到的处理指示信息生成参数矩阵,将至少一个纹理和参数矩阵发送给图形处理单元,具体可以包括如下步骤:
中央处理单元根据接收到的色温处理指示信息生成色温参数矩阵,将至少一个纹理和色温参数矩阵发送给图形处理单元;
相应地,步骤20中的图形处理单元根据参数矩阵对至少一个纹理进行处理,具体可以包括如下步骤:
图形处理单元根据色温参数矩阵获取第二查找表,根据第二查找表对至少一个纹理进行色温调节处理。
具体地,用户需要对视频流的色温进行调整时,可以输入该色温处理指示信息。可以通过显示单元为用户提供色温参数界面,以使用户通过修改色温参数输入该色温处理指示信息。不同色温参数对应的第二查找表不同,可以预设色温参数对应的第二查找表,第二查找表的形式具体可以与第一查找表相同。
在本实施例中,步骤10中的中央处理单元根据接收到的处理指示信息生成参数矩阵,将至少一个纹理和参数矩阵发送给图形处理单元,具体可以包括如下步骤:
中央处理单元根据接收到的亮度处理指示信息生成亮度参数矩阵,将至少一个纹理和亮度参数矩阵发送给图形处理单元;或
中央处理单元根据接收到的对比度处理指示信息生成对比度参数矩阵,将至少一个纹理和对比度参数矩阵发送给图形处理单元;或
中央处理单元根据接收到的对曝光度处理指示信息生成对曝光度参数矩阵,将至少一个纹理和曝光度参数矩阵发送给图形处理单元;
相应地,步骤20中的图形处理单元根据参数矩阵对至少一个纹理进行处理,具体可以包括如下步骤:
图形处理单元根据亮度参数矩阵,对至少一个纹理中每一个纹理的像素的亮度值进行加或减操作;或
图形处理单元根据对比度参数矩阵,将至少一个纹理中每一个纹理中的亮度值小于预设值的像素的亮度值进行减操作,将亮度值大于预设值的像素的亮度值进行加操作;或
图形处理单元根据曝光度参数矩阵,对至少一个纹理中每一个纹理的像素的亮度值进行乘或除操作。
具体地,用户需要对视频流的亮度进行调节时,可以输入亮度处理指示信息,中央处理单元根据接收到的亮度处理指示信息生成对比度参数矩阵,将至少一个纹理和亮度参数矩阵发送给图形处理单元,图形处理单元根据亮度参数矩阵,对至少一个纹理中每一个纹理的像素的亮度值进行加或减操作。例如,亮度处理指示信息对应的亮度调节参数为+10,则图形处理单元将每一个纹理的像素的亮度值都加10,以提高图像的亮度。亮度处理指示信息对应的亮度调节参数为-10,则图形处理单元将每一个纹理的像素的亮度值都减10,以降低图像的亮度。
用户需要对视频流的对比度进行调节时,可以输入对比度处理指示信息,中央处理单元根据接收到的对比度处理指示信息生成对比度参数矩阵,将至少一个纹理和对比度参数矩阵发送给图形处理单元,图形处理单元根据对比度参数矩阵,将至少一个纹理中每一个纹理中的亮度值小于预设值的像素的亮度值减小,将亮度值大于预设值的像素的亮度值增加。例如对比对处理指示信息对应的对比度调节参数为10,则图形处理单元将每一个纹理中亮度值小于预设值的像素的亮度值减10,亮度值大于预设值的像素的亮度值加10。优选地,该预设值具体为128,预设值可以根据实际图像处理需要来设置,不以本实施例为限。
用户需要对视频流的曝光度进行调节时,可以输入曝光度处理指示信息,中央处理单元根据接收到的对曝光度处理指示信息生成对曝光度参数矩阵,将至少一个纹理和曝光度参数矩阵发送给图形处理单元,图形处理单元根据曝光度参数矩阵,对至少一个纹理中每一个纹理的像素的亮度值进行乘或除操作。例如,曝光度处理指示信息对应的曝光度调节参数为+10,则图形处理单元将每一个纹理中像素的亮度值乘10,以提高图像的曝光度。曝光度处理指示信息对应的曝光度调节参数为-10,则图形处理单元将每一个纹理中像素的亮度值除10,以降低图像的曝光度。
在本实施例中,步骤10中的中央处理单元根据接收到的处理指示信息生成参数矩阵,将至少一个纹理和参数矩阵发送给图形处理单元,具体可以包括如下步骤:
中央处理单元根据接收到的饱和度处理指示信息生成饱和度参数矩阵,将至少一个纹理和饱和度参数矩阵发送给图形处理单元;或
中央处理单元根据接收到的色相处理指示信息生成色相参数矩阵,将至少一个纹理和色相参数矩阵发送给图形处理单元;
相应地,步骤20中图形处理单元根据参数矩阵对至少一个纹理进行处理,具体可以包括如下步骤:
图形处理单元根据饱和度参数矩阵生成饱和度矩阵,根据饱和度矩阵对至少一个纹理中每一个纹理的像素的饱和度进行调节;或
图形处理单元根据色相参数矩阵生成饱和度矩阵,根据色相矩阵对至少一个纹理中每一个纹理的像素的色相进行调节。
具体地,用户需要对视频流的饱和度进行调节时,可以输入饱和度处理指示信息。中央处理单元根据接收到的饱和度处理指示信息生成饱和度参数矩阵,将至少一个纹理和饱和度参数矩阵发送给图形处理单元。图形处理单元根据该饱和度参数矩阵生成饱和度矩阵,该饱和度矩阵具体可以为4×4的矩阵,饱和度矩阵的各行分别对应于R通道、G通道、B通道和A(透明)通道的向量,每个向量中包含R通道、G通道、B通道和A(透明)通道的向量值。以R通道为例,R通道的向量具体可以表示为(R-R,R-G,R-B,R-A),向量值具体可以通过以下公式计算获得:
R-R=(1-输入值)×R比例+输入值;
R-G=(1-输入值)×G比例;
R-B=(1-输入值)×B比例;
R-A=0;
其中,输入值即为用户输入的饱和度参数,该色相参数范围具体可以为0-2,饱和度处理指示信息中携带有该饱和度参数。R比例、G比例和B比例分别用以指示R通道、G通道、B通道的透明度,具体可以预先设置。
将该饱和度矩阵与纹理中各像素对应的向量相乘,得到新的像素,就实现了饱和度调节。
用户需要对视频流的色相进行调节时,可以输入色相处理指示信息。中央处理单元根据接收到的色相处理指示信息生成色相参数矩阵,将至少一个纹理和色相参数矩阵发送给图形处理单元。图形处理单元根据该色相参数矩阵生成色相矩阵,该色相矩阵的形式具体可以与饱和度矩阵相同,色相矩阵中的向量具体可以通过以下公式计算获得,仍以R通道为例:
R-R=R比例+cos(输入值)×(1-R比例)+sin(输入值)×(-R比例);
R-G=G比例+cos(输入值)×(-G比例)+sin(0.143);
R-B=B比例+cos(输入值)×(-B比例)+sin(-(1-B比例));
R-A=0;
其中,输入值即为用户输入的色相参数,该色相参数范围具体为-π-π,色相处理指示信息中携带有该色相参数。R比例、G比例和B比例分别用以指示R通道、G通道、B通道的透明度,具体可以预先设置。
本实施例中,通过饱和度矩阵和色相矩阵的生成,分别实现饱和度和色相调节,可以避免色彩空间转换带来的复杂运算,简化了处理过程,提高了处理的实时性。
上述实施例中,提供了多种处理指示信息的形式,中央处理单元也可以记录用户输入的处理指示信息,当用户对当前处理指示信息产生的效果不满意时,也可以撤销操作。
在本实施例中,步骤10中的中央处理单元根据接收到的处理指示信息生成参数矩阵之前,还可以包括如下步骤:
中央处理单元从服务器云端同步至少一个预设处理指示信息集合,根据接收到的选择指示信息,从至少一个预设处理指示信息集合中选择一个预设处理指示信息集合,其中,预设处理指示信息集合包括至少一个处理指示信息;
步骤10中的中央处理单元根据接收到的处理指示信息生成参数矩阵之后,具体还可以包括如下步骤:
中央处理单元根据接收到的处理指示信息生成更新处理指示信息集合,将更新处理指示信息集合云端同步至服务器,其中,更新处理指示信息集合包括至少一个处理指示信息。
具体地,服务器中预先存储有预设处理指示信息集合,该预设处理指示信息集合中包含有至少一个处理指示信息。通过预设处理指示信息集合中所包含的处理指示信息组合对视频流进行处理可以实现较优的效果,也可以实现特定风格的效果。用户从服务器云端同步该预设处理指示信息集合并进行选择,也可以将对视频流的处理指示信息打包形成该更新处理指示信息集合,并云端同步至该服务器,以实现与其他用户的分享。用户也可以将该更新处理指示信息集合存储到移动终端,以便在以后的视频流的处理过程中直接使用。通过预设处理指示信息集合的设置,用户通过选择预设处理指示信息集合即可实现对视频流的处理,无需设置各处理指示信息对应的调节参数,用户通过移动终端对视频流的处理的操作过程更加简单,也增强了趣味性。
实施例四
图3为本发明实施例四提供的移动终端结构示意图。如图3所示,本实施例提供的移动终端具体可以实现本发明任意实施例提供的移动终端的图像处理方法的各个步骤,此不再赘述。
本实施例提供的移动终端,包括摄像头单元11和显示单元12,该移动终端还包括中央处理单元13和图形处理单元14。中央处理单元13用于获取摄像头单元11实时采集到的视频流的每一帧图像,根据每一帧图像生成至少一个纹理,根据接收到的处理指示信息生成参数矩阵,将至少一个纹理和参数矩阵发送给图形处理单元14。图形处理单元14用于根据参数矩阵对至少一个纹理进行处理,生成处理后图像并发送给显示单元12。
本实施例提供的移动终端,中央处理单元13获取摄像头单元11实时采集到的视频流的每一帧图像,根据每一帧图像生成至少一个纹理,根据接收到的处理指示信息生成参数矩阵,将至少一个纹理和参数矩阵发送给图形处理单元14,图形处理单元14根据参数矩阵对至少一个纹理进行处理,生成处理后图像并发送显示单元12。中央处理单元13对接收到的处理指示信息进行转换整合,并协调处理资源,图形处理单元14对纹理进行相应地处理,通过中央处理单元13和图形处理单元14的配合,实现了对实时获取的视频流的处理。用户的每个操作均可以实时预览到该操作所产生的效果,大大提高了移动终端对实时视频流的处理效果。
实施例五
本实施例提供的移动终端在图3所示实施例的基础上,中央处理单元13具体还可以用于根据接收到的非线性处理指示信息生成非线性参数矩阵,将至少一个纹理和非线性参数矩阵发送给图形处理单元14,其中,非线性处理指示信息包括以下至少一种:红色通道调节指示信息、绿色通道调节指示信息和蓝色通道调节指示信息。相应地,图形处理单元14还用于根据非线性参数矩阵对至少一个纹理进行非线性编辑处理。
进一步地,在本实施例中,中央处理单元13还用于对触摸屏单元进行检测,获取非线性处理指示信息对应的触控点的坐标,根据贝塞尔曲线算法对坐标进行处理生成贝塞尔曲线,根据贝塞尔曲线生成非线性参数矩阵。
进一步地,在本实施例中,图形处理单元14还用于根据非线性参数矩阵对第一查找表进行更新,根据更新后的第一查找表对至少一个纹理进行渲染处理,其中,第一查找表用以记录对应于非线性处理指示信息的颜色通道的灰度值。
实施例六
本实施例提供的移动终端在图3所示实施例的基础上,中央处理单元13具体还可以用于根据接收到的色温处理指示信息生成色温参数矩阵,将至少一个纹理和色温参数矩阵发送给图形处理单元14。相应地,图形处理单元14根据色温参数矩阵获取第二查找表,根据第二查找表对至少一个纹理进行色温调节处理。
进一步地,在本实施例中,中央处理单元13还用于根据接收到的亮度处理指示信息生成亮度参数矩阵,将至少一个纹理和亮度参数矩阵发送给图形处理单元14;或中央处理单元13还用于根据接收到的对比度处理指示信息生成对比度参数矩阵,将至少一个纹理和对比度参数矩阵发送给图形处理单元14;或中央处理单元13还用于根据接收到的对曝光度处理指示信息生成对曝光度参数矩阵,将至少一个纹理和曝光度参数矩阵发送给图形处理单元14。
相应地,图形处理单元14还用于根据亮度参数矩阵,对至少一个纹理中每一纹理的像素的亮度值进行加或减操作;或图形处理单元14还用于根据对比度参数矩阵,将至少一个纹理中每一个纹理中的亮度值小于预设值的像素的亮度值进行减操作,将亮度值大于预设值的像素的亮度值进行减操作;或图形处理单元14还用于根据曝光度参数矩阵,对至少一个纹理中每一个纹理的像素的亮度值进行乘或除操作。
进一步地,在本实施例中,中央处理单元13还用于根据接收到的饱和度处理指示信息生成饱和度参数矩阵,将至少一个纹理和饱和度参数矩阵发送给图形处理单元14;或中央处理单元13还用于根据接收到的色相处理指示信息生成色相参数矩阵,将至少一个纹理和色相参数矩阵发送给图形处理单元14。相应地,图形处理单元14还用于根据饱和度参数矩阵生成饱和度矩阵,根据饱和度矩阵对至少一个纹理中每一个纹理的像素的饱和度进行调节;或图形处理单元14还用于根据色相参数矩阵生成饱和度矩阵,根据色相矩阵对至少一个纹理中每一个纹理的像素的色相进行调节。通过饱和度矩阵和色相矩阵的生成,分别实现饱和度和色相调节,可以避免色彩空间转换带来的复杂运算,简化了处理过程,提高了处理的实时性。
进一步地,在本实施例中,中央处理单元13还用于从服务器云端同步至少一个预设处理指示信息集合,根据接收到的选择指示信息,从至少一个预设处理指示信息集合中选择一个预设处理指示信息集合,以及根据接收到的处理指示信息生成更新处理指示信息集合,将更新处理指示信息集合云端同步至服务器,其中,预设处理指示信息集合包括至少一个处理指示信息,更新处理指示信息集合包括至少一个处理指示信息。用户从服务器云端同步该预设处理指示信息集合并进行选择,也可以将对视频流的处理指示信息打包形成该更新处理指示信息集合,并云端同步至该服务器,以实现与其他用户的分享。用户也可以将该更新处理指示信息集合存储到移动终端,以便在以后的视频流的处理过程中直接使用。通过预设处理指示信息集合的设置,用户通过选择预设处理指示信息集合即可实现对视频流的处理,无需设置各处理指示信息对应的调节参数,用户通过移动终端对视频流的处理的操作过程更加简单,也增强了趣味性。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指示信息相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。