【脚本工具库】图像位深转换-24-8(附源码)

图像位深简介:

在图像处理领域,图像位深的转换是一个非常重要的概念。不同的图像模式有着不同的用途和特点,下面我们详细介绍几种常见的图像模式及其转换方法。
首先,我们来看1位像素的二值图像(1bit),这种图像模式每个像素非黑即白。在存储时,每个像素用8个bit表示,其中0表示黑,255表示白。虽然这种表示方法看似简单,但它在图像压缩和处理上有着重要的应用。
接下来是8位像素的灰度图(L模式)。在这种模式下,每个像素的值在0到255之间,表示不同的灰度级别。灰度图的一个典型转换公式是从RGB模式转换到L模式:L = R ∗ 299/1000 + G ∗ 587/1000 + B ∗ 114/1000,这个公式体现了不同颜色通道对灰度的贡献比例。需要注意的是,这里只取整数部分。
第三种常见模式是8位像素的调色板模式(P模式),这种模式使用调色板来映射到其他模式。调色板模式常用于图像的压缩和存储,通过一个调色板来减少实际存储的颜色数目。
RGB模式则是最常见的真彩图像模式,每个像素由三个8位的值表示,分别对应红、绿、蓝三种颜色。这种模式可以表示1600万种颜色,是显示器和摄像头等设备的标准模式。而在此基础上,RGBA模式增加了一个透明通道,使得每个像素有四个8位的值,适用于需要透明效果的图像处理。
CMYK模式是一种色彩分离模式,每个像素由四个8位的值表示,分别对应青色(C)、品红色(M)、黄色(Y)和黑色(K)。这种模式常用于印刷领域,能更准确地还原颜色。
YCbCr模式是一种彩色视频格式,主要用于视频压缩和传输。它将颜色分成亮度(Y)和色度(Cb和Cr)三个通道,与RGB模式相比,更适合视频数据的处理和压缩。
此外,还有一些特殊的图像模式,例如I模式和F模式。I模式使用32位整型像素,适用于需要高精度的图像处理。F模式使用32位浮点型像素,主要用于科学计算和精度要求极高的图像处理。
PIL(Python Imaging Library)还支持一些特殊的模式,例如RGBX和RGBa。RGBX模式是在RGB模式的基础上增加了padding,使得每行像素的长度是4的倍数,有利于某些硬件加速。RGBa模式则在RGB基础上增加了自左乘alpha通道,用于特定的透明度处理。
通过理解和掌握这些不同的图像模式和转换方法,我们可以更有效地进行图像处理和优化,满足各种应用需求。

单张图像的24-8代码

#---------------方法1------------------- #
from PIL import Image
import numpy as np

img = Image.open(r'C:\Users\Heitie\Desktop\demo\1.bmp')
img = Image.fromarray(np.uint8(img))
t = img.convert('L')
img = Image.fromarray(np.uint8(t)*255)
img.save(r'C:\Users\Heitie\Desktop\demo\11.bmp')

#---------------方法2------------------- #

import cv2
import os


img = cv2.imread(r'C:\Users\Heitie\Desktop\demo\1-24.bmp')
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)   # 将图片转换为8位
cv2.imwrite(os.path.join(r'C:\Users\Heitie\Desktop\demo\1-8.bmp'), img)

多张图像的24-8代码

#---------------方法1------------------- #
import cv2
import os

path = r'E:\rotor\json2'
save_path = r'E:\rotor\json2'

for file_name in os.listdir(path):
    if file_name.endswith('.jpg') or file_name.endswith('.png'):
        img = cv2.imread(os.path.join(path, file_name))
        img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)   # 将图片转换为8位
        cv2.imwrite(os.path.join(save_path, '' + file_name), img)


#---------------方法2------------------- #
import os
from PIL import Image

path = r'E:\rotor\json2'
save_path = r'E:\rotor\json2'

files = os.listdir(path)
for i in files:
    files = os.path.join(path, i)
    img = Image.open(files).convert('L')
    file_name, file_extend = os.path.splitext(i)
    dst = os.path.join(os.path.abspath(save_path), file_name + '.png')
    img.save(dst)

多张图像的8-24代码


import os
from PIL import Image

path = r'D:\A_Python\yolov811-pytorch-master\img'
save_path = r'D:\A_Python\yolov811-pytorch-master\img1'

if not os.path.exists(save_path):
    os.mkdir(save_path)

for filename in os.listdir(path):
    with Image.open(os.path.join(path, filename)) as im:
        im = im.convert('RGB')
        im.save(os.path.join(save_path, filename))

  • 21
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\]和引用\[2\]的内容,你可以按照以下步骤利用Yolov8源码训练自己的数据集: 1. 确保你的环境满足要求,包括不能含有中文路径。\[2\] 2. 准备工作,包括创建文件夹和将视频转换为图片。\[2\] 3. 使用labelImg标注图片,可以通过安装和使用labelImg工具来完成。\[2\] 4. 划分数据集以及修改配置文件,包括划分训练集、验证集和测试集,将XML格式转换为yolo_txt格式,并修改模型配置文件。\[2\] 5. 聚类获得先验框,可以通过自动获取或手动获取的方法生成anchors。\[2\] 6. 修改模型配置文件,将聚类得到的先验框信息添加到模型配置文件中。\[2\] 7. 开始训练,使用命令行运行训练脚本train.py,并指定相关参数,如权重文件、配置文件、数据文件、训练轮数、批量大小、图像大小和设备等。\[3\] 8. 等待训练过程完成,可以根据训练过程中的日志信息来了解训练进展。\[3\] 9. 进行模型评估与推理,可以使用训练好的模型进行目标检测,并评估模型的性能。\[6\] 10. 参考链接中提供了更多相关的资源和信息,可以进一步学习和了解Yolov8的训练方法。\[2\] 希望以上步骤对你有帮助! #### 引用[.reference_title] - *1* [Yolov8训练自己的数据集](https://blog.csdn.net/m0_63774211/article/details/129864562)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Yolov5训练自己的数据集(详细完整版)](https://blog.csdn.net/qq_45945548/article/details/121701492)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值