在灰度png图像中存储较大值的影响是什么?

时间:2015-07-05 13:00:10

标签: java image-processing dct

我正在尝试在java中块大小为8X8的图像上执行DCT。在第一个块上执行DCT后,我得到第一个值为“372”。 在整个图像上执行DCT后,我将值写入PNG灰度图像。图像内的值自动更改。 灰度图像不会存储大于255的值。大于255的值会发生什么变化(例如,372)?

1 个答案:

答案 0 :(得分:0)

丢失信息后无法获取原始图像,因此您需要:

  1. 执行DCT或任何
  2. 从整个图片中找到min,max个值
  3. 更改范围,以便任何pixel(x,y)=(255*(pixel(x,y)-min))/(max-min)
    • +/-1或某些如果要夹到正确的范围
  4. 在此之后你会失去绝对值,但相对的变化仍然存在

    • 出于某些目的就够了
    • 如果您需要恢复原始图像
    • 然后您需要将最小值,最大值编码到png某处
    • 所以添加虚拟扫描线并将min,max编码到前几个像素中......
    恢复很容易:

    1. 阅读png图片
    2. 解码min,max
    3. 恢复原始动态范围pixel(x,y)=min+(((max-min)*pixel(x,y))/255)
      • +/-1或某些如果要夹到正确的范围
    4. 执行IDCT或任何