使用python将图片改为灰度图或黑白图
目录
1. 使用cv2库将图片改为灰度图2. 利用PIL库将图片改为黑白图3. 利用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图片改为灰度图或黑白图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 15G资费不大降!三大运营商谁提供的5G网速最快?中国信通院给出答案
- 2联想拯救者Y70发布最新预告:售价2970元起 迄今最便宜的骁龙8+旗舰
- 3亚马逊开始大规模推广掌纹支付技术 顾客可使用“挥手付”结账
- 4现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 5如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 6AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 7转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 8充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 9好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 10名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?