【问题标题】:Targa image – damaged red and green channelsTarga 图像 – 损坏的红色和绿色通道
【发布时间】:2015-07-17 15:19:01
【问题描述】:

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

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

Image

【问题讨论】:

  • 红色和绿色通道已经受到某种锯齿函数的影响;如果 R 最初在 (0,255) 范围内,则 f(r) = (r % 128) * 2。对于 G 也是如此。
  • 这个函数不太正确。它很接近,但红色通道发生了一些奇怪的偏移。还在看。

标签: channels tga


【解决方案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 位红色信息,但当文件被书面。看看这些图像是如何获取的,以确保您不会以某种方式切断 R 和 G 通道的最重要位。

【讨论】:

  • 我不知道 targa 文件是如何编译的……这些是来自“地狱邻居”游戏的纹理。看起来,游戏中的纹理是真实颜色的……只是如何?
猜你喜欢
  • 2016-09-22
  • 2015-12-29
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
  • 1970-01-01
  • 1970-01-01
  • 2020-10-08
  • 2022-12-06
相关资源
最近更新 更多