欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

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

时间:2022-06-30 09:28:57|栏目:Python代码|点击:

使用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带有网格线)

上一篇:django数据库迁移migration实现

栏    目:Python代码

下一篇:pytorch 实现将自己的图片数据处理成可以训练的图片类型

本文标题:使用python将图片改为灰度图或黑白图

本文地址:http://www.codeinn.net/misctech/206440.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有