Python批量为照片应用灰度滤镜

2021-02-16  本文已影响0人  巴鶴

引言

黑白照片很有年代感,让人怀念,自己动手可以把自己喜爱的彩色照片设计成有情怀的黑白照片,使用 OpenCV-Python 模块实现批量为照片添加灰度滤镜.

红包.png
早安阳光.png

思路设计

主要应用 Python 的第三方模块 OpenCV-Python 和 NumPy 模块实现。在使用第三方模块时,需要先安装。

安装OpenCV和NumPy

考虑到pip install opencv-python和pip install numpy安装下载慢,可以下载whl格式文件安装。

延申学习说明

pip3.9.exe install D:\Python38\Scripts\opencv_python-4.5.1.48-cp39-cp39-win_amd64.whl

成功安装OpenCV-Python 和 NumPy 模块

pip list查看.png

代码参考分析

# -*- coding: utf-8 -*-
"""
@Time : 2021/2/14 16:31
@Auth : Yvon~早安阳光
@File :tuphuidulvjing
"""
import cv2 # 导入OpenCV-Python模块
import os # 导入文件与系统模块
import numpy as np # 导入数值计算库

''' 
 * 功能:为图片应用灰度滤镜,并且保存图片到指定路径
 * filein:要应用滤镜的图片的路径
 * picture_name:要应用滤镜的图片的文件名
 '''
def filter(filein,picture_name):
    imgI_filename = os.path.join(filein,picture_name) # 源文件路径
    imgO_filename = os.path.join(r'out', picture_name) # 目标文件路径
    img_rgb = cv2.imread(imgI_filename) # 读取源图片
    img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_RGB2GRAY) # 转换为灰度

    # 调整亮度和对比度
    res = np.uint8(np.clip((1.2 * img_gray + 0), 0, 255))
    cv2.imwrite(imgO_filename, res) # 保存转换后的图片

if __name__ == '__main__':
    imagelist = [] # 创建空列表
    # 循环读取指定路径下的文件名
    for filename in os.listdir(r'in/'):
        imagelist.append(filename) # 将文件名添加到imagelist
        print(filename)
        filter(r'in',filename) # 为图片应用灰度滤镜
整体效果.png
上一篇 下一篇

猜你喜欢

热点阅读