使用python将图片改为灰度图或黑白图

 更新时间:2022年04月02日 10:58:32   作者:IT之一小佬  
使用python将图片改为灰度图或黑白图有三种方式,分别是是使用cv2库和PIL库来实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

使用python将图片改为灰度图或黑白图有三种方式,分别是是使用cv2库和PIL库来实现,详细过程如下所示。

1. 使用cv2库将图片改为灰度图

在使用cv2进行读取原彩色图片时,在里面添加一个参数cv2.IMREAD_GRAYSCALE表示将图片作为灰色图数据进行加载。

示例代码:

import cv2
 
image = cv2.imread('./images/sunflower.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imwrite('./images/gray_sunflower.jpg', image)

运行效果:

对处理后的图片再次进一步的探究。

示例代码:

import cv2
 
# image = cv2.imread('./images/sunflower.jpg', cv2.IMREAD_GRAYSCALE)
 
# cv2.imwrite('./images/gray_sunflower.jpg', image)
 
#  进一步探索图片格式
image = cv2.imread('./images/sunflower.jpg')
print(image.shape)
imageGray = cv2.imread('./images/gray_sunflower.jpg')
print(imageGray.shape)
imageGray2 = cv2.imread('./images/sunflower.jpg', cv2.IMREAD_GRAYSCALE)
print(imageGray2.shape)

运行效果:

从运行结果可以看出,在用cv2读取数据时,即使读取的原图是灰度图片,但是返回的结果仍然是BGR格式的图像,BGR格式是默认的格式。

2. 利用PIL库将图片改为黑白图

原理是转为“1”的模式,为二值图像。即:非黑即白。它每个像素用8个bit表示,0表示黑,255表示白(除了这两个值外再没有别的值)

示例代码:

from PIL import Image
 
# open colour image
image_raw = Image.open("./images/sunflower.jpg")
# convert image to black and white
image_black_white = image_raw.convert('1')
image_black_white.save('./images/black_white_sunflower.jpg')
image_black_white.show()

 运行结果:

3. 利用PIL库将图片改为灰度图

原理是转为“L”的模式。0表示黑,255表示白,其它数字表示不同的灰度。在PIL中,从模式"RGB"转为"L"模式是按照下面公式转换L = R * 299/1000 + G * 587/1000+ B * 114/1000 

示例代码:

from PIL import Image
import matplotlib.pyplot as plt
 
# open colour image
image_raw = Image.open("./images/sunflower.jpg")
image_gray = image_raw.convert('L')
# image_gray.show()
plt.figure('sunflower')  # 图名
plt.imshow(image_gray, cmap='gray')  # cmap即colormap,颜色映射
# plt.axis('off')  # 关闭网格线
plt.show()

运行效果:(下图1关闭网格线,下图2带有网格线)

 到此这篇关于使用python将图片改为灰度图或黑白图的文章就介绍到这了,更多相关python图片改为灰度图或黑白图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python实现logistic分类算法代码

    python实现logistic分类算法代码

    今天小编就为大家分享一篇python实现logistic分类算法代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • django的403/404/500错误自定义页面的配置方式

    django的403/404/500错误自定义页面的配置方式

    这篇文章主要介绍了django的403/404/500错误自定义页面的配置方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Anaconda多环境多版本python配置操作方法

    Anaconda多环境多版本python配置操作方法

    下面小编就为大家带来一篇Anaconda多环境多版本python配置操作方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Python在游戏中的热更新实现

    Python在游戏中的热更新实现

    本文主要介绍了Python在游戏中的热更新实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • PyQt5如何将.ui文件转换为.py文件的实例代码

    PyQt5如何将.ui文件转换为.py文件的实例代码

    这篇文章主要介绍了PyQt5之如何将.ui文件转换为.py文件,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Python浅析匿名函数lambda的用法

    Python浅析匿名函数lambda的用法

    lambda所表示的匿名函数的内容应该是很简单的,如果复杂的话,干脆就重新定义一个函数了,使用lambda就有点过于执拗了。lambda就是用来定义一个匿名函数的,如果还要给他绑定一个名字的话,就会显得有点画蛇添足,通常是直接使用lambda函数
    2022-07-07
  • 一篇文章详细了解pycharm的安装及配置

    一篇文章详细了解pycharm的安装及配置

    这篇文章主要给大家pycharm安装及配置的相关资料,pycharm是编辑python很好使用的工具,文中通过图文介绍的非常详细,对大家学习或者使用pycharm具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-12-12
  • 13个简便高效的Python脚本分享

    13个简便高效的Python脚本分享

    Python是顶级编程语言之一,它具有许多程序员从未使用过的许多隐藏功能。在这篇博客中,将和大家分享一下你可能从未使用过的13个Python脚本,感兴趣的可以学习一下
    2023-01-01
  • Python中if __name__ ==

    Python中if __name__ == "__main__"详细解释

    这篇文章主要介绍了Python中if __name__ == "__main__"详细解释,需要的朋友可以参考下
    2014-10-10
  • Python学习之.iloc与.loc的区别、联系和用法

    Python学习之.iloc与.loc的区别、联系和用法

    loc和iloc都是pandas工具中定位某一行的函数,下面这篇文章主要给大家介绍了关于Python学习之.iloc与.loc的区别、联系和用法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05

最新评论