0

我对 16 位 targa 文件有疑问。我正在打开图像,它的颜色很奇怪。这是红色和绿色通道的问题——蓝色很好。

我如何修复 targa 图像,使其看起来像示例?(第一个是原始图像,第二个是必须看的。)

图片

4

1 回答 1

1

编辑:这个答案给出了看起来正确的结果,但不会与原来的有点相同。更奇怪的事情正在发生。

您可以通过将红色和绿色通道置于一个使值加倍的函数中,使损坏的图像脱离原始图像,但要进行环绕:

F(r) = (r*2) % 255
F(g) = (g*2) % 255

这些函数是不可逆的,因为多个输入值可以映射到同一个输出值。尤其是,

F^-1(r) = {r / 2, r / 2 + 128}

但是如果我们愿意容忍一些错误,我们仍然可以尝试恢复图像。我们将尝试猜测红色(或绿色)是否应该高;如果是,请添加 128。

两条信息可以指导我们的猜测:

  1. 蓝色通道高吗?除非图像包含强烈的蓝色像素,否则这暗示红色和绿色通道也应该很高。
  2. 是否有相邻像素的红色(或绿色)通道很高,而该像素的红色通道很低(例如,小于 64)?这可能表明两个像素都比较亮,但是这个像素的红色通道被包裹了。

我只使用蓝色通道信息在 r / 2 和 r / 2 + 128 之间做出决定,恢复了非常接近原始图像的东西,尽管使用相邻像素的红色和绿色通道可能会更好。


作为旁注,可能发生此类问题的一种方式是,如果最初(例如)有 6 位红色信息,但在写入文件时只保留了最低有效的 5 位。查看这些图像是如何获取的,以确保您不会以某种方式切断 R 和 G 通道的最重要位,这将很有用。

于 2015-07-17T16:00:53.203 回答