Image processing 图像平均减法
我不知道图像平均减法在我的用例中是否有用 我正在用道路图像训练SegNet网络,并在训练过程中减去平均值 当我比较均值减法前后的图像时,没有均值减法的图像似乎有更多的特征和详细的像素信息 我理解平均减法的重要性,因为它减少了不同照明的影响,并且在训练过程中有助于梯度计算。但是,这不意味着我泄露了一些重要信息吗。我附上图片以供参考 原创的 用平均减法 看上面的图片,我有一个假设,没有平均减法的图像可以了解更多的功能,特别是关于汽车(这在这里非常重要)。使用平均减法的图像在汽车周围大部分是黑色的Image processing 图像平均减法,image-processing,computer-vision,image-segmentation,Image Processing,Computer Vision,Image Segmentation,我不知道图像平均减法在我的用例中是否有用 我正在用道路图像训练SegNet网络,并在训练过程中减去平均值 当我比较均值减法前后的图像时,没有均值减法的图像似乎有更多的特征和详细的像素信息 我理解平均减法的重要性,因为它减少了不同照明的影响,并且在训练过程中有助于梯度计算。但是,这不意味着我泄露了一些重要信息吗。我附上图片以供参考 原创的 用平均减法 看上面的图片,我有一个假设,没有平均减法的图像可以了解更多的功能,特别是关于汽车(这在这里非常重要)。使用平均减法的图像在汽车周围大部分是黑色的
如能提供解释或链接到可能解释此问题的资料,将不胜感激。谢谢。
这里有两件事要考虑:
uint8
),并且在不将图像强制转换为其他类型的情况下减去平均值,则可能会破坏图像信息。例如,如果图像包含像素值
204 208 100 75 86
平均值是100.3,减去平均值的结果是
104 108 0 0 0 -- saturated subtraction
或
这取决于您是使用饱和减法还是C型算术。在这两种情况下,图像不再包含与以前相同的信息
正确的做法当然是使用浮点值:
103.7 107.7 -0.3 -25.3 -14.3 -- floating-point subtraction
在这种情况下,数据仍然包含完全相同的信息,只是现在它是零均值
现在,如何在屏幕上显示这个零均值图像?您可以将每个值255映射到255,使有效范围[0255]之外的值饱和;或者,您可以在数据中找到最小值和最大值,将像素值线性映射到有效范围。在第一种情况下,它看起来像是您损坏了图像(如您的示例所示),在第二种情况下,它看起来像是图像中没有太大变化。也就是说,屏幕上没有显示图像的方法,仍然能看到平均减法的效果。
这里有两件事要考虑:
uint8
),并且在不将图像强制转换为其他类型的情况下减去平均值,则可能会破坏图像信息。例如,如果图像包含像素值
204 208 100 75 86
平均值是100.3,减去平均值的结果是
104 108 0 0 0 -- saturated subtraction
或
这取决于您是使用饱和减法还是C型算术。在这两种情况下,图像不再包含与以前相同的信息
正确的做法当然是使用浮点值:
103.7 107.7 -0.3 -25.3 -14.3 -- floating-point subtraction
在这种情况下,数据仍然包含完全相同的信息,只是现在它是零均值
现在,如何在屏幕上显示这个零均值图像?您可以将每个值255映射到255,使有效范围[0255]之外的值饱和;或者,您可以在数据中找到最小值和最大值,将像素值线性映射到有效范围。在第一种情况下,它看起来像是您损坏了图像(如您的示例所示),在第二种情况下,它看起来像是图像中没有太大变化。也就是说,没有办法在屏幕上显示图像,仍然可以看到平均减法的效果。我使用了浮动pt。数值[92.05,84.79,77.08](RGB)。我计算了整个数据集(3000张图像)每个通道的平均值。因此,我们不确定平均值是否正确。你知道在把我的图像数据集传递给它之后,我可以用什么库来验证它吗?我不知道你在用什么编程语言,但你可能想用OpenCV来做这类事情。我用过浮动pt。数值[92.05,84.79,77.08](RGB)。我计算了整个数据集(3000张图像)每个通道的平均值。因此,我们不确定平均值是否正确。你知道在将图像数据集传递给它之后,我可以用什么库来验证它吗?我不知道你在用什么编程语言,但你可能想用OpenCV来做这类事情。