使用python将图片改为灰度图或黑白图
作者:IT之一小佬 时间:2023-04-17 12:28:52
使用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带有网格线)
来源:https://blog.csdn.net/weixin_44799217/article/details/123897605
标签:python,灰度图,黑白图
0
投稿
猜你喜欢
Python读取excel文件中带公式的值的实现
2022-04-05 14:03:27
js实时监听文本框状态的方法
2024-04-25 13:10:58
python实现LBP方法提取图像纹理特征实现分类的步骤
2023-05-24 02:12:27
再谈CSS样式表书写风格
2009-03-30 16:09:00
JS:firefox 兼容性问题
2009-08-01 16:20:00
window安装mysql(zip、noinstall)
2009-10-17 21:10:00
Python使用剪切板的方法
2022-01-25 02:17:39
Python如何把字典写入到CSV文件的方法示例
2021-04-02 08:27:52
Python实现string字符串连接的方法总结【8种方式】
2023-01-07 20:52:29
vue3中7种路由守卫的使用大全举例
2024-05-29 22:43:52
解决python对齐错误的方法
2023-08-11 05:40:07
python自动翻译实现方法
2022-01-01 08:03:31
利用numba让python速度提升百倍
2022-06-12 14:31:02
display:inline-block的深入理解
2007-05-11 17:03:00
js实现滑动进度条效果
2023-08-24 03:47:39
Python基本数据类型之字符串str
2021-06-03 22:47:31
详解Python中的三元运算
2021-02-22 12:27:26
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2023-09-23 19:39:47
np.newaxis()函数的具体使用
2022-01-10 08:38:27
Django 对IP访问频率进行限制的例子
2022-02-14 05:40:38