一、前言

  • 最近遇到了一个新的情景,需要将彩色图片转化为黑白图片,如果手动地去转化一张一张图片,那就真的太原始,效率太低。

  • 用 Python,只需要几行代码就可以在几秒内转化上千张图片。而且,这个功能的用途相当广泛,不仅能使图片变得深邃,而且还可以简化一些复杂模型的数学计算。

二、准备

① Python 安装

  • 在 windows 上安装 Python:
    • 下载 Python 的最新版本:访问链接 Python 官网,在 Windows 操作系统上安装 Python 3.10.0,大家也可以自行选择最新版的下载。

  • 进入下一个页面后,拉到最下面,选择 Windows embeddable package (64-bit) 下载:

    • 双击下载完成的应用程序,记得一定要勾选 ADD Python 3.7 to PATH,否则 cmd 无法运行 Python,然后选择 Install Now 进行安装,默认会安装 pip,而且将安装到 C 盘(推荐)。如果希望换一个盘安装,可以点击 Customize installation 在里面选择其他的盘。
  • 在 macOS 上安装 Python:
    • 其实 macOS 上是默认安装了 Python 的,只不过版本是 Python2.7,其相对于现在的 Python 3 缺少了很多特性,而且速度也比 Python 3 慢,因此还是建议大家装 Python 3。
    • 同样地,下载 Python 的最新版本,访问链接:Python 官网,在 macOS 操作系统上安装 Python 3.7.4,大家也可以自行选择最新版的下载。

  • 进入下一个页面后,拉到最下面,选择 macOS 64-bit universal2 installer 下载:

  • 下载完成后得到一个 pkg 文件,双击打开,按照指示步骤进行安装即可。

② 安装依赖

  • 确保 Python 和 pip 已经成功安装在电脑上,Windows 环境下打开 Cmd(开始—运行—CMD),苹果系统环境下请打开 Terminal(command+空格输入Terminal),准备开始输入命令安装依赖。
  • 当然,我更推荐大家用 VS Code 编辑器,把本文代码 Copy 下来,在编辑器下方的终端装依赖模块。
  • 在终端输入以下命令,安装所需要的依赖模块:
pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
  • 看到 Successfully installed xxx 则说明安装成功。

三、编码实现

  • 首先编写一下彩色图转单色图的转化函数,接收两个参数,一个是输入文件的路径,一个是输出文件路径:
from PIL import Image
def colorful to_ single(input_ img path, output_ img path):
""""""
彩色图转单色图
:param input_img_path: 图片路径
:param output_img_path: 输出图片路径
img = Image.open(input_img_path)
# 转化为黑白图片
img = img.convert("L")
img.save(output_img_path)
  • 然后将需要转化的图片放到一个文件夹中,我这里命名该文件夹为 imgs,然后指定一个输出文件夹 output,如下:
dataset_dir = 'imgs'
output_dir = 'output'
# 获得需要转化的图片路径并生成目标路径
image_filenames = [(os.path.join(dataset_ dir, file_ _dir),os.path.join(output_ _dir, file_ dir)
) for file_dir in os.listdir(dataset_ dir)]
# 转化所有图片
for path in image_filenames:
colorful_to_single(path[0], path[1])
  • 这里比较难理解的可能是 image_filenames,用到了列表推导式,即遍历所有 dataset_dir 里的文件:
for file_dir in os.listdir(dataset_dir)
  • 并将其和指定的目录以路径的形式链接起来:
os.path.join(output_dir, file_dir)
  • 最终生成一个数组,第一个元素是输入路径,第二个元素是输出路径:
image_filenames = [(os.path.join(dataset_dir, file_dir),os.path.join(output_dir, file_dir)
) for file_dir in os.listdir(dataset_dir)]

四、效果及用途

  • 黑白效果如下所示:

  • 用途当然很多,比如:
    • 在深度学习分类图像的时候,如果并不需要考虑颜色的维度,可以先将图片转化为黑白图,简化运算复杂度;
    • 黑白图片有的时候比彩色图片更具备冲击力,能够更加突出主题;
    • 黑白图片有些时候也有美颜的作用,因为此时注意力的重点在于脸型,如果那个人的脸型特别好看,但是肤色比较差,这时候黑白照片就很有效果。

Python之将彩色图片批量转化为黑白图片相关推荐

  1. (十)老照片修复、图像超分、图片提高分辨率、图片高清化、图片清晰化、黑白图片上色、人脸祛斑、美颜、人体瘦身、图像去噪、人像抠图、批量处理、视频提高分辨率、视频逐帧修复

    (十)老照片修复.图像超分.图片提高分辨率.图片高清化.图片清晰化.黑白图片上色.人脸祛斑.美颜.人体瘦身.图像去噪.人像抠图.批量处理.视频提高分辨率.视频逐帧修复 本文的代码的功能是:可以对图片文 ...

  2. Python实现将图片批量转化成素描图

    文章目录 前言 程序 Method 1 Method 2 完整代码 结果 前言 正常图片转化成素描图片无非对图片像素的处理,矩阵变化而已.目前很多拍照修图App都有这一功能,核心代码不超30行.如下利 ...

  3. Python实现小工具:批量将任意格式图片转为 JPG 格式

    1.需求分析 写博客的时候发现这样一个问题:自己在 Mac 上截的图都是高清的 PNG 格式图片,最小的也超过 1MB.直接放在博客里,既占用服务器存储空间,又导致博客加载出来很慢,体验不好.而且写博 ...

  4. python爬虫实战1:批量爬取网址图片

    1.爬虫基础知识 目前,爬虫的相关知识了解了以下这么多. 2.爬取图片的步骤 学习了很多视频教程,基本介绍爬虫都是主要分3步: 1.请求网页 2.解析网页 3.保存图片 3.爬虫实战 唯有实战,才能提 ...

  5. Python调接口实现图像风格转化、黑白图像上色、人像动漫化

    图像风格转化.黑白图像上色.人像动漫化 图片大小3MB以内 接口地址:接口说明文档 三个接口标准,除了URL最后一个值不一样,data部分值不一样,其它的代码是一致的,可以根据自己的需求自己更换 Ac ...

  6. python将图像转换为8位单通道_使用Python将图片转换为单通道黑白图片

    本文介绍如何使用python将图片转换为纯黑白的单通道图片.文中用到的脚本支持彩色.灰度.带alpha通道的输入图片以及SVG矢量图,支持调整输出图片大小以及设置灰度阈值. 最后介绍如何输出SSD13 ...

  7. Flutter ——图片九宫格,多图片批量上传(图片选择采用官方image_picker实现,批量上传采用dio,消息提示)

    需求:实现一个九宫格的效果,要求能够多选照片. 具体描述: 1.实现类似微信九宫格,没图片的时候有一张添加图片,点击该图片可以在相册中选择,当图片未满9个的时候,该图片一直跟在最后,当图片满足9个的时 ...

  8. 图片批量下载软件-全网图片免费批量下载软件

    图片批量下载软件,今天给大家分享一款免费图片批量下载软件,支持任意格式的图片批量下载,只需要输入关键词或批量导入网页链接即可下载图片.批量下载任意网页上的图片,每个人都可以拥有各种高清图源.支持批量图 ...

  9. 把jpg图片批量转化为png图片 python|||把视频MP4转换为图片或图片转换为视频

    一.# python图片格式jpg转换为png(批量处理,尺寸不变) author: zhou jinxing import os import PIL.Image as Image def chan ...

最新文章

  1. Gantt Chart in JavaScript (HTML5) | FusionCharts
  2. 麻烦大家看了我的文章觉得有用就关注我下
  3. 人本质要好,要善良,要真诚,有格局和胸怀,有能力,有眼光,能讲故事,能找到人,能搞到钱...
  4. 漫画:老板扣了我1000,因为我没记住阿里巴巴开发手册的这条规则。
  5. python替代php,Python架构的PHP替代方案
  6. 认知NumPy数学运算库
  7. Ext学习笔记02 - 构造方法,类继承,类实例方法重写
  8. excel设置单元格整数后还是有小数点_一招教你统一解决excel单元格的单位问题!...
  9. 于的繁体字有几种写法_“二”的繁体字有几种写法
  10. matlab 中的波浪号
  11. Sixth season seventeenth episode,Ross‘s self defense concept,Unage!!!?????
  12. html 通知页面,12款体验不错的网站提示/通知样式
  13. python requests 登录接口场景使用案例
  14. linux 单网卡绑定两个ip
  15. 计算机图形学-油画家算法
  16. 没有内涵段子可以刷了,利用Python爬取段友之家贴吧图片和小视频(含源码)
  17. Go应用构建工具(3)--cobra
  18. TEC-2实验计算机运算器实验
  19. IDEA中代码无故报红解决方法
  20. UI设计师饱和了?带你了解真实的UI市场行情

热门文章

  1. UVA 1608 Non-boring sequences(瞎搞)
  2. 前端 html border-right: 1px solid red;
  3. ArcGIS 10.0 ArcGIS 9.3.1数据生成实验--个人地理数据库
  4. C/C++变量命名规则,个人习惯总结
  5. (原创).Net将EF运用于Oralce一 准备工作
  6. [原创]修改oracle 数据库默认时间格式
  7. 时结果 hive_Hive优化
  8. 实现输入一个字符串,分别将大写字母、小写字母、数字、其他字符存到列表里面并且输出列表
  9. php 集合安装,centos7安装php5.6报错集合
  10. Java黑皮书课后题第4章:*4.10(猜测生日)改写程序清单4-3,提示用户输入字符Y代表“是”N代表“否”,代替之前输入1表示“是”,0表示“否