一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种图像绘制方法、显示装置及存储介质与流程

2021-09-28 22:14:00 来源:中国专利 TAG:显示 绘制 装置 图像 方法


1.本发明涉及显示技术领域,特别是涉及一种图像绘制方法、显示装置及存储介质。


背景技术:

2.随着显示技术的不断发展,显示装置被广泛地应用到各个领域,为了更好地分析显示装置中显示图像的画面色彩分布等情况,通常需要绘制显示图像对应的直方图,例如rgb直方图、亮度直方图等,横坐标为灰阶,纵坐标为像素数量。其中,rgb直方图可以展示每个颜色分量对应不同灰阶的像素数量分布,亮度直方图可以展示不同亮度灰阶的像素数量分布。
3.在实际应用中,若某个灰阶对应的像素数量有多少就绘制多高,则在某个灰阶对应的像素数量较多的情况下,会存在该像素数量对应的柱状超出直方图范围的问题,也即是导致较高柱状不易显示。另外,若某个灰阶对应的像素数量有多少就画多高,则在大部分灰阶对应的像素数量较少的情况下,还会存在较少像素数量对应的柱状不易观察到的问题,也即是导致较低柱状不易查看。使用这样的直方图无法对图像进行准确地分析处理,使用价值低。


技术实现要素:

4.本发明提供一种图像绘制方法、显示装置及存储介质,以解决在绘制直方图时,若灰阶对应的像素数量有多少就绘制多高,将导致较高柱状不易显示、较低柱状不易查看的问题。
5.为了解决上述问题,本发明公开了一种图像绘制方法,包括:
6.确定显示图像中的每个目标像素的灰阶值;
7.根据每个所述目标像素的灰阶值,确定每个预设灰阶等级的像素数量;
8.通过第一进制表示各个所述像素数量中的最大数量,得到最大数量第一进制数,并读取所述最大数量第一进制数中预设位数范围的数值;
9.确定所述数值对应的比例系数;
10.根据待绘制直方图高度、待绘制的灰阶和所述比例系数,绘制直方图。
11.可选地,所述确定显示图像中的每个目标像素的灰阶值之前,还包括:
12.根据所述显示图像中任一灰阶所能够达到的最大像素数量和所述待绘制直方图高度,确定多个等分的数值范围;多个所述数值范围不重合且连续;
13.确定每个所述数值范围的中间值的倒数;所述中间值为整数;
14.将每个所述倒数与预设系数相乘,得到第一乘积,所述第一乘积为整数;
15.根据所述数值范围的数量,确定多个存储地址;
16.将每个所述第一乘积作为比例系数,按照从小到大的顺序分别一一对应存入所述多个存储地址。
17.可选地,所述确定所述数值对应的比例系数,包括:
18.将所述数值作为目的存储地址,确定所述目的存储地址中存储的比例系数。
19.可选地,所述数值范围的数量为预设数量,所述数值范围内的数值个数的倒数与所述预设系数的乘积为预设乘积。
20.可选地,所述最大数量第一进制数通过第一数据结构表示,所述第一数据结构从末位开始包括第一位数范围和第二位数范围,所述第一位数范围从所述第一位数范围的首位开始包括所述预设位数范围,所述第一位数范围中的数值表示所述待绘制直方图高度,所述第二位数范围中的数值表示所述最大数量第一进制数所对应的所述数值范围中的任一数值,所述预设位数范围中的数值表示所述最大数量第一进制数所对应的所述数值范围。
21.可选地,所述根据所述待绘制直方图高度、待绘制的灰阶和所述比例系数,绘制直方图,包括:
22.按照所述待绘制直方图高度,绘制所述最大数量对应的第一灰阶;
23.对于所述第一灰阶之外的任一待绘制的第二灰阶,将所述第二灰阶对应的像素数量与所述比例系数相乘,得到第二乘积;
24.确定所述第二乘积与所述预设系数的商,得到所述第二灰阶对应的柱状高度;
25.根据所述第二灰阶对应的柱状高度,绘制直方图。
26.可选地,所述根据所述第二灰阶对应的柱状高度,绘制直方图,包括:
27.将所述待绘制直方图高度与所述第二灰阶对应的柱状高度相减,得到所述第二灰阶的柱状顶部至所述待绘制直方图高度处的留白高度;
28.按照所述留白高度,绘制所述第二灰阶的柱状顶部至所述待绘制直方图高度处的留白区域;
29.当所述留白区域绘制完毕时,按照所述第二灰阶对应的柱状高度,绘制所述第二灰阶的柱状。
30.可选地,所述预设系数为2的n次幂,所述确定所述第二乘积与所述预设系数的商,得到所述第二灰阶对应的柱状高度,包括:
31.通过二进制表示所述第二乘积,得到第二乘积二进制数,并将所述第二乘积二进制数右移n位,得到所述第二灰阶对应的柱状高度。
32.可选地,所述确定显示图像中的每个目标像素的灰阶值,包括:
33.将所述显示图像拆分为多个显示子图像;
34.确定每个所述显示子图像中的每个所述目标像素的灰阶值。
35.可选地,所述第一进制为二进制。
36.为了解决上述问题,本发明还公开了一种显示装置,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的图像绘制方法的步骤。
37.为了解决上述问题,本发明还公开一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的图像绘制方法的步骤。
38.与现有技术相比,本发明包括以下优点:
39.在本发明实施例中,首先可以确定显示图像中的每个目标像素的灰阶值,之后根
据每个目标像素的灰阶值,确定每个预设灰阶等级的像素数量,然后,可以通过第一进制表示各个像素数量中的最大数量,得到最大数量第一进制数,并读取最大数量第一进制数中预设位数范围的数值,之后可以确定该数值对应的比例系数,最后可以根据待绘制直方图高度、待绘制的灰阶和查找到的比例系数,绘制直方图。在本发明实施例中,可以根据灰阶中最大的像素数量,确定绘制所需的比例系数,并将待绘制的灰阶对应的柱状高度,按照该比例系数进行绘制,以使各个柱状高度可以按比例进行分配,从而在绘制出的直方图中,较高柱状和较低柱状都能够保持显示高度适宜,有效绘制高度基本集中在直方图腰部,从而可以清楚地展示显示图像的灰阶集中情况,便于进行分析处理。
附图说明
40.图1示出了本发明实施例一的一种图像绘制方法的流程图;
41.图2示出了本发明实施例一的rgb融合式直方图和亮度直方图的有效绘制区域示意图;
42.图3示出了本发明实施例一的一种rgb分离式直方图的有效绘制区域示意图;
43.图4示出了本发明实施例一的一种用于表示各个像素数量中的最大数量的第一数据结构;
44.图5示出了本发明实施例一的另一种用于表示各个像素数量中的最大数量的第一数据结构;
45.图6示出了本发明实施例一的一种直方图的局部示意图。
具体实施方式
46.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
47.实施例一
48.参照图1,示出了本发明实施例一的一种图像绘制方法的步骤流程图,该方法包括以下步骤:
49.步骤101:确定显示图像中的每个目标像素的灰阶值。
50.在本发明实施例中,该方法可以通过图像绘制装置实现,该图像绘制装置例如可以是fpga(field-programmable gate array,现场可编程门阵列),相应的,该方法可以应用于包括fpga的电子设备,例如高清或超高清的监视器,或者高清电脑等,本发明实施例对此不作具体限定。
51.可选地,步骤101可以通过下述方式实现,包括:将所述显示图像拆分为多个显示子图像;确定每个所述显示子图像中的每个所述目标像素的灰阶值。
52.具体地,当图像绘制装置接收到需要显示的显示图像时,可以将显示图像拆分为多个显示子图像。例如,在8k视频系统中,可以输入的图像的分辨率为7680
×
4320,可选地,对于分辨率为7680
×
4320的显示图像,可以将该显示图像沿纵向拆分为16个区域,得到16个显示子图像,其中,每个显示子图像的分辨率为480
×
4320。
53.对于任一显示子图像,图像绘制装置可以确定每个显示子图像中的每个目标像素的灰阶值,其中,目标像素可以是显示子图像中采样得到的像素,当然也可以是显示子图像
中的全部像素,本发明实施例对此不作具体限定。
54.其中,对像素进行采样,可以在图像整体灰阶情况能够得到较为准确的反映的同时,节约后续统计像素数量的时间,从而能够节省绘制直方图的时间。
55.例如,对于分辨率为480
×
4320的显示子图像,可以沿水平方向每4个像素采样1个像素,沿垂直方向遍历所有行。在具体应用中,可以配合时钟信号进行像素的采样,首先计数每个时钟高电平到来的像素数据,每当第4个像素数据到来时,记录下它的灰阶值。这样,1个显示子图像可以采集得到480
×
4320
×
(1/4)=518400个目标像素的灰阶值,对于显示图像,也即16个这样的显示子图像,共可以采集到518400
×
16=8294400个目标像素的灰阶值。
56.在实际应用中,可以将16个显示子图像的灰阶值数据分别存储在16个不同的第二存储模块中。可选地,第二存储模块具体可以为ram(ramdom access memory,易挥发性随机存取存储器)。
57.此外,在具体应用中,可选地,本步骤可以对多个显示子图像进行并行处理,也即是可以同时确定每个显示子图像中的每个目标像素的灰阶值,如此,可以节省统计灰阶值的时间,从而能够节省绘制直方图的时间。
58.另外,在本发明实施例中,当需要分析不同颜色分量的直方图时,目标像素的灰阶值可以包括r(红色)灰阶、g(绿色)灰阶和b(蓝色)灰阶,或者y(亮度)灰阶、u(色度)灰阶和v(色度)灰阶等。当需要分析亮度直方图时,目标像素的灰阶值可以包括亮度灰阶。
59.可选地,在本步骤之前,该方法还可以包括以下步骤(1)至(5):
60.(1)根据所述显示图像中任一灰阶所能够达到的最大像素数量和所述待绘制直方图高度,确定多个等分的数值范围;多个所述数值范围不重合且连续。
61.在步骤(1)中,显示图像中任一灰阶所能够达到的最大像素数量,也即是完整的显示图像中的像素数量总和,例如对于分辨率为7680
×
4320的显示图像,该显示图像中任一灰阶所能够达到的最大像素数量即为7680
×
4320=33177600,也即是该显示图像中的全部像素的灰阶都相同,例如纯白或纯黑画面的显示图像。
62.图2示出了一种rgb(红绿蓝)融合式直方图和亮度直方图的有效绘制区域示意图,图3示出了一种rgb分离式直方图的有效绘制区域示意图,绘制的直方图大小都是1920
×
1080。参照图2,只有1个有效绘制区域p1,其他区域留白,可以透明显示,其中,p1的大小为1536
×
896,因此,对于rgb融合式直方图和亮度直方图,柱状的最高值即为896。参照图3,有3个有效绘制区域p2、p3和p4,p2、p3和p4可以分别用于绘制r直方图、g直方图和b直方图,其他区域留白,可以透明显示,其中,p2、p3和p4的大小均为1536
×
256,因此,对于rgb分离式直方图,柱状的最高值即为256。
63.在本发明实施例中,可以将像素数量最多的灰阶对应的柱状高度定为有效绘制区域允许绘制的最高值,若将像素数量最多的灰阶对应的柱状高度定为k,也即是像素数量最多的灰阶对应的柱状高度按照一定的比例进行绘制,那么其他灰阶对应的柱状高度就按照这个比例进行分配。例如在显示图像中,灰阶的像素的最大数量是max,那么最大数量max的对应的柱状高度定为k,某灰阶q的像素有m个,那么这个灰阶q对应的柱状高度应为m/(max/k)。
64.例如,对于图3所示的rgb分离式直方图,若在显示图像中,灰阶的像素的最大数量
是max,那么最大数量max的对应的柱状高度可定为256,某灰阶q的像素有m个,那么这个灰阶q对应的柱状高度应为m/(max/256)。
65.在本发明实施例中,待绘制直方图高度也即待绘制直方图的有效绘制区域允许绘制的最高值。例如,对于图3所示的有效绘制区域,待绘制直方图高度为256。再例如,对于图2所示的有效绘制区域,待绘制直方图高度为896,但是,896并不是2的整数次幂,不利于在后续计算中得到整数,因此,在实际应用中,当待绘制直方图高度为896时,可以在后续计算时使用1024(2
10
)进行替代,在后续绘制时,将最高柱状高度之外的其他柱状高度的二进制数据后7位全部置0即可。由于二进制数据的后7位可表示的最大数为127,按照允许绘制的最高值为1024来说,理论上,1023是最高柱状之外的其他柱状所能达到的最大绘制高度,因此,将最高柱状高度之外的其他柱状高度的二进制数据后7位全部置0(最多可减去127),可使绘制的最终柱状高度不会超过896(1023-127=896)。而最高柱状最终将直接绘制为896的高度,而不会按照1024进行绘制,因此,所有柱状的高度都不会超过896。
66.需要说明的是,图2和图3所示的直方图大小和有效绘制区域大小仅为示例,并不对本发明构成限定。
67.在步骤(1)中,可以将0至(最大像素数量ma/待绘制直方图高度k)分段为多个等分的数值范围,等分表示每个数值范围中包含的数值个数相同。
68.可选地,在所述数值范围的数量为预设数量的情况下,所述步骤(1)具体可以包括:根据所述显示图像中任一灰阶所能够达到的最大像素数量、所述待绘制直方图高度和所述预设数量,确定多个等分的数值范围。
69.具体地,可以将最大像素数量除以待绘制直方图高度再除以预设数量,得到划分间隔,该划分间隔表示每个数值范围包括多少个数值。
70.例如,对于rgb分离式直方图,待绘制直方图高度为256,预设数量可以为2025,也即是数值范围的数量为2025,则划分间隔=33177600/256/2025=64,也即是可以每隔64个数值,将0至129600(ma/k=33177600/256=129600)进行分段,得到[0,63]、[64,127]
……
共2025(129600/64=2025)个等分的数值范围,这些数值范围不重合且连续,每个数值范围包括64个数值。
[0071]
再例如,对于rgb融合式直方图和亮度直方图,待绘制直方图高度为1024,预设数量可以为2025,也即是数值范围的数量为2025,则划分间隔=33177600/1024/2025=16,也即是可以每隔16个数值,将0至32400(ma/k=33177600/1024=32400)进行分段,得到[0,15]、[16,31]
……
共2025(32400/16=2025)个等分的数值范围,这些数值范围不重合且连续,每个数值范围包括16个数值。
[0072]
(2)确定每个所述数值范围的中间值的倒数;所述中间值为整数。
[0073]
在步骤(2)中,可以取每个数值范围的中间值的倒数,其中,由于每个数值包括偶数个(64个)数值,因此,中间值可以取中间2个数值中的任一者,例如[0,63]的数值范围的中间值可以取32,[0,15]的数值范围的中间值可以取8。
[0074]
分段取中间值以后,计算中间值的倒数,可以发现,对于rgb融合式直方图和亮度直方图,这些倒数其实就是rgb分离式直方图对应的各个倒数的4倍。
[0075]
(3)将每个所述倒数与预设系数相乘,得到第一乘积,所述第一乘积为整数。
[0076]
在步骤(3)中,可以确定每个倒数分别与预设系数的第一乘积,以将每个所述倒数
扩展为整数。其中,预设系数用于将每个倒数扩展为整数表示,以便于计算和存储。可选地,对于rgb分离式直方图,预设系数可以为2
18
;对于rgb融合式直方图和亮度直方图,预设系数可以为2
16
(2
18
/2
16
=4倍)。
[0077]
(4)根据所述数值范围的数量,确定多个存储地址。
[0078]
在步骤(4)中,数值范围的数量有m个,就可以确定出m个存储地址,可选地,存储地址可以从0开始,相应的,每个存储地址分别为0~(m-1)。
[0079]
例如,数值范围的数量可以为2025个,那么,就可以确定出2025个存储地址,每个存储地址分别是0、1、2、
……
、2023、2024。
[0080]
在实际应用中,该存储地址可以是第一存储模块所包括的存储地址,可选地,第一存储模块具体可以为rom(read only memory,只读存储器)。
[0081]
(5)将每个所述第一乘积作为比例系数,按照从小到大的顺序分别一一对应存入所述多个存储地址。
[0082]
在步骤(5)中,可以将每个第一乘积作为比例系数,按照从小到大的顺序分别一一对应存入多个存储地址,其中,最小的第一乘积存入最小存储地址0,最大的第一乘积存入最大存储地址。例如,最小的第一乘积存入最小存储地址0,最大的第一乘积存入存储地址2024。这些比例系数也即是rom参数。
[0083]
另外,可选地,所述数值范围的数量可以为预设数量,所述数值范围内的数值个数的倒数与所述预设系数的乘积可以为预设乘积。
[0084]
在本发明实施例中,在数值范围的数量为预设数量的情况下,不论最大像素数量、待绘制直方图高度是多少,只要把数值范围的数量确定(等于预设数量),例如2025,从而保证最大像素数量
×
待绘制直方图高度不变,则能够保证步骤(5)中存储地址不变,存储地址都是0~2024。
[0085]
在数值范围内的数值个数(也即划分间隔)的倒数与预设系数的乘积为预设乘积的情况下,能够保证步骤(5)中比例系数不变,比例系数都是第一乘积。例如预设乘积可以为1/64
×218
,对于rgb分离式直方图,数值范围内的数值个数的倒数1/64
×
预设系数2
18
的乘积为1/64
×218
,对于rgb融合式直方图和亮度直方图,数值范围内的数值个数的倒数1/16
×
预设系数2
16
的乘积也为1/64
×218
,如此,能够保证步骤(5)中比例系数不变,比例系数都是第一乘积。
[0086]
如此,在数值范围的数量为预设数量,且数值范围内的数值个数的倒数与预设系数的乘积为预设乘积的情况下,可以保证步骤(5)中存储地址与比例系数的对应关系(rom参数)不变,存储地址都是0~2024,比例系数都是第一乘积,这样,绘制rgb分离式、rgb融合式和亮度直方图,都只需要一套rom参数即可,无需存储多套rom参数,从而能够节约存储资源。
[0087]
当然,在实际应用中,每个数值范围内的数值个数和数值范围的数量也都是可变的,相应的,rom参数可以有多套,本发明实施例对此不作具体限定。
[0088]
步骤102:根据每个所述目标像素的灰阶值,确定每个预设灰阶等级的像素数量。
[0089]
在本发明实施例中,可以是一个预设灰阶等级包括多个灰阶,也即该多个灰阶属于同一预设灰阶等级。当然,也可以是一个预设灰阶等级可以包括一个灰阶,也即一个灰阶就是一个预设灰阶等级,本发明实施例对此不作具体限定。在具体应用时,每个第二存储模
块都可以将每个预设灰阶等级作为一个存储地址,例如预设灰阶等级有512个,则每个第二存储模块就有512个地址。
[0090]
显示子图像a对应的第二存储模块为a,对于显示子图像a中的任一目标像素,图像绘制装置可以确定该目标像素的灰阶值属于预设灰阶等级x,并可以将该目标像素计入第二存储模块a的地址x中,进行存储。
[0091]
例如,在10bit(比特)系统中,所有像素的rgb、yuv灰阶取值都在0~1023之间,共1024个灰阶,在本发明实施例中,可以将每2个灰阶算做一样的灰阶,作为一个预设灰阶等级,因此,预设灰阶等级是0~511共512个。可以将这512个预设灰阶等级作为512个地址,因此,16个ram中的每一个ram都有512个地址,每个地址对应的数据表示像素数量。对于任一显示子图像,对应ram1,记录该显示子图像分别在ram1的512个预设灰阶等级中的目标像素的数量。例如某目标像素的r灰阶值=612,就在ram1的第306(612/2=306,地址若以0为开头计数,则第306个地址对应的地址表示为305)个地址中存储的数据加1,每个地址中存储的初始数据为0。
[0092]
这样,16个显示子图像对应的数据全部统计结束以后,可以将这16个ram的数据取出来做加和,也即是将每个ram中属于同一地址(同一预设灰阶等级)的像素数量进行加和,从而可以得到每个预设灰阶等级的像素数量。
[0093]
在本发明实施例中,需要统计显示图像中最多预设灰阶等级的像素个数,并以此为最高柱状进行直方图绘制,那么在像素数量累加的过程中,需要记录下最多预设灰阶等级的像素数量,就是设置一个比较机制,在统计过程中,最大数量的初始值可以设为0,每出现更高的像素数量,就更新这个最大数量,可以将这个最大数量记作上文提及的max。
[0094]
需要注意的是,对于rgb融合式直方图,其r、g、b的柱状都是从同一有效绘制区域的底部开始出现的,因此,取最大数量max的时候,应取r、g、b所有灰阶对应的最大数量。而对于rgb分离式直方图,其r、g、b的柱状是从不同有效绘制区域的底部开始出现的,因此,取最大数量max的时候,应分别取r、g、b灰阶对应的最大数量,分别计算r、g、b对应不同灰阶的柱状高度。对于亮度直方图,只有亮度y,取y灰阶对应的最大数量max即可。
[0095]
步骤103:通过第一进制表示各个所述像素数量中的最大数量,得到最大数量第一进制数,并读取所述最大数量第一进制数中预设位数范围的数值。
[0096]
可选地,所述最大数量第一进制数通过第一数据结构表示,所述第一数据结构从末位开始包括第一位数范围和第二位数范围,所述第一位数范围从所述第一位数范围的首位开始包括所述预设位数范围,所述第一位数范围中的数值表示所述待绘制直方图高度,所述第二位数范围中的数值表示所述最大数量第一进制数所对应的所述数值范围中的任一数值,所述预设位数范围中的数值表示所述最大数量第一进制数所对应的所述数值范围。
[0097]
可选地,所述第一进制为二进制。相应的,最大数量第一进制数也即最大数量二进制数。
[0098]
在本发明实施例中,可以通过二进制表示各个像素数量中的最大数量。参照图4,示出了一种用于表示各个像素数量中的最大数量的第一数据结构,可应用于rgb分离式直方图的绘制。参照图5,示出了另一种用于表示各个像素数量中的最大数量的第一数据结构,可应用于rgb融合式直方图和亮度直方图的绘制。
[0099]
如图4和图5所示,可以通过32bit表示各个像素数量中的最大数量max,由于max可能的最大值为33177600(7680
×
4320),是一个25bit数据,但由于设备运算限制,只能计算2的整数次幂的数据,因此,为了保证25bit的有效数据,可以取大于25的最小的2的整数次幂,即32(25)。参照图4和图5,由于只有25bit有效,因此,32bit的高7位默认都为0,起占位作用。
[0100]
在图4所示的数据结构中,低8位(即第一位数范围,第8至1位)可表示256(28),也即是最大数量二进制数中的第8至1位的数值可以表示待绘制直方图高度256。对于rgb分离式直方图,由于最终想要计算出任一灰阶q对应的柱状高度m/(max/256),而max可能的最大值为33177600,因此,max/256直接做除法运算会消耗很大的资源,因此,可以通过二进制表示max,然后忽略低8位(相当于除以256),即可得到max/256的部分,也即是图4中间的11 6共17位可以表示max/256的大小,max/256也即最大数量二进制数所属的数值范围中的任一数值。如此,可以避免进行大数值的除法运算,节约了设备的系统资源。
[0101]
同理,在图5所示的数据结构中,低10位(即第一位数范围,第10至1位)可表示1024(2
10
),也即是最大数量二进制数中的第10至1位的数值可以表示待绘制直方图高度1024。对于rgb融合式直方图和亮度直方图,由于最终想要计算出任一灰阶q对应的柱状高度m/(max/1024),而max可能的最大值为33177600,因此,max/1024直接做除法运算会消耗很大的资源,因此,可以通过二进制表示max,然后忽略低10位(相当于除以1024),即可得到max/1024的部分,也即是图5中间的11 4共15位可以表示max/1024的大小,max/1024也即最大数量二进制数所属的数值范围中的任一数值。如此,可以避免进行大数值的除法运算,节约了设备的系统资源。
[0102]
在图4所示的数据结构中,在忽略低8位的情况下,中间6位(即第二位数范围中除预设位数范围之外的位数范围)可表示0~63(2
6-1),不论中间11位是多少,中间6位的变动范围始终是这64个数值,正好就是rgb分离式直方图对应的数值范围的划分间隔64,由于之前将0至(33177600/256)每隔64个数值划分为2025个数值范围,因此,可以通过读取中间的11位(2
11
=2048>2025),也即32bit中的第25至15位,便可以获得max/256属于哪一个数值范围,也就是说,32bit中的第25至15位,可以表示最大数量第二进制数所对应的数值范围。因此,对于rgb分离式直方图,预设位数范围可以设定为32bit中的第25至15位。
[0103]
同理,在图5所示的数据结构中,在忽略低10位的情况下,中间4位(即第二位数范围中除预设位数范围之外的位数范围)可表示0~15(2
4-1),不论中间11位是多少,中间4位的变动范围始终是这16个数值,正好就是rgb融合式直方图和亮度直方图对应的数值范围的划分间隔16,由于之前将0至(33177600/1024)每隔16个数值划分为2025个数值范围,因此,可以通过读取中间的11位(2
11
=2048>2025),也即32bit中的第25至15位,便可以获得max/1024属于哪一个数值范围,也就是说,32bit中的第25至15位,可以表示最大数量第二进制数所对应的数值范围。因此,对于rgb分离式直方图,预设位数范围可以设定为32bit中的第25至15位。
[0104]
在本发明实施例中,读取到的最大数量第一进制数中预设位数范围的数值,可以表示max/待绘制直方图高度所属的数值范围。由于在之前的步骤中,数值范围对应的序数(0~2024)设定为了2025个存储地址,因此,读取到的该数值即为某个存储地址。
[0105]
具体地,在统计出显示图像的max,并通过第一进制表示出max,得到最大数量二进
制数之后,可以从最大数量二进制数中读取max[24:14],也即最大数量二进制数中的第25至15位。
[0106]
步骤104:确定所述数值对应的比例系数。
[0107]
在本发明实施例中,由于比例系数可以存储在第一存储模块(rom)所包括的存储地址中,因此,本步骤具体可以通过下述方式实现,包括:将所述数值作为目的存储地址,确定所述目的存储地址中存储的比例系数。
[0108]
其中,可以将读取到的最大数量第一进制数中预设位数范围的数值,作为需要查询的目的存储地址,然后可以从第一存储模块中查找该目的存储地址中存储的比例系数。
[0109]
具体地,可以将通过max[24:14]读取出最大数量二进制数中的第25至15位的数值,作为需要查询的目的存储地址,然后可以从第一存储模块中进行寻址,以在第一存储模块中查找该目的存储地址,进而可以获取该目的存储地址中存储的比例系数。
[0110]
步骤105:根据待绘制直方图高度、待绘制的灰阶和所述比例系数,绘制直方图。
[0111]
在本发明实施例中,可选地,本步骤具体可以通过下述方式实现,包括:
[0112]
按照所述待绘制直方图高度,绘制所述最大数量对应的第一灰阶;
[0113]
对于所述第一灰阶之外的任一待绘制的第二灰阶,将所述第二灰阶对应的像素数量与所述比例系数相乘,得到第二乘积;
[0114]
确定所述第二乘积与所述预设系数的商,得到所述第二灰阶对应的柱状高度;
[0115]
根据所述第二灰阶对应的柱状高度,绘制直方图。
[0116]
其中,对于最大数量max对应的第一灰阶,将绘制为有效绘制区域允许的最高高度,也即待绘制直方图高度。对于rgb分离式直方图,可以将最大数量max对应的第一灰阶的柱状高度绘制为待绘制直方图高度256。对于rgb融合式直方图和亮度直方图,可以将最大数量max对应的第一灰阶的柱状高度绘制为待绘制直方图高度896,而不是计算时用到的待绘制直方图高度替代值1024。
[0117]
另外,对于第一灰阶之外的任一待绘制的第二灰阶,也即像素数量小于最大数量max的灰阶,确定第二灰阶对应的像素数量与比例系数的第二乘积,然后可以确定第二乘积与预设系数的商,得到第二灰阶对应的柱状高度。由于之前为了便于计算和存储,将每个倒数通过预设系数扩展为整数,从而使比例系数扩大了预设系数的倍数,因此,在此处,可以再确定第二乘积与预设系数的商,从而将第二乘积再缩小预设系数的倍数。简单来说,就是采用了将数值范围中间值的倒数扩展2
n
倍,使之成为整数,最后再与某灰阶的像素数量m相乘,最后缩小2
n
倍,使该灰阶的柱状高度回到正确范围的处理方式。之后,便可以根据缩小回正确范围的第二灰阶对应的柱状高度,绘制直方图中第二灰阶对应的柱状。
[0118]
需要说明的是,对于rgb融合式直方图和亮度直方图,第二灰阶对应的柱状高度表示为二进制时,应将后7位全部置0,以使柱状高度不超过896。
[0119]
另外,可选地,各个灰阶对应的像素数量可以从第二存储模块中读取,例如ram。
[0120]
在本发明实施例中,由于最大数量对应的柱状绘制为允许的最大高度,且其他柱状的高度可以按照最大数量对应的柱状高度的缩放比例进行分配,如此,无论接收到什么样的显示图像,绘制出的直方图都能够保持高度适宜,实现了动态调节高度,使得有效绘制高度基本集中在直方图腰部,从而可以清楚地展示显示图像的灰阶集中情况,便于进行分析处理。
[0121]
进一步可选地,所述根据所述第二灰阶对应的柱状高度,绘制直方图的步骤,具体可以包括:
[0122]
将所述待绘制直方图高度与所述第二灰阶对应的柱状高度相减,得到所述第二灰阶的柱状顶部至所述待绘制直方图高度处的留白高度;
[0123]
按照所述留白高度,绘制所述第二灰阶的柱状顶部至所述待绘制直方图高度处的留白区域;
[0124]
当所述留白区域绘制完毕时,按照所述第二灰阶对应的柱状高度,绘制所述第二灰阶的柱状。
[0125]
其中,图6示出了一种直方图的局部示意图,参照图6,由于在绘制直方图时,柱状表示的像素数量是从下至上计数的,但是绘制时序与显示时序类似,是从上至下绘制的,因此,对于柱状高度小于待绘制直方图高度的第二灰阶,需要首先绘制柱状上方的留白区域,然后再绘制柱状。相应的,需要首先确定柱状上方留白区域的高度,留白区域绘制完毕后,再按照柱状的高度,绘制留白区域下方的柱状。
[0126]
具体地,首先可以确定待绘制直方图高度第二灰阶对应的柱状高度的差值,也即是确定出有效绘制区域顶部到第二灰阶的柱状顶部有多少高度,这部分高度便是第二灰阶的柱状上方的留白区域的留白高度。然后,可以按照该留白高度,绘制第二灰阶的柱状上方的留白区域,当留白区域绘制完毕时,再按照第二灰阶对应的柱状高度,绘制第二灰阶的柱状。
[0127]
在绘制时,会从上至下进行计数,例如留白高度应绘制96个像素的高度,则当计数小于96时,应绘制留白区域,当计数大于或等于96时,应绘制柱状。
[0128]
进一步可选地,在所述预设系数为2的n次幂的情况下,所述确定所述第二乘积与所述预设系数的商,得到所述第二灰阶对应的柱状高度的步骤,具体可以包括:通过二进制表示所述第二乘积,得到第二乘积二进制数,并将所述第二乘积二进制数右移n位,得到所述第二灰阶对应的柱状高度。
[0129]
其中,在预设系数为2的n次幂的情况下,可以利用二进制数右移相当于除法运算的规则,通过二进制将第二乘积表示为第二乘积二进制数,再将第二乘积二进制数右移n位,即相当于将第二乘积除以预设系数,从而可以将右移后得到数值确定为第二灰阶对应的柱状高度。如此,可以避免进行大数值的除法运算,节约了设备的系统资源。
[0130]
参照图2和图3,最终绘制出的是一个1920
×
1080的直方图图像,绘制的时候,512个灰阶每个灰阶用3个像素表示,横向正好是512
×
3=1536。
[0131]
综上,绘制直方图的主要流程可以概括为:首先统计出显示图像的像素的最大数量max,并通过二进制表示出max,得到最大数量二进制数之后,可以从最大数量二进制数中读取第25至15位。然后可以将读取出的数值作为目的存储地址,从rom中查找该目的存储地址中存储的比例系数(已扩大2
n
倍),之后可以进行直方图绘制,具体地,对于max对应的第一灰阶的柱状,可以直接绘制为有效绘制区域允许的最高高度,对于像素数量小于max的其他第二灰阶,可以将第二灰阶对应的像素数量乘以比例系数,再缩小2
n
倍,可以得到第二灰阶对应的柱状高度,然后按照该柱状高度绘制第二灰阶的柱状,从而可以绘制出直方图。
[0132]
在本发明实施例中,首先可以确定显示图像中的每个目标像素的灰阶值,之后根据每个目标像素的灰阶值,确定每个预设灰阶等级的像素数量,然后,可以通过第一进制表
示各个像素数量中的最大数量,得到最大数量第一进制数,并读取最大数量第一进制数中预设位数范围的数值,之后可以查找该数值对应的比例系数,最后可以根据待绘制直方图高度、待绘制的灰阶和查找到的比例系数,绘制直方图。在本发明实施例中,可以根据灰阶中最大的像素数量,确定绘制所需的比例系数,并将待绘制的灰阶对应的柱状高度,按照该比例系数进行绘制,以使各个柱状高度可以按比例进行分配,从而在绘制出的直方图中,较高柱状和较低柱状都能够保持显示高度适宜,有效绘制高度基本集中在直方图腰部,从而可以清楚地展示显示图像的灰阶集中情况,便于进行分析处理。
[0133]
本发明实施例还公开了一种显示装置,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的图像绘制方法的步骤。
[0134]
本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的图像绘制方法的步骤。
[0135]
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0136]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0137]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0138]
以上对本发明所提供的一种图像绘制方法、显示装置及存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜