《OpenCV系列教程》
项目位置:OpenCV-Sample
代码位置:31-CovertJPEGProgressiveToBaseline.py
Baseline:
Baseline JPEG 是图片创建使用的加压算法,用于逐行显示。

Progressive:
Progressive JPEG以这样的方式显示图像:它整体显示模糊/低质量的照片,然后随着图像的下载变得更清晰。

代码如下:
import cv2
import os
import string
from PIL import Image
file_dir = './res/'
def progressive_to_baseline(path, file):
tmpfile = 'tmp' + file
print(tmpfile)
img = cv2.imread(path + file)
cv2.imwrite(path + tmpfile, img)
os.remove(path + file)
os.rename(path + tmpfile, path + file)
for file in os.listdir(file_dir):
#ret = os.system('identify -verbose ' + file_dir + file + ' | grep Interlace')
ret = os.popen('file ' + file_dir + file)
lines = ret.readlines()
if 'progressive,' in str(lines):
print(file_dir + file)
progressive_to_baseline(file_dir, file)
最好使用identify -verbose但是这个效率太低了。所以换成了file。
本文介绍了如何使用OpenCV库将JPEG图像从渐进式编码转换为基线式编码。渐进式JPEG先显示模糊的低质量图像,随着下载逐步提高清晰度,而基线JPEG采用逐行显示的方式。文中提供了具体的Python代码示例。
1597





