我目前正在为.jpeg
张图片创建Generation loss代码。
理论:- .jpg
是一种有损压缩格式(大部分情况下)。即,每次将图像转换为.jpg
时,原始图像的某些内容/数据都会在处理过程中丢失。这样可以减小文件大小,但是由于丢失数据,图像的质量比原始图像低。在大多数使用情况下,质量的下降可以忽略不计。但是,如果执行此过程的时间很长,那么图像的所有像素数据都会被压缩(丢失)很多次,以至于我们最终只能得到随机噪声。
我尝试在PIL
和cv2
上执行此操作,但没有成功。
我尝试过的操作:-打开图像(例如,图像格式为.png
的图像,然后将其转换为.jpg
。然后将图像(当前格式为.jpg
)转换回.png
,以便可以多次执行上述过程。
我背后的原因是,由于我们将原始图像转换为jpeg,因此一些数据应该丢失。
我正在使用cv2.imshow()
显示图像,因为该窗口一直保持活动状态,直到显式销毁为止,或者遇到cv2.destroyWindow()
/ cv2.destroyAllWindows()
。
我希望图像能够显示出来,并且随着程序的进行,图像的质量会逐渐降低,但是由于某些原因,图像保持不变。因此,我希望有人能帮助我从头开始创建代码(因为我目前的努力徒劳)。
P.S。:-我之所以没有发布任何代码,是因为它更多的是虚假的东西,而不是任何具体的东西,并且对实现目标没有任何帮助。所以我上传它只会浪费时间,其他人会花时间分析它。
答案 0 :(得分:0)
理论上的缺陷在这里:
每次将图像转换为.jpg时,原始图像的某些内容/数据都会在此过程中丢失。
如果您已经转换为JPEG并使用相同的设置重新压缩,则可能不会丢失数据。