2013-10-18 41 views
3

我的团队希望计算在潮湿环境中拍摄的两张照片之间的对比度。压缩JPEG图像的L,a,b空间的不确定度

我们将使用公式

对比度= SQRT((ΔL)^ 2 +(ΔA)^ 2 +(的Δb)^ 2)

其中ΔL是在亮度差,ΔA计算对比度是(红色 - 绿色)和Δb是(黄色 - 蓝色)的差异,这是Lab空间的尺寸。

我们的(迄今为止成功的)方法是将每个像素从RGB转换到Lab空间,并将图像相关部分的平均值作为我们的A和B变量。

但是,环境限制我们使用将图像压缩为JPEG格式的(防水)GoPro相机,而不是保存为TIFF,因此我们不使用真彩色图像。

我们现在需要量化对比度的不确定性 - 为此我们需要知道A和B中的不确定性,以及每个RGB像素的每个a和b值的不确定性(或平均值/典型不确定度)。只有当我们知道从真彩色转换为JPEG时产生的典型/最大不确定性,我们才能计算出这一点。

因此,我们需要知道以JPEG格式保存时每个RGB通道的最大可能差异。

EG。如果在压缩后真彩色RGB像素(5,7,9)变为(2,9,13),则每个通道中的不确定性将为(+/- 3,+/- 2,+/- 4)。

我们认为相机在宽高比为4:2:0时压缩颜色 - 有没有办法测试它?

然而,我们的主要问题是;是否有任何方法知道每个通道中可能出现的最大误差,或者从压缩的RGB结果计算不确定度?

注意:由于JPEG压缩是有损的,我们知道不可能从JPEG转换回TIFF。我们只需要量化这种颜色损失的程度。

+0

您正在使用哪个库?本机WIC/WPF的东西或东西定制? – HeavenCore

+0

我们目前正在使用Python的PIL库。 –

回答

1

总之,它是而不是可能绝对量化JPEG图像中数字计数的最大可能差异。

您已经很好地突出了其中的一点。当使用JPEG标准编码图像数据时,首先将其转换为YCbCr色彩空间。

一旦进入这个色彩空间,就会对色度通道(Cb和Cr)进行降采样,因为人类视觉系统对色度信息中的伪影不太敏感。

这里介绍的错误是依赖于内容的;色度和色调非常迅速变化的区域将具有比色调/色度不变的区域明显更多的内容损失。 即使知道描述下采样的数量和几何的4:2:0压缩(更多信息here),内容仍然规定了此步骤引入的错误。

另一个问题是在JPEG压缩中执行的量化。

结果信息使用离散余弦变换进行编码。在变换后的空间中,根据所需的质量再次对结果进行量化。该量化是在文件生成时设置的,这是在相机内执行的。同样,即使您知道相机执行的确切DCT量化,对RGB数字计数的实际影响最终取决于内容。

另一个困难是由DCT块伪影产生的噪声,该伪像(又是)与内容相关。

这些场景依赖性使得该算法对于视觉图像压缩非常好,但绝对难以表征。

但是,隧道尽头有一些灯光。 JPEG压缩将在快速变化的图像内容区域造成更多的错误。不变的颜色和纹理区域将具有显着更少的压缩误差和伪像。根据您的应用程序,您可能会利用这一点为您带来好处。