OpenCV将JPEG中的progressive类型转换成baseline类型

《OpenCV系列教程》
项目位置:OpenCV-Sample
代码位置:31-CovertJPEGProgressiveToBaseline.py

Baseline:

Baseline JPEG 是图片创建使用的加压算法,用于逐行显示。

OpenCV将JPEG中的progressive类型转换成baseline类型_第1张图片

Progressive:

Progressive JPEG以这样的方式显示图像:它整体显示模糊/低质量的照片,然后随着图像的下载变得更清晰。
OpenCV将JPEG中的progressive类型转换成baseline类型_第2张图片

代码如下:

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)