一种高动态图像直方图指定方法与系统与流程

文档序号:28858673发布日期:2022-02-11 23:04阅读:184来源:国知局
一种高动态图像直方图指定方法与系统与流程

1.本发明涉及机器视觉技术领域,尤其是涉及一种高动态图像直方图指定方法与系统。


背景技术:

2.高动态范围图像具有广泛的应用场景,如夜晚有强光照情况下行车记录仪的图像记录和显示,工业焊接机器人对高动态焊接图像的处理和显示等,其图像的亮度动态范围很大,可以达到20bit。而目前大多数的显示设备只可以显示8bit的图像,因此需要专门的算法来处理这样20bit以上的数据,使其能保留原始场景在人眼中的视觉效果。基于图像直方图指定的图像增强算法,对于高动态图像的具有很好的增强效果,但是对于20位或更高位的超宽动态图像,其直方图过于庞大,计算量和存贮量都很大,目前一般的处理器或fpga芯片难以满足要求。常规的直方图均衡算法也可用于高动态范围图像增强,但对于超高动态图像,直方图均衡同样具有计算量和存贮量大的问题,且直方图均衡算法由于其参数不可调节,在针对特殊的应用场景时很难达到比较好的效果。现有的其它一些高动态图像增强技术,一般都计算复杂,很难在现有的普通嵌入式平台上实时应用。直方图指定算法由于可以指定目标直方图,算法的处理效果容易控制,在处理特殊的应用场景时效果较为理想。


技术实现要素:

3.本发明提出了一种高动态视频图像实时增强处理方法,包括高动态图像和视频的直方图指定方法,该方法具有占用内存小、计算复杂度低、且能够根据应用需要调整参数的特点,适用于高动态视频图像直方图指定实时处理。
4.本发明首先公开了一种高动态图像直方图指定方法,包括以下步骤:
5.s1:指定目标直方图
6.s2:对输入图像取高k1位统计图像的高位直方图h
f0

7.s3:根据指定目标直方图和高位直方图h
f0
计算从高k1位输入图像灰度值到输出图像灰度值的直方图指定灰度映射表m0;
8.s4:用灰度映射表m0对高位直方图h
f0
进行灰度变换,得到变换后的直方图h
g0

9.s5:找变换后的直方图h
g0
与目标直方图差异最大的n个灰度区间,并按差异大小从大到小排序为gi,i=1,2,

n;
10.s6:根据输出图像的各灰度区间gi,i=1,2,

n的端点,及灰度映射表m0,得到对应输入图像的高位直方图h
f0
的灰度区间端点;
11.s7:将找到的各个灰度区间gi,i=1,2,

n对应的输入图像灰度值,分别线性灰度变换到k2位,再分别统计其输入图像的直方图h
f1
,h
f2
,

,h
fn

12.s8:对各个灰度区间gi,i=1,2,

n,计算从k2位输入图像灰度值到输出图像灰度值的直方图指定灰度映射表,并根据k2位输入图像灰度值与原始输入图像灰度的变换关
系,得到各个灰度区间从原始输入图像灰度值映射到输出图像灰度值的灰度映射表mi,i=1,2,

n;
13.s9:利用灰度映射表mi,i=0,1,2,

n,对输入图像的每个像素的灰度值进行变换,得到输出图像。
14.本发明还公开一种高动态视频图像二级直方图指定方法,包括如下步骤:
15.s11:指定目标直方图
16.s12:对每一帧输入图像取高k1位统计图像的高位直方图h
f0

17.s13:根据指定目标直方图和高位直方图h
f0
计算从高k1位输入图像灰度值到输出图像灰度值的直方图指定灰度映射表m0;
18.s14:用灰度映射表m0对直方图h
f0
进行灰度变换,得到变换后的直方图h
g0

19.s15:找变换后的直方图h
g0
与目标直方图差异最大的n个灰度区间,并按差异大小从大到小排序为gi,i=1,2,

n;
20.s16:根据输出图像的各灰度区间gi,i=1,2,

n的端点,及灰度映射表m0,计算对应输入图像的高位直方图h
f0
的灰度区间端点;
21.s17:利用上一帧图像找到的各个灰度区间gi,i=1,2,

n对应的输入图像灰度值,将当前图像的灰度值分别线性灰度变换到k2位,再分别统计当前输入图像的直方图h
f1
,h
f2
,

,h
fn

22.s18:对各个灰度区间gi,i=1,2,

n,计算从当前k2位输入图像灰度值到输出图像灰度值的直方图指定灰度映射表,并根据k2位输入图像灰度值与原始输入图像灰度的变换关系,得到各个灰度区间从原始输入图像灰度值映射到输出图像灰度值的灰度映射表mi,i=1,2,

n;
23.s19:利用上一帧图像得到的灰度映射表mi,i=1,2,

n,和上上帧图像得到的灰度映射表m0,对当前输入图像的每个像素的灰度值进行变换,得到输出图像。
24.对于上述高动态图像和视频的直方图指定方法,优选的,所述找变换后的直方图h
g0
与目标直方图差异最大的n个灰度区间的方法为:计算变换后的直方图h
g0
中的值与对应的目标直方图中的值的比值,连续小于某指定阈值的区间的长度作为该灰度区间的差异。
25.当输入图像为rgb彩色图像时,将图像转为hsi或hsv颜色空间,只对i或v分量进行处理,处理完后再转换回rgb彩色图像。如果输入图像是没有亮度分量的彩色空间,则将其转到hsv或hsi等彩色空间后取图像的亮度分量(v或i),如,转到hsv的v分量的公式如下:
26.v=max(r,g,b)
27.转到hsi的i分量的公式如下:
28.i=(r+g+b)/3
29.其中r、g、b分别代表高动态图像每个像素在红、绿、蓝三通道的分量。
30.本发明还公开一种高动态视频图像直方图指定系统,包括如下模块:
31.图像采集模块,用于采集视频图像数据;
32.图像输出模块,用于输出增强处理后的视频图像;
33.高动态图像直方图指定模块,用于对图像进行高动态图像增强处理,包括如下子模块:
34.1)高位直方图统计模块,用于对每一帧输入图像取高k1位统计高位直方图h
f0

35.2)灰度映射表计算及直方图变换模块,用于根据指定目标直方图和高位直方图h
f0
计算从高k1位输入图像灰度值到输出图像灰度值的直方图指定灰度映射表m0,并利用灰度映射表m0对直方图h
f0
进行灰度变换,得到变换后的直方图h
g0

36.3)二级增强灰度区间查找模块,用于找变换后的直方图h
g0
与目标直方图差异最大的n个灰度区间,并按差异大小从大到小排序为gi,i=1,2,

n;
37.4)输入图像的灰度区间确定模块,用于根据输出图像的各灰度区间gi,i=1,2,

n的端点,及灰度映射表m0,计算对应输入图像的高位直方图h
f0
的灰度区间端点;
38.5)线性灰度变换及二级直方图统计模块,用于利用上一帧图像找到的各个灰度区间gi,i=1,2,

n对应的输入图像灰度值,将当前图像的灰度值分别线性灰度变换到k2位,再分别统计当前输入图像的直方图h
f1
,h
f2
,

,h
fn

39.6)二级灰度映射表确定模块,用于根据二级直方图对各个灰度区间gi,i=1,2,

n,计算从当前k2位输入图像灰度值到输出图像灰度值的二级直方图指定灰度映射表,并根据k2位输入图像灰度值与原始输入图像灰度的变换关系,得到各个灰度区间从原始输入图像灰度值映射到输出图像灰度值的灰度映射表mi,i=1,2,

n;
40.7)灰度变换模块,用于利用上一帧图像得到的灰度映射表mi,i=1,2,

n,和上上帧图像得到的灰度映射表m0,对当前输入图像的每个像素的灰度值进行变换,得到输出图像。
41.进一步的,该高动态视频图像直方图指定系统,还包括图像传输模块,图像传输模块如下包括子模块:
42.1)图像发送模块,用于将来自图像采集模块的图像数据转换为fpd-link iii或gmsl串行信号,并发送数据;
43.2)图像接收模块,用于接收来自图像发送模块的fpd-link iii或gmsl方式的串行信号,解串后输入高动态图像增强模块;
44.3)传输线,采用同轴线或双绞线,用于将串行化图像数据从图像发送模块传输到图像接收模块。
45.进一步的,其中高动态图像直方图指定模块还包括mipi-csi2解码模块,用于将接收到的mipi csi数据转换为逐像素数据。
46.进一步的,其中所述高动态图像直方图指定模块还包括彩色转换模块,用于将传感器得到的bayer格式图像转换为hsi或hsv格式,并将处理后的图像从hsi或hsv格式转换到rgb格式。
47.进一步的,所述高动态图像直方图指定模块采用fpga或soc fpga芯片实现。
48.本发明的有益效果是,本发明的方法和系统,占用内存小、计算复杂度低、处理效果好,使用低成本的fpga硬件设备或嵌入式处理器,就可实现超高动态图像的实时增强处理。
附图说明
49.图1是本发明高动态图像直方图指定方法的一种实施例流程图。
50.图2是一种指定的目标直方图示例。
51.图3是对焊接图像的实际处理效果的一个示例。
52.图4是本发明高动态视频图像直方图指定方法的一种实施例流程图。
53.图5是本发明高动态视频图像直方图指定系统的一种实施例的结构图。
54.图6是本发明高动态图像直方图指定模块的一种实施例的结构图。
55.图7是本发明高动态视频图像处理系统包括图像传输模块的一种实施例的结构图。
具体实施方式
56.下面结合附图和具体的实施实例对本发明做进一步阐述。以下实例用于说明本发明,但不用于限制本发明的范围。
57.对于输入的高动态图像,一种具体的直方图指定方法的实施例流程图如图1所示,具体步骤如下:
58.s1:指定目标直方图
59.首先根据应用要求,如图像的亮度分布,指定希望处理后图像具有的目标直方图,例如,为了便于显示,目标直方图的灰度取值范围为0~255。对于高动态图像应用如果关注图像的某个灰度区间,则指定该灰度区间分布较少的像素点,从而使该区间得到展开。如图2所示为针对电弧焊接应用指定的一个目标直方图的示例,该目标直方图采用分段折线定义,其中较亮区间像素较少但需要关注,因而指定较少的像素分布,使其具有较宽的动态范围。在实际使用中,可以根据不同的实际应用要求指定不同形状的直方图。
60.s2:对输入图像取高k1位统计图像的高位直方图h
f0

61.对输入图像的亮度分量v取其二进制数的高k1位,如对于20位的原始输入图像,取k1等于13,得到输入图像亮度分量的高位vh:
[0062]vh
=v》》(k
max-k1)
[0063]
其中k
max
为输入高动态图像中最大的灰度对应的二进制量化位数,或输入图像的二进制量化位数,如k
max
等于20。本发明假定k
max
》k1。
[0064]
然后根据亮度分量vh统计输入图像的高位直方图h
f0
。具体如下式所示:
[0065][0066]
其中m和n分别是图像的宽度和高度,δ函数定义为:
[0067][0068]
当输入图像为rgb彩色图像时,将图像转为hsi或hsv颜色空间,只对i或v分量进行处理,在最后一步s9完成直方图指定处理后,再利用h和s转换回rgb或其它格式的图像。
[0069]
s3:根据指定目标直方图和高位直方图h
f0
计算从高k1位输入图像灰度值到输出图像灰度值的灰度映射表m0;
[0070]
首先分别计算高位直方图h
f0
和目标直方图的累积直方图(即累积概率)s
f0
和s
g0
,具体如下式所示:
[0071][0072][0073]
其中t是图像的像素总数。一般地,目标直方图为解析函数的形式,则可以对其积分得到累积概率函数后,再通过累积概率函数取值和归一化得到其累积直方图s
g0

[0074]
上式中s
f0
(l)和s
g0
(k)可以二者都不除以t,结果不变。
[0075]
然后对每个k对应的s
g0
(k),找累积直方图s
f0
和s
g0
差值|s
f0
(l)-s
g0
(k)|最小的l,使高位直方图h
f0
中的灰度级映射到变换后的新灰度级。在映射时,记录直方图到输出结果的映射关系m0。
[0076]
s4:用灰度映射表m0对直方图h
f0
进行灰度变换,得到变换后的直方图h
g0

[0077]
利用上一步的所得的灰度映射表m0对输入直方图h
f0
进行变换,得到变换后的直方图h
g0
,其中一些输入灰度值变换到同一输出灰度值,则将它们累加在一起。这一步称为一级直方图指定。
[0078]
s5:找变换后的直方图h
g0
与目标直方图差异最大的n个灰度区间,并按差异大小从大到小排序为gi,i=1,2,

n;
[0079]
可根据指定后的直方图与目标直方图差异大小来查找灰度区间。由于直方图指定操作存在灰度级合并情况,但不会拆分输入图像的灰度级,导致输出直方图存在零值区间,因此,可以用零值区间长度作为变换后的直方图h
g0
与目标直方图的差异的度量,即找输出直方图连续零值最长的n个灰度区间做二级直方图指定:gi,i=1,2,...,n。也即从最大长度开始往下找到预设数量的n个零值区间。
[0080]
在查找灰度区间时,还可以根据灰度映射表m0来确定区间,m0的映射输出值的不连续是导致出现零值区间的原因,因此该不连续值的增量减1即为输出直方图上的零值区间的长度。
[0081]
另外,因为原始图像灰度较集中,或灰度较集中而在一级直方图指定时被合并在一起了,指定后的直方图的某些灰度级与目标直方图中对应的灰度级差距很大,可以找出这部分区间做二级直方图指定。本实施例中,计算灰度级j变换后的直方图h
g0
中的值h
g0
(j)与对应的目标直方图中的值的比值为它们的差异,连续小于某指定阈值的区间的长度作为该区间的差异,则可找到差异最大的n个值对应的区间:gi,i=1,2,...,n,即为变换后的直方图h
g0
与目标直方图差异最大的n个灰度区间。
[0082]
可记找到的区间为:
[0083]gi
:[g
il
,g
ir
],i=1,2,...,n
[0084]
其中g
il
,g
ir
分别表示一级直方图指定变换后的直方图上的区间的左右端点,g
ir

非零值。
[0085]
s6:根据输出图像的各灰度区间gi,i=1,2,

n的端点,及灰度映射表m0,得到对应输入图像的高位直方图h
f0
的灰度区间端点;
[0086]
设某个区间[g
il
,g
ir
],其g
il
和g
ir
对应输入直方图h
f0
灰度的最小值和最大值分别为v
i,min
、v
i,max
,则可以先根据灰度映射表m0确定区间端点g
il
和g
ir
对应输入图像的高位直方图中的取值。由于一级直方图指定时只输入图像的高k1位,即高位直方图h
f0
是对输入图像灰度值右移(k
max-k1)位后的k1位的值统计得到的,因此对应h
f0
对索引左移相应的位数即可确定灰度区间端点对应输入图像的灰度值范围[v
i,min
,v
i,max
]:
[0087]vi,min
=g
il
<<(k
max-k1)
[0088]vi,max
=((g
ir
+1)<<(k
max-k1))-1
[0089]
s7:将找到的各个灰度区间gi,i=1,2,

n对应的输入图像灰度值,分别线性灰度变换到k2位,再分别统计其输入图像的直方图h
f1
,h
f2
,

,h
fn

[0090]
即为对原图各灰度区间做线性变换,使第i个区间[v
i,min
,v
i,max
]映射到其中k2为用于统计直方图的线性变换后的像素数值范围对应的二进制位数,它确定了直方图的大小,这个直方图称为二级直方图,一般取k2与k1相同。具体的线性变换方法为:
[0091][0092]
其中v为[v
i,min
,v
i,max
]区间内的原输入图像灰度值。然后分别统计各原图灰度区间灰度变换后的y的直方图h
f1
,h
f2
,

,h
fn
。如果则上式线性变换可改为:
[0093]
y=v-v
i,min
[0094]
即无需进行灰度压缩。
[0095]
然后分别对于各区间变换后的y统计各灰度区间的直方图h
fi
[0096]
s8:对各个灰度区间gi,i=1,2,

n,计算从k2位输入图像灰度值到输出图像灰度值的直方图指定灰度映射表,并根据k2位输入图像灰度值与原始输入图像灰度的变换关系,得到各个灰度区间从原始输入图像灰度值映射到输出图像灰度值的灰度映射表mi,i=1,2,

n;
[0097]
先根据上一步统计得到的各灰度区间的直方图h
fi
,分别计算各灰度区间的累积直方图s
fi
,i=1,2,

n:
[0098][0099]
其中ti是各个灰度区间的像素总数。
[0100]
再计算各灰度区间对应的目标直方图的累积直方图s
gi

[0101]
[0102]
其中ti是各个区间的像素总数,g
il
和g
ir
分别为变换后的直方图上区间的左右端点,即输出图像的灰度级。
[0103]
上面s
fi
(l)和s
gi
(k)的式子可以二者都不除以ti,不影响结果。
[0104]
然后对每个k对应的s
gi
(k),找累积直方图s
fi
和s
gi
差值|s
fi
(l)-s
gi
(k)|最小的l,使各个灰度区间的直方图h
fi
中的灰度级映射到变换后的新灰度级。在映射时,记录直方图到输出结果的映射关系mi,i=1,2,

n。此为二级直方图指定。
[0105]
s9:利用灰度映射表mi,i=0,1,2,

n,对输入图像的每个像素的灰度值进行变换,得到输出图像。
[0106]
在输入像素时,先根据记录的各灰度区间对应的输入图像灰度区间,判断其灰度值是否属于i=1,2,

n区间,确定其对应的灰度映射表。在确定像素灰度值属于某个区间后,需要先将像素灰度值归一化到[v
i,min
,v
i,max
],具体的归一化方式见步骤s7。如果输入像素灰度值不属于i=1,2,

n区间,则将输入像素灰度值取高k1位,并对应灰度映射表m0。然后利用已得到的灰度映射表mi,i=0,1,2,

n,对输入图像的每个像素的灰度值进行变换,得到输出图像。
[0107]
当输入图像为rgb彩色图像时,由于上述过程只对转为hsi或hsv颜色空间后的i或v分量进行处理,只要利用h和s就能转换回rgb彩色图像,也可转换为其它格式的彩色图像。
[0108]
在本实施例中,如果采用常规的直方图指定算法对20位超高动态图像进行处理,则直方图大小为1m个单元,需要用的内存为8mb,不仅占用内存大,直方图的清空也很花时间,很难实现视频的实时处理;若采用本发明方法,若区间个数设为8,设k1为13,k2为13,则其占用的内存为360kb。因此,本方法可以在成本较低的fpga或嵌入式处理器上实现实时超高动态图像增强处理。
[0109]
本实施例对一张焊接图像的处理效果如图3所示,左侧为只取高位时图像的输出结果,图像中暗处完全变黑,亮处的细节也存在丢失现象;右侧为本发明的处理效果,图像中暗处的内容保留完整,且亮处的细节更为丰富,实现了高动态图像增强显示的目的。
[0110]
实施例二:
[0111]
对于输入的高动态视频,可以采用实施例一所示的方法对每帧图像进行处理,但在统计高位直方图、统计各灰度区间的二级直方图和对图像进行直方图指定处理三个阶段均需要遍历整幅图像,不仅需要存贮整幅图像数据,而且处理时间长,实时处理对处理器性能要求高。本发明提出一种流水处理方法对视频图像进行二级直方图指定方法,利用上上帧图像的高位直方图、上帧图像的二级直方图,对当前图像进行直方图指定处理,随着图像的输入,同时完成高位直方图、二级直方图统计和对当前图像进行直方图指定处理,不需要存贮图像数据,特别适用于fpga或嵌入式处理器实现实时处理,具有处理速度快、时延非常小的特点。一种具体的高动态视频二级直方图指定的实施例流程图如图4所示,具体过程如下:
[0112]
s11:指定目标直方图
[0113]
对于高动态图像视频处理,各帧图像采用相同的目标直方图。具体目标直方图的指定方法与步骤s1相同。可在系统初始化时,将目标直方图计算好后先输入到缓存中。
[0114]
s12:对每一帧输入图像取高k1位统计图像的高位直方图h
f0

[0115]
高动态视频逐帧将图像数据输入系统,由于在硬件处理系统中难以储存一帧的图
像数据直接处理,因此可以利用视频相邻帧图像内容相近的性质,对视频数据进行流水处理,将上一帧图像中计算的结果信息用于下一帧的处理。首先对输入系统的第一帧图像统计高k1位直方图h
f0
,具体方法与s2相同。
[0116]
需要注意的是,在直方图统计前,应先将用于统计直方图的存贮器清空,对于视频可以在视频的消隐期完成。因为这是大家都熟知的,以后不再说明。
[0117]
s13:根据指定目标直方图和高位直方图h
f0
计算从高k1位输入图像灰度值到输出图像灰度值的直方图指定灰度映射表m0,具体方法与s3相同。
[0118]
对于高动态图像视频处理,由于在进行直方图指定计算时,目标直方图和输入图像的高位直方图的累积分布都是单调递增函数,因此只需要一次循环就能够在帧消隐期完成灰度变换。此步骤可在第一帧图像的帧消隐期计算。
[0119]
s14:用灰度映射表m0对直方图h
f0
进行灰度变换,得到变换后的直方图h
g0

[0120]
利用上一步所得的灰度映射表m0对输入直方图h
f0
进行变换,得到变换后的直方图h
g0
,其中一些输入灰度值变换到同一输出灰度值,则将它们累加在一起。这一步称为一级直方图指定。
[0121]
s15:找变换后的直方图h
g0
与目标直方图差异最大的n个灰度区间,并按差异大小从大到小排序为gi,i=1,2,

n;具体方法与s5相同。
[0122]
s16:根据输出图像的各灰度区间gi,i=1,2,

n的端点,及灰度映射表m0,计算对应输入图像的高位直方图h
f0
的灰度区间端点;
[0123]
具体计算方法与s6相同。此步骤也是下一帧图像到来之前在帧消隐期完成的。
[0124]
s17:利用上一帧图像找到的各个灰度区间gi,i=1,2,

n对应的输入图像灰度值,将当前图像的灰度值分别线性灰度变换到k2位,再分别统计当前输入图像的直方图h
f1
,h
f2
,

,h
fn

[0125]
该的方法与步骤s7基本相同,所不同的是,步骤s16计算得到的[v
i,min
,v
i,max
]是来自上一帧图像的。另外与本步骤同时处理的还有步骤s12,即同时统计当前输入图像的高位直方图。
[0126]
s18:对各个灰度区间gi,i=1,2,

n,计算从当前k2位输入图像灰度值到输出图像灰度值的直方图指定灰度映射表,并根据k2位输入图像灰度值与原始输入图像灰度的变换关系,得到各个灰度区间从原始输入图像灰度值映射到输出图像灰度值的灰度映射表mi,i=1,2,

n;
[0127]
该步骤与步骤s8方法相同。
[0128]
s19:利用上一帧图像得到的灰度映射表mi,i=1,2,

n,和上上帧图像得到的灰度映射表m0,对当前输入图像的每个像素的灰度值进行变换,得到输出图像。
[0129]
本步骤方法与步骤s9相同,所不同的是灰度映射表分别来自上上帧和上一帧图像的统计结果。
[0130]
上述步骤流水处理后,输出得到对输入高动态图像的直方图指定化结果,延迟只有几个像素时钟周期,具有很好的实时性。
[0131]
实施例三:
[0132]
本发明实施例提供如图5所示一种高动态视频图像直方图指定系统,包括:图像采
集模块101,用于采集视频图像数据;图像输出模块105,用于输出增强处理后的视频图像;高动态图像直方图指定模块104,用于对图像按实施例二所述方法进行高动态图像增强处理。
[0133]
其中高动态图像直方图指定模块如图6所示,包括如下子模块:
[0134]
1)高位直方图统计模块201,用于对每一帧输入图像取高k1位统计高位直方图h
f0

[0135]
2)灰度映射表计算及直方图变换模块202,用于根据指定目标直方图和高位直方图h
f0
计算从高k1位输入图像灰度值到输出图像灰度值的直方图指定灰度映射表m0,并利用灰度映射表m0对直方图h
f0
进行灰度变换,得到变换后的直方图h
g0

[0136]
3)二级增强灰度区间查找模块203,用于找变换后的直方图h
g0
与目标直方图差异最大的n个灰度区间,并按差异大小从大到小排序为gi,i=1,2,

n;
[0137]
4)输入图像的灰度区间确定模块204,用于根据输出图像的各灰度区间gi,i=1,2,

n的端点,及灰度映射表m0,计算对应输入图像的高位直方图h
f0
的灰度区间端点;
[0138]
5)线性灰度变换及二级直方图统计模块205,用于利用上一帧图像找到的各个灰度区间gi,i=1,2,

n对应的输入图像灰度值,将当前图像的灰度值分别线性灰度变换到k2位,再分别统计当前输入图像的直方图h
f1
,h
f2
,

,h
fn

[0139]
6)二级灰度映射表确定模块206,用于根据二级直方图对各个灰度区间gi,i=1,2,

n,计算从当前k2位输入图像灰度值到输出图像灰度值的二级直方图指定灰度映射表,并根据k2位输入图像灰度值与原始输入图像灰度的变换关系,得到各个灰度区间从原始输入图像灰度值映射到输出图像灰度值的灰度映射表mi,i=1,2,

n;
[0140]
7)灰度变换模块207,用于利用上一帧图像得到的灰度映射表mi,i=1,2,

n,和上上帧图像得到的灰度映射表m0,对当前输入图像的每个像素的灰度值进行变换,得到输出图像。
[0141]
上述图5中各模块可以集成在一起,装在一个机壳中,如成为一台高动态图像摄像机。但有些场合,如焊接机器人应用,希望图像采集和处理模块分成二部分,其间需要进行图像传输。图7所示就是一种包括图像传输模块的工作形态,其中图像传输模块如虚线框中所示。图像传输模块如下包括子模块:
[0142]
1)图像发送模块102,用于将来自图像采集模块的图像数据转换为fpd-link iii或gmsl串行信号,并发送数据;
[0143]
2)图像接收模块103,用于接收来自图像发送模块的fpd-link iii或gmsl方式的串行信号,解串后输入高动态图像直方图指定模块;
[0144]
3)传输线106,采用同轴线或双绞线,用于将串行化图像数据从图像发送模块传输到图像接收模块。
[0145]
图像采集模块101所用的图像传感器,较多是采用mipi-csi2接口输出图像数据,即图像采集模块101输出mipi-csi2格式的视频图像数据,如果系统包括图像传输模块,则其图像接收模块输出也相应地为mipi-csi2格式的视频图像数据,mipi-csi2信号是一种差分串行信号,这时高动态图像增强模块还包括mipi-csi2解码模块,用于将接收到的mipi-csi2数据转换为逐像素的并行数据。且在mipi协议中,高于8bit的像素通过多个字节拼接为一个像素。本发明实施例利用soc fpga芯片对数据进行串行转并行、字节转像素和bayer
转rgb处理,将原始图像数据转为rgb图像数据。
[0146]
本实施例中,图像采集模块输出mipi-csi2格式的数据,图像发送模块102将mipi-csi2格式的数据进行串行化处理,图像接收模块103将传输线106上传输的fpd-link iii或gmsl解串为mipi-csi2格式的数据。
[0147]
如果图像传感器输出单色高动态图像数据,即输出为灰度数据,则高动态图像直方图指定模块可直接按实施例二所述方法进行处理。但如果图像传感器输出彩色高动态图像数据,目前一般为bayer格式,则所述高动态图像直方图指定模块还包括彩色转换模块,用于将传感器得到的bayer格式图像转换为hsi或hsv格式,并将处理后的图像从hsi或hsv格式转换到rgb格式。
[0148]
本实施例采用fpga实现高动态图像直方图指定模块。虽然基于高性能处理器也能实现本发明的高动态图像直方图指定算法,但单纯的fpga和soc fpga芯片是实现本发明方法的高动态图像直方图指定的优先方案。soc fpga芯片集成了cpu和fpga,便于控制和图像输出,本发明的最佳实现方案。
[0149]
图像输出模块105用于将处理后的结果输出。本实施例包括hdmi输出和rj45网口输出,hdmi输出可以将图像直接输出到显示器进行显示,网口输出可以将视频图像数据传输到pc机中进行实时显示和保存。
[0150]
mipi接口有传输距离短、线路较为复杂的问题,不利于系统的实际应用,因此本发明实施例的图7中所示的图像传输模块采用串行解串芯片(ds90ub835/ds90ub936),将图像数据打包为fpd-link iii信号,将图像数据通过同轴电缆传输。系统的传输距离最高可达10米,且只需要一根同轴电缆,供电也可通过该电缆实现,线路十分简单。图像串行解串芯片的驱动可利用soc fpga芯片集成的i2c控制器开发,通过cpu发送指令,控制串行解串芯片的功能。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1