一种图像校色方法、装置、电子设备与机器可读介质与流程

专利2022-05-10  19



1.本技术实施例涉及图像处理技术领域,具体而言,涉及一种图像校色方法、装置、电子设备与机器可读介质。


背景技术:

2.校色是视频拍摄和编辑时的一个重要环节,通过对亮度、对比度、色彩等多个方面的调整,可以弥补环境、设备、经验等不足所造成的画质缺陷,提升了视频整体的画面质量与画面观感。
3.目前的校色过程中,用户通常使用lut工具,来对画面进行校色,lut工具可以在图像上将一种颜色效果转换成另外一种颜色效果。
4.然而,由于lut工具的空间占用量极大,导致用户利用lut工具进行校色时,打开lut工具以及运行lut工具的过程均比较缓慢。


技术实现要素:

5.本技术实施例提供一种图像校色方法、装置、电子设备与机器可读介质,旨在解决使用lut工具所带来的运行速度较慢的问题。
6.本技术实施例第一方面提供一种图像校色方法,所述方法包括:获得待校色图像以及对应的校色需求信息;根据所述校色需求信息,从磁盘中读取满足所述校色需求信息的二进制文件,所述二进制文件中包括二进制数据;其中,所述二进制数据通过lut文件中的lut数据转换得到;将所述二进制文件转换成目标颜色查找表,并存储在内存中,所述目标颜色查找表包括十进制数据,其中,所述十进制数据通过所述二进制数据转换得到;在所述内存中,利用所述目标颜色查找表对所述待校色图像进行校色处理,得到校色后的图像。
7.可选地,从磁盘中读取满足所述校色需求信息的二进制文件之前,所述方法还包括:根据所述校色需求信息,检索内存中各个目标颜色查找表的数据头,确定是否存在满足所述校色需求信息的目标颜色查找表;在内存中不存在满足所述校色需求信息的目标颜色查找表的情况下,执行步骤:根据所述校色需求信息,从磁盘中读取满足所述校色需求信息的二进制文件。
8.可选地,所述二进制文件通过以下步骤生成:获取待处理的lut文件;将所述lut文件中的所述lut数据转换成所述二进制数据,并为所述二进制数据生成数据头;将所述数据头添加在所述二进制数据之上,得到所述二进制文件。
9.可选地,所述数据头包括数据格式;将所述lut文件中的所述lut数据转换成所述二进制数据,并为所述二进制数据生成数据头,包括:将所述lut数据转换为数据格式是指定数据格式的二进制数据,所述指定数据格式包括以下任一者:uint8无符号整型数据,uint16无符号整型数据,float16半精度浮点数据为,float32单精度浮点数据;将所述数据头添加在所述二进制数据之上,得到所述二进制文件,包括:将表征指定数据格式的第一标识添加到二进制数据之上,得到所述二进制文件,其中,不同的指定数据格式对应不同的第一标识。
10.可选地,所述数据头包括单维度尺寸;将所述lut文件中的所述lut数据转换成所述二进制数据,并为所述二进制数据生成数据头,包括:将所述lut数据转换为单维度尺寸是指定尺寸的二进制数据,所述指定尺寸包括以下任一者:13、15、17;将表征指定尺寸的第二标识添加到所述二进制数据之上,得到所述二进制文件,其中,不同的单维度尺寸对应不同的第二标识。
11.可选地,所述数据头包括数据偏移量;将所述lut文件中的所述lut数据转换成所述二进制数据,并为所述二进制数据生成数据头,包括:将所述lut数据转换成数据偏移量是指定偏移量的二进制数据;将表征指定偏移量的第三标识添加到所述二进制数据之上,其中,不同的制定偏移量对应不同的第三标识。
12.可选地,在所述内存中,利用所述目标颜色查找表对所述待校色图像进行校色处理,得到校色后的图像,包括:在所述内存中读取索引表与插值表;将所述校色需求信息作为索引值,在所述索引表中查找到与所述索引值对应的目标数据与目标插值系数;从所述插值表中获取所述目标插值系数,且从所述目标颜色查找表中获取所述目标数据;依据所述目标插值系数与所述索引值,得到目标插值;将所述目标插值与所述目标数据输入至所述待校色图像中,得到校色后的图像。
13.本技术实施例第二方面提供一种图像校色装置,所述装置包括:获取模块,用于获得待校色图像以及对应的校色需求信息;读取模块,用于根据所述校色需求信息,从磁盘中读取满足所述校色需求信息的二进制文件,所述二进制文件中包括二进制数据;其中,所述二进制数据通过lut文件中的lut数据转换得到;存储模块,用于将所述二进制文件转换成目标颜色查找表,并存储在内存中,所述目标颜色查找表包括十进制数据,其中,所述十进制数据通过所述二进制数据转换得到;校色模块,用于从内存中获取满足所述校色需求信息的目标颜色查找表,对所述待校色图像进行校色处理,得到校色后的图像。
14.本技术实施例第三方面提供一种电子设备,包括:一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如本技术实施例第一方面所述的方法。
15.本技术实施例第四方面提供一种电子设备,包括:一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本技术实施例第一方面所述的方法。
16.采用本技术提供的一种数据存储方法,可以将十进制数据转换成二进制数据存储在自定义的二进制文件中,从而减少了二进制文件的空间占用量。由于二进制文件的空间占用量较小,第一方面可以使得用户打开二进制文件的过程以及运行二进制文件的过程较快;第二方面可以使得用户能够较快地下载二进制文件。并且在将二进制文件中的二进制数据转换成十进制数据存储到内存中后,由于内存是计算机中运行速度最快的存储介质,可以能够更快地对待校色图像进行校色处理,也能够提升文件运行速度。
附图说明
17.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
18.图1是本技术一实施例提出的图像校色方法的步骤流程图;图2是本技术一实施例提出的二进制文件的结构示意图;图3是本技术又一实施例提出的图像校色装置的结构示意图。
具体实施方式
19.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
20.请参阅图1,本技术实施例提供一种图像校色方法,所述方法包括:步骤101:获得待校色图像以及对应的校色需求信息。
21.在本技术实施例中,待校色图像指的是需要进行校色的图像,指的是原始的、未经过处理的图像,待校色图像中包含每个像素的rgb值。
22.校色需求信息表征用户所需的待校色图像的风格信息。
23.在一些场景下,校色需求信息是暗黑风格,那么,在获取到待校色图像与校色需求信息之后,可以确定是将原始的待校色图像转换成暗黑风格。
24.步骤102:根据所述校色需求信息,从磁盘中读取满足所述校色需求信息的二进制文件,所述二进制文件中包括二进制数据;其中,所述二进制数据通过lut文件中的lut数据转换得到。
25.本技术实施例中,磁盘中存储有多种二进制文件,每种二进制文件为一个颜色查找表,代表一种颜色转换效果,例如,二进制文件a能够将待校色图像转换成暗黑风格,二进制文件b能够将待校色图像转换成怀旧风格的图片。
26.在一些场景下,在获取待校色图像,且确定用户需求的待校色图像的风格是是暗黑风格时,从磁盘中的多种二进制文件中,确定出二进制文件a满足用户需求,则可以利用二进制文件a来对待校色图像进行校色,以将待校色图像转换成暗黑风格。
27.其中,lut文件本质上也是颜色查找表,能够将一种颜色效果转换成另外一种颜色效果,lut文件的后缀名可以包括lut、vf、cube、3dl、cms、dxlut等等,不同后缀名的lut文件包括不同类型的lut数据。
28.其中,lut文件包括lut数据与lut数据的数据头,lut数据在lut文件中是以文本形式存在,以文本形式存在的lut数据本身会占用相对较大的内存,且lut文件中一般包括成千上万个lut数据,所以导致lut文件的空间占用量较大,例如,一个lut文件可以达到几十gb。
29.具体地,lut文件作为lut工具时,若用户需要从服务器端下载lut文件到客户端本地的磁盘内,由于lut文件较大,第一方面会使得用户下载lut文件的速度较慢,第二方面需要用较大的空间存储lut文件,第三方面用户在使用lut文件进行图像的颜色效果转换时,打开lut文件以及运行lut文件的过程均比较缓慢。
30.所以,为了提升lut文件的下载速度,减少lut文件的空间占用量,提升lut文件的运行速度,本技术实施例将lut文件中的lut数据转换成二进制数据,并存储在自定义的二进制文件中。
31.例如,若lut文件中仅存储有20、30、40这三个lut数据,则可以将lut文件中20、30、40这三个lut数据分别转换成10100、11110、101000这三个二进制数据。
32.可以理解的是,在计算机中,数据格式为uint8的前提下,一个数字会占用8个字节,20、30、40这三个lut数据则会占用48个字节。而一个字节可以设置8个二进制数据,那么10100、11110、101000这三个二进制数据则可以用3个字节表示。
33.如此,可以明显看出,使用二进制数据来进行存储,相较于lut数据进行存储,极大了减少了空间占用量,那么,针对同一颜色转换效果的lut文件与二进制文件,二进制文件的空间占用量明显少于lut文件,用户在下载二进制文件时,由于二进制文件较小,所以可以较快地下载二进制文件,也减少了空间占用量,提升了运行速度。
34.步骤103:将所述二进制文件转换成目标颜色查找表,并存储在内存中,所述目标颜色查找表包括十进制数据,其中,所述十进制数据通过所述二进制数据转换得到。
35.本技术实施例中,将lut文件转换成二进制文件,再转换成目标颜色查找表之后,三者的颜色转换效果一致,只是数据格式不同,数据量不同。
36.其中,将二进制文件中的若干二进制数据转换成若干十进制数据,则形成目标颜色查找表,由于目标颜色查找表是通过二进制文件中的二进制数据转换得到,所以目标颜色查找表中十进制数据的数据头与二进制文件中二进制数据的数据头相同。
37.具体地,在将二进制文件读取到内存中的过程中,将二进制文件中的二进制数据转换成十进制数据,从而将二进制文件转换成了目标颜色查找表,并存储在内存中。示例地,在将二进制文件读取到内存的过程中,将10100、11110、101000这三个二进制数据分别转换成20、30、40这三个十进制数据。
38.在一些场景下,当用户打开二进制文件之后,计算机则会自动地将二进制文件转换成目标颜色查找表以读取到内存中,在内存中通过目标颜色查找表执行对待校色图像进
行颜色效果转换的步骤。
39.由于内存是计算机内运行速度最快的存储位置,通过将二进制文件读取到内存中的设置,可以极大地提升待校色图像的校色处理速度。
40.步骤104:从所述内存中读取目标颜色查找表,并利用所述目标颜色查找表对所述待校色图像进行校色处理,得到校色后的图像。
41.本技术实施例中,校色后的图像指的是颜色转换后的待校色图像,内存中所存储的目标颜色查找表是通过二进制文件转换而来的,所以目标颜色查找表本质上也是一种颜色查找表,由于颜色查找表上具有rgb输入值与rgb输出值之间的映射关系,所以能够将一种颜色效果转换成另外一种颜色效果。
42.在一些场景下,获取待校色图像中每个像素的rgb输入值,在目标颜色查找表的十进制数据中逐个查找到每个rgb输入值所对应的rgb输出值,将每个rgb输出值对应输入至待校色图像的每个像素中,以得到校色后的图像。
43.通过本技术提供的一种数据存储方法,可以将十进制数据转换成二进制数据存储在自定义的二进制文件中,从而减少了二进制文件的空间占用量。由于二进制文件的空间占用量较小,第一方面可以使得用户打开二进制文件的过程以及运行二进制文件的过程较快;第二方面可以使得用户能够较快地下载二进制文件。并且在将二进制文件中的二进制数据转换成十进制数据存储到内存中后,由于内存是计算机中运行速度最快的存储介质,可以能够更快地对待校色图像进行校色处理,也能够提升文件运行速度。
44.本技术实施例还提出的一种图像校色方法,所述方法包括:步骤201:获得待校色图像以及对应的校色需求信息。
45.步骤202:根据所述校色需求信息,检索内存中各个目标颜色查找表的数据头,确定是否存在满足所述校色需求信息的目标颜色查找表。
46.在本技术实施例中,lut文件中的lut数据转换成二进制数据,以形成二进制文件,二进制文件中的二进制数据转换成十进制数据以形成目标颜色查找表,不论是在lut文件,还是在二进制文件与内存的目标颜色查找表中均设计了数据头,进而通过数据头来读取文件中所保存的数据。
47.其中,目标颜色查找表的数据头与二进制文件中的数据头一致,目标颜色查找表内的数据头用于表征目标颜色查找表内的十进制数据的读取规则、十进制数据写入至目标颜色查找表内的规则。计算机可以依据目标颜色查找表内的数据头来读取十进制数据。
48.步骤203:在内存中存在满足校色需求信息的目标颜色查找表的情况下,则根据所述校色需求信息,从内存中读取满足所述校色需求信息的目标颜色查找表。
49.其中,内存中可以存储多个目标颜色查找表,当满足用户校色需求信息的目标颜色查找表能够从内存中查找到时,则不必再从磁盘中查找到满足用户校色需求信息的二进制文件并读取到内存中,从而进一步提升了图像的校色速度。
50.具体地,由于用户在初次使用某一目标颜色查找表时,会将磁盘内的二进制文件转换成目标颜色查找表读取到内存中,以在内存中读取目标颜色查找表。然而,在预设时长内用户再次使用该目标颜色查找表的情况下,若同样从磁盘中读取二进制文件,并转换成目标颜色查找表读取到内存中,则会导致图像颜色效果转换速度较慢。
51.因此,为了在提升用户再次使用同一目标颜色查找表来进行图像颜色效果转换的
速度,可以在内存中建立map容器,将目标颜色查找表读取到内存后,目标颜色查找表的id以及目标颜色查找表的十进制数据也同时被读取到map容器中。当用户在预设时长内再次使用同一目标颜色查找表时,则可以直接从内存的map容器中查找到所需的目标颜色查找表,其图像的颜色效果转换速度更快。
52.自然,若发现内存中不存在满足用户需求的目标颜色查找表,则仍然需要执行步骤204:从磁盘中读取满足用户需求的二进制文件,再将二进制文件中的二进制数据转换成十进制数据以形成目标颜色查找表,读取到内存中,在内存中对待校色图像进行颜色效果的转换。
53.其中,为了提高内存的运行速度,可以在预设时长内将存储的多个目标物进行清除,被清除后的内存,其map容器中不再存储有读取到内存中的目标颜色查找表。
54.步骤204:在内存中不存在满足所述校色需求信息的目标颜色查找表的情况下,根据所述校色需求信息,从磁盘中读取满足所述校色需求信息的二进制文件,所述二进制文件中包括二进制数据;其中,所述二进制数据通过lut文件中的lut数据转换得到。
55.本技术实施例中,校色需求信息包括图像信息与模板信息。磁盘中存储有若干二进制文件,每个二进制文件具有唯一的uid,即,唯一的标识符。例如“港风电影”这一名称的二进制文件a所对应的uid是“6b51aa79

1f7a

4f03

a731

2652cebecdda”,其对应的转换效果是将待校色图像转换成暗黑风格,“过往dy”这一名称的二进制文件b所对应的uid是“6b51aa79

1f7a

4f03

a731

1234cebecdda”,其对应的转换效果是将待校色图像转换成怀旧风格,“古风”这一名称的二进制文件c所对应的uid是“6b51aa79

1f7a

4f03

a731

5678cebecdda”,其对应的转换效果是将待校色图像转换成古典风格。
56.在一些场景下,当用户想要将待校色图像转换成暗黑风格,打开磁盘后,则可以点击磁盘中“港风电影”对应的二进制文件a,而二进制文件a对应的唯一标识符uid是“6b51aa79

1f7a

4f03

a731

2652cebecdda”,则可以确定出二进制文件a的转换效果是将待校色图像转换成暗黑风格。
57.相应地,在二进制文件a的名称从“港风电影”变化成“酷炫电影”时,虽然名称变化,但是由于二进制文件的uid并未改变,所以二进制文件a的转换效果仍然是将待校色图像转换成暗黑风格。
58.本技术实施例中,磁盘中可以存储预定义模板,每个预定义模板下包括若干二进制文件,例如预定义模板1下依次包括二进制文件a、二进制文件b、二进制文件c;预定义模板2下依次包括二进制文件d、二进制文件e、二进制文件f。
59.在一些场景下,当用户想要待校色视频的第0s~5s是将待校色图像转换成暗黑风格,第6s~10s将待校色图像转换成怀旧风格,第11s~15s将待校色图像转换成古典风格,则可以使用预定义模板1来依次对待校色视频中的每一帧待校色图像进行图像颜色转换。
60.本技术实施例中,二进制文件通过以下子步骤得到:子步骤2041:获取待处理的lut文件。
61.在步骤2041中,可以获取lut、vf、cube、3dl、cms、dxlut等等不同后缀的lut文件,再将各个不同后缀的lut文件中的lut数据统一转换成二进制数据。
62.通过汇聚各个不同后缀的lut文件,可以便于后续步骤统一地转换成二进制文件,从而使得用户可以不必采用各种后缀的lut文件,而采取格式统一的二进制文件来对待校
色图像进行颜色效果的转换,以实现颜色转换工具的统一。
63.子步骤2042:将所述lut文件中的所述lut数据转换成所述二进制数据,并为所述二进制数据生成数据头。
64.在本技术实施例中,在读取各个不同后缀的lut文件获得lut数据之后,将lut数据转换成二进制数据;开发人员再统一定义二进制数据的数据头,并按照二进制数据头所规定的方式写入转换后的二进制数据,如此,形成一个统一自定义的二进制文件;请参阅图2所示,二进制文件中包括二进制数据的数据头与二进制数据,二进制数据的数据头同样用于表征二进制数据的数据读取规则与数据写入规则,计算机可以依据二进制数据的数据头来读取二进制数据与写入二进制数据。
65.其中,在将lut数据转换成二进制数据之前,需要从lut数据中获取lut数据,而由于lut文件包括各种不同后缀名的文件,所以lut数据需要采取以下步骤进行获取,以下步骤通过转换工具所实现:步骤a1:读取lut文件后缀名,确定lut文件类型。
66.转换工具中存储了后缀名与lut文件类型的对应关系。例如,读取后缀名为vf时,则确定lut文件类型为vf文件。
67.步骤a2:根据lut文件类型,确定lut文件的数据头。
68.转换工具也存储了文件类型与数据头之间的对应关系。例如,在确定出文件类型为vf文件时,则可以确定vf文件的数据头包括float16这一数据格式、13这一单维度尺寸等等。
69.步骤a3:根据lut文件的数据头读取lut文件中的lut数据。
70.转换工具在确定出lut文件的数据头之后,则依据lut文件数据头所规定的读取规则,来读取lut文件中的lut数据。
71.示例地,后缀名为vf的lut文件中,数据头中的数据格式为float16,那么读取lut数据时,则需要按照float16所规定的数据格式去读取lut数据。
72.其中,在将lut数据转换成二进制数据之后,需要为二进制数据生成数据头。
73.由于各种不同后缀名的lut文件中包括不同的lut数据,所以在采取本技术的二进制文件时,需要为二进制文件统一地制定数据头,以使得在进行图像的颜色效果转换时,能够统一地采取本技术实施例所提供的二进制文件来进行颜色效果转换。一种类型的二进制文件可能具有不同的数据头,即,一种颜色查找表可能具有不同的数据头,以使得一种颜色查找表能够有多种数据表达方式。例如,二进制文件a可以采取如下表格1单维度13的尺寸进行存储,也可以采用单维度17的尺寸进行存储,这两个二进制文件a虽然均可以将清新风格的图片转换成暗黑风格的图片,但是二者存储的数据量多少不同。
74.具体地,二进制文件中的数据头至少包括文件标识、文件类型、版本号、单维度尺寸、数据类型、3d标识、保留项与数据偏移量。
75.表格1参照表格1所示,表格1示出了某个二进制文件的数据头,当开发人员在二进制文
件中想要定义二进制文件的数据头格式时,可以在相应的文件标识(表格1中未示出)、版本号、单维度尺寸、数据格式、3d标识、保留项与数据偏移量等标签后写入自己想要定义的数据头。
76.在数据头包括版本号的情况下,版本号为sdbaf.1代表当前二进制文件的版本为初始版本。
77.在数据头包括单维度尺寸的情况下,由于一般rgb每个维度下的值分别为256份,若在二进制文件中每个rgb维度下写入256份二进制数据,这无疑增大了开发人员的劳动强度。
78.因此,本技术实施例中,在数据头中通过单维度尺寸来预定义二进制文件中的二进制数据的份数,用于表征二进制数据的数据量多少。例如,将所述lut数据转换为单维度尺寸是指定尺寸的二进制数据,所述指定尺寸包括以下任一者:13、15、17,在单维度尺寸为13时,则表示二进制文件中包括13份二进制数据;在单维度尺寸为15时,则表示二进制文件中包括15份二进制数据,在单维度尺寸为17时,则表示二进制数据中包括17份二进制数据。
79.通过数据头包括单维度尺寸的设置,不必在二进制文件中写入每一份二进制数据,只需写入指定尺寸的二进制数据即可,降低了开发人员的劳动强度。
80.在数据头包括数据格式的情况下,数据格式用于表征二进制数据的写入规则与读取规则,例如,将所述lut数据转换为数据格式是指定数据格式的二进制数据,所述指定数据格式包括以下任一者:uint8无符号整型数据,uint16无符号整型数据,float16半精度浮点数据为,float32单精度浮点数据。数据格式为0时,表明二进制文件中存储的是uint8数据格式的二进制数据;数据格式为1时,表明二进制文件中存储的是uint16数据格式的二进制数据;数据格式为3时,表明二进制文件中存储的是float16数据格式的二进制数据;数据格式为4时,表明二进制文件中存储的是float32数据格式的二进制数据。那么,开发人员即可在数据格式的标签下写入0、1、2、3,从而表征二进制文件内的二进制数据是何种数据格式。
81.在数据头包括3d标识的情况下,3d标识为0,表明二进制文件是1dlut,1dlut指的是二进制文件能够将图像的颜色转换成更深或者更浅的颜色,例如蓝色转换成深蓝或浅蓝;3d标识为1,表明二进制文件是3dlut,3dlut指的是二进制文件能够将图像的颜色转换成另外一种颜色,例如蓝色转换成红色。那么,开发人员即可在3d标识的标签下写入0、1,从而表征二进制文是1dlut还是3dlut。
82.在数据头包括数据保留项的情况下,数据保留项可以为任意数值,例如0、8等等,从而在数据头中预留出为后续扩展的功能预留数据头内的字节。
83.在数据头包括数据偏移量的情况下,利用数据偏移量可以快速地查找到二进制数据的初始位置。
84.例如,二进制数据的数据头的总共占用了8个字节,那么紧随在二进制数据的数据头后的二进制数据的起始位置是第9个字节。因此,为了快速查找到二进制数据的起始位置,会在数据头的数据偏移量这一标签下写入8,那么计算机则会依据这8个字节,自动地从第9个字节的位置开始读取二进制数据,而非逐个从第一个字节读取到第9个字节,从而提升了二进制数据的读取速度。
85.子步骤2043:将所述数据头添加在所述二进制数据之上,得到所述二进制文件。
86.在本技术实施例中,在设置好如表格1所示的数据头之后,可以在二进制文件中按照表格1所示的数据头所规定的格式,在二进制文件中写入二进制数据,并将表格1所述的数据头添加在二进制数据的前方,以此形成数据头在前,二进制数据在后的二进制文件。
87.其中,在二进制文件中添加数据头与写入二进制数据的先后顺序本技术在此不做限制,二者的顺序可以相互调换。
88.在一些场景中,将表征指定数据格式的第一标识添加到二进制数据之上,得到所述二进制文件,其中,不同的指定数据格式对应不同的第一标识。
89.如表格1所示,可以将第一标识添加在二进制数据的前方,第一标识可以包括0、1、2、3,在第一标识为0时,表明数据格式是uint8,其余第一标识以此类推。
90.在另一些场景中,将表征指定尺寸的第二标识添加到所述二进制数据之上,得到所述二进制文件,其中,不同的单维度尺寸对应不同的第二标识。
91.如表格1所示,可以将第二标识添加在二进制数据的前方,第二标识可以包括13、15、17,在第二标识为13时,表明单维度尺寸是13。
92.在又一些场景中,将表征指定偏移量的第三标识添加到所述二进制数据之上,其中,不同的制定偏移量对应不同的第三标识。
93.如表格1所示,可以将第三标识添加在二进制数据的前方,第三标识可以包括任意数值,在第三标识为8时,表明lut数据的初始位置与二进制数据的初始位置之前相差8个字节。
94.步骤205:将所述二进制文件转换成目标颜色查找表,并存储在内存中,所述目标颜色查找表包括十进制数据,其中,所述十进制数据通过所述二进制数据转换得到。
95.在上述步骤201至205中,lut文件、二进制文件与目标颜色查找表的本身均是一种颜色查找表,可以将图像的一种颜色效果转换成另外一种颜色效果,区别在于二进制文件中的二进制数据的空间占用量更小,内存中的目标颜色查找表对图像的颜色效果转换的速度更快。
96.步骤206:在所述内存中,利用所述目标颜色查找表对所述待校色图像进行校色处理,得到校色后的图像。
97.在步骤步骤206中,具体包括以下步骤:子步骤2061:将非rgb色彩空间的待校色图像转换成rgb色彩空间的待校色图像。
98.由于待校色图像可能包括yuv等非rgb色彩空间,而本技术实施例中的二进制文件所采用的是rgb色彩空间,因此需要将非rgb色彩空间的待校色图像转换成rgb色彩空间下的待校色图像。
99.具体转换时,可以采取如下公式,将待校色图像中每个像素的yvu值转换成rgb值:(公式1)(公式2)(公式3)从上述公式1、公式2与公式3三个公式中可以看出,rgb值可以通过yuv值转换得到,从而可以将yuv色彩空间下的待校色图像转换成rgb色彩空间待校色图像。
100.子步骤2062:获取待校色图像上每个像素的rgb值。
101.子步骤2063:从所述目标颜色查找表的十进制数据中查找出与每个像素rgb值对应输出的目标十进制数据。
102.本技术实施例中,待校色图像上的像素数量过多,其数据量比较庞大,会导致图像的颜色转换过程比较缓慢。
103.其中,所以为了更快地进行图像的颜色转换,所以可以分为多线程的方式,从目标颜色查找表中查找到目标十进制数据。
104.具体地,将待校色图像划分为多个图像块,将每个图像块以不同的线程在目标颜色查找表中同时查找所对应的目标十进制数据,再将目标十进制数据以不同的线程输入至待校色图像中,以完成待校色图像的颜色效果转换。
105.其中,为了更快地从目标颜色查找表中查找出目标十进制数据,还在内存中写入了索引表,索引表中具有索引值与目标十进制数据之间的对应关系。
106.具体地,在内存中利用索引表与插值表来对待校色图像进行颜色转换时,可以从所述内存中读取索引表与插值表;将所述校色需求信息作为索引值,在所述索引表中查找到与所述索引值对应的目标数据与目标插值系数;从所述插值表中获取所述目标插值系数,且从所述目标颜色查找表中获取所述目标数据;依据所述目标插值系数与所述索引值,得到目标插值;将所述目标插值与所述目标数据输入至所述待校色图像中,得到校色后的图像。
107.其中,目标数据指的是目标颜色查找表中若干十进制数据的目标十进制数据。那么,获取目标十进制数据的过程如下:将待校色图像中每个像素的rgb值作为索引值,在索引表中查找,查找到对应的目标十进制数据之后,从目标颜色查找表中获取该目标十进制数据。再将目标十进制数据输入至待校色图像中,以完成待校色图像的颜色转换。
108.其中,由于在子步骤2042中已经预先定义了单维度尺寸,所以在目标颜色查找表中,可能无法查找到待校色图像中某些像素的rgb值所对应的目标十进制数据。
109.表格2示例地,如表格2所示,在r维度之下,目标颜色查找表中定义了单维度尺寸为3之后,原有的256个十进制数据会缩减为50、200与255这三个十进制数据,而在这些数据中,50与200之间本应该有51、52、53、54等十进制数据,正是设置了单维度尺寸之后,所以缺失了这些十进制数据。
110.相应地,在索引表中输入待处理图像的某些像素值作为索引值时,则无法从目标颜色查找表中查询到51、52、53、54等十进制数据。
111.因此,为了能够得到51、52、53、54这些目标颜色查找表所缺失的十进制数据,本技术实施例还设置了插值表,并且在索引表中还设置了索引值与目标插值系数之间的对应关系。
112.示例地,索引值26与插值系数1对应,当获取到待校色图像中某一像素下的r值为26时,可以将26作为索引值在索引表中查询出1这一目标插值系数,之后再从插值表中获取到该目标插值系数1。
113.再在rgb色彩空间中查找到索引值26周围最接近的八个点,例如22、23、24、25、27、28、29、30;再这8个点中分为22与23,24与25,27与28,29与30这四组数据,四组数据均分别利用目标插值系数1与线性差值算法,来得到四个数据;再将四个数据分为两组,两组数据中的两个数据之间又分别目标插值系数1与线性差值算法来得到两个数据;最后在两个数据之间利用目标插值系数1与线性差值算法,来得到目标十进制数据51。再将目标十进制数据51输入至待校色图像中,以完成待校色图像的颜色效果转换。
114.在这个过程中,可以将索引值与每组数据中的两个数据代入至线性差值算法中,从而计算得到目标十进制数据。
115.可以看出,通过单维度尺寸的设置,可以更加节约二进制文件或目标颜色查找表的空间占用量,但是会带来部分十进制数据缺失的问题,通过上述方式,可以弥补缺失的十进制数据,以完成待校色图像的颜色效果转换,以在更少地占用二进制文件或目标颜色查找表的空间占用量的同时,还能完成待校色图像的颜色效果转换工作。
116.其中,为了提升读取目标颜色查找表中的十进制数据的读取速度,还在内存中记录了每个rgb维度下的数据尺寸,数据尺寸包括b表尺寸与gb表尺寸。
117.示例地,由于目标颜色查找表中存储了rgb每个维度下的十进制数据,而每个维度下的十进制数据均包括256个数值,所以计算机在需要读取目标颜色查找表中g维度下的数值时,需要在读取完b维度下的256个数值之后,才能读取g维度下的数值,这无疑也降低了计算机对一个目标颜色查找表的读取速度。
118.因此,本技术实施例为了提升计算机的读取速度,在内存中设置了b表尺寸,b表尺寸则代表b维度下的数据量,那么计算机想要读取g维度下的数值时,则可以通过b表尺寸直接知道b维度下的数据量是多少,从而在知道数据量之后,直接读取g维度下的数值,而不必逐个去读取b维度下的数值,如此,提升了计算机的读取速度。
119.基于同一发明构思,本技术另一实施例提供一种图像校色装置,请参阅图3示出的一种图像校色装置,所述装置包括:获取模块,用于获得待校色图像以及对应的校色需求信息;读取模块,用于根据所述校色需求信息,从磁盘中读取满足所述校色需求信息的二进制文件,所述二进制文件中包括二进制数据;其中,所述二进制数据通过lut文件中的lut数据转换得到;存储模块,用于将所述二进制文件转换成目标颜色查找表,并存储在内存中,所述目标颜色查找表包括十进制数据,其中,所述十进制数据通过所述二进制数据转换得到;校色模块,用于从内存中获取满足所述校色需求信息的目标颜色查找表,对所述待校色图像进行校色处理,得到校色后的图像。
120.可选地,所述装置还包括:判断模块,用于根据所述校色需求信息,检索内存中各个目标颜色查找表的数据头,确定是否存在满足所述校色需求信息的目标颜色查找表;第一执行模块,用于在内存中不存在满足所述校色需求信息的目标颜色查找表的
情况下,执行步骤:根据所述校色需求信息,从磁盘中读取满足所述校色需求信息的二进制文件。
121.可选地,所述装置还包括:文件获取模块,用于获取待处理的lut文件;转换模块,用于将所述lut文件中的所述lut数据转换成所述二进制数据,并为所述二进制数据生成数据头;添加模块,用于将所述数据头添加在所述二进制数据之上,得到所述二进制文件。
122.可选地,所述数据头包括数据格式;所述转换模块还包括:格式生成模块,用于将所述lut数据转换为数据格式是指定数据格式的二进制数据,所述指定数据格式包括以下任一者:uint8无符号整型数据,uint16无符号整型数据,float16半精度浮点数据为,float32单精度浮点数据;所述添加模块还包括:格式添加模块,用于将表征指定数据格式的第一标识添加到二进制数据之上,得到所述二进制文件,其中,不同的指定数据格式对应不同的第一标识。
123.可选地,所述数据头包括单维度尺寸;所述转换模块还包括:尺寸生成模块,用于将所述lut数据转换为单维度尺寸是指定尺寸的二进制数据,所述指定尺寸包括以下任一者:13、15、17;所述添加模块还包括:尺寸添加模块,用于将表征指定尺寸的第二标识添加到所述二进制数据之上,得到所述二进制文件,其中,不同的单维度尺寸对应不同的第二标识。
124.可选地,所述数据头包括数据偏移量;所述转换模块还包括:偏移量生成模块,用于将所述lut数据转换成数据偏移量是指定偏移量的二进制数据;所述添加模块还包括:偏移量添加模块,用于将表征指定偏移量的第三标识添加到所述二进制数据之上,其中,不同的制定偏移量对应不同的第三标识。
125.可选地,所述校色模块还包括:表读取模块,用于在所述内存中读取索引表与插值表;索引模块,用于将所述校色需求信息作为索引值,在所述索引表中查找到与所述索引值对应的目标数据与目标插值系数;差值获取模块,用于从所述插值表中获取所述目标插值系数,且从所述目标颜色查找表中获取所述目标数据;差值获得模块,用于依据所述目标插值系数与所述索引值,得到目标插值;校色子模块,用于将所述目标插值与所述目标数据输入至所述待校色图像中,得到校色后的图像。
126.基于同一发明构思,本技术实施例还提供一种电子设备,包括:一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行上述图像校色方法。
127.基于同一发明构思,本技术实施例还提供一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行上述图像校色方法。
128.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关
之处参见方法实施例的部分说明即可。
129.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
130.本领域内的技术人员应明白,本技术实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本技术实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
131.本技术实施例是参照根据本技术实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
132.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
133.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
134.尽管已描述了本技术实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术实施例范围的所有变更和修改。
135.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
136.以上对本技术所提供的一种图像校色方法、装置、电子设备与机器可读介质,进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
转载请注明原文地址:https://doc.8miu.com/read-1450261.html

最新回复(0)