SRGAN生成记录——cv2.resize()以及JPEG保存过程中的信息丢失

本文探讨了JPEG有损压缩在多次迭代中导致图像信息丢失的现象,强调正确处理压缩参数的重要性。同时,分析了在SRGAN生成过程中出现的artifact,并建议将artifact removal与超分辨率分离处理。另外,深入解析了cv2.resize()函数的工作原理,通过源码分析揭示了图像尺寸减小时信息损失的本质是像素点的加权平均过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,JPEG是有损压缩,且这种压缩可迭代,(肉眼看不出差别,但是图像的大小有差别)

import cv2

img1 = cv2.imread('imgresize1.jpeg')
img2 = cv2.resize(img1,(256,256))
cv2.imwrite("imgresize2.jpeg",img2)

如果我用这种方式保存图像的话,默认的压缩参数是95,

原图是1460KB,一次压缩变成46KB,再次变成15KB,即使后两者的图像分辨率都是256*256

正确的操作是把最后一句变成:

cv2.imwrite("imgresize3.jpeg",img2,[int(cv2.IMWRITE_JPEG_QUALITY), 100])

------------------------------------------------------------------------

其次,JPEG的压缩方式,是将图像分成许多个8*8的小block,对每一个block做DCT离散余弦变换,丢失大量高频信息。

(低频部分集中在每个8*8块的左上角,高频部分在右下角,所谓JPEG的有损压缩,损的是量化过程中的高频部分)

因此,在SRGAN 生成的过程中,观察到许多细小的artifact,如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值