💪 专业从事且热爱图像处理,图像处理专栏更新如下👇:
📝《图像去噪》
📝《超分辨率重建》
📝《语义分割》
📝《风格迁移》
📝《目标检测》
📝《图像增强》
📝《模型优化》
📝《模型实战部署》
📝《图像配准融合》
📝《数据集》
📝《高效助手》
一、图像位深度
什么是图像位深度???
图像位深度(Bit Depth)是指图像中每个像素所占的比特数,它决定了图像能够表示的颜色数量和亮度层级。
简单来说:
- 位深度越高,每个像素所能表示的颜色数和亮度等级越多。
- 位深度越低,每个像素所能表示的颜色数和亮度等级越少。
位深度直接影响图像的质量和细节表现能力。
常见的图像位深度有: - 1位: 仅有黑和白两色,用于文字识别等简单图像。
- 8位: 256级灰度,能表示256种亮度等级,用于灰度图像。
- 24位: 真彩色,R、G、B每个颜色8位,共表示约1600万种颜色。大多数彩色图片采用这种位深度。
- 32位: 在24位基础上增加Alpha通道表示透明度。
- 48位及以上: 高动态范围(HDR)图像常采用,可以表示更多颜色和更广阔的亮度范围。
如下想要将位深度为1的图像转为位深度为8的图像,原图像如下所示:
二、修改
具体修改方法见下:
三、代码
代码见下:
from PIL import Image
import os
path = "data/INF_People/VOC_Images" # 原始1位像素图像文件路径
save_path = "data/INF_People/VOC_Images_Sort" # 转后保存的路径
files = os.listdir(path)
for pic in files:
img = Image.open(os.path.join(path, pic)).convert('L')
print(img.getbands()) # ('P',) 这种是有彩色的,而L是没有彩色的
pic_new = os.path.join(save_path, pic)
img.save(pic_new)
下面是修改后的样纸:
下面是转换后适用于语义分割的的转换代码:
from PIL import Image
import os
import numpy as np
path = "data/INF_People_original/VOC_Images" # 原始1位像素图像文件路径
save_path = "data/INF_People_original/VOC_Images_Sort_P" # 转后保存的路径
files = os.listdir(path)
for pic in files:
img = Image.open(os.path.join(path, pic)).convert('P')
print(img.getbands()) # ('P',) 这种是有彩色的,而L是没有彩色的
# img = Image.open(os.path.join(root_path, name)).convert('P')
img = np.array(img, dtype=np.uint8)
img[img > 0] = 1 # 图像img进行处理,将其中所有大于0的像素值设置为1。
save_img = Image.fromarray(img, "P") # Image.formarray() 将数组转换为PIL Image对象
# save_img.save(os.path.join(root_path1, name))
pic_new = os.path.join(save_path, pic)
save_img.save(pic_new)
四、总结
以上就是自定义批量修改图像位深度的方法,具体要修改为多少位深度,根据对应代表字符修改即可,希望能帮到你!
感谢您阅读到最后!😊总结不易,多多支持呀🌹 点赞👍收藏⭐评论✍️,您的三连是我持续更新的动力💖
关注公众号「视觉研坊」,获取干货教程、实战案例、技术解答、行业资讯!