最近需要做到一部分图像的基本处理,多次用到图像的通道数转换、灰度转换、二值转换和批量更改图片文件类型。网上的教程有些时候很啰嗦,就在这里记录分享一下自己的部分代码。
一般而言,我们会用到的基本图片格式也就是以下这些:RGB/三通道图、单通道图/灰度图(二值图)。
图片格式可以通过图片的属性查看。
三通道:位深度24
单通道:位深度8
单通道转三通道
from PIL import Image
image = Image.open("C:\\Users\\lenovo\\Desktop100007.jpg")
if image.mode != 'RGB':
image = image.convert("RGB")
image.save("C:\\Users\\lenovo\\Desktop\\100007.jpg")
三通道转单通道
from PIL import Image
import matplotlib.pyplot as plt
img=Image.open("C:\\Users\\lenovo\\Desktop\\100007.jpg") #打开图像
r,g,b=img.split() #分离三通道
批量更改文件名
有些时候为了某些特殊需求需要更改文件后缀名。
代码如下(jpg—>bmp)
import os
import re
path="C:\\MyFiles\\yjs\\su"
file_walk = os.walk(path)
fileNum = 0
filesPathList = []
for root, dirs, files in file_walk:
# print(root, end=',')
# print(dirs, end=',')
# print(files)
for file in files:
fileNum = fileNum + 1
filePath = root + '/' + file
# print(filePath)
filesPathList.append(filePath)
protion = os.path.splitext(filePath)
# print(protion[0],protion[1])
if protion[1].lower() == '.png':
print("正在处理:" + filePath)
newFilePath = protion[0] + '.bmp'
os.rename(filePath, newFilePath)
# print(fileNum)
# print(filesPathList)