《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
。