【脚本工具库】图像位深转换-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 npimg = 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 osimg = 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 ospath = 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 Imagepath = 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 Imagepath = 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))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/34522.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS角落里的知识:“开发应用沉浸式效果”

概述 典型应用全屏窗口UI元素包括状态栏、应用界面和底部导航条。开发应用沉浸式效果主要指通过调整状态栏、应用界面和导航条的显示效果来减少状态栏导航条等系统界面的突兀感,从而使用户获得最佳的UI体验。 图1 界面元素示意图 开发应用沉浸式效果主要要考虑如下…

8.XSS盲打

XSS盲打 XSS盲打就是攻击者在前端提交的数据不知道后台是否存在xss漏洞的情况下,提交恶意JS代码在类似留言板等输入框后,所展现的后台位置的情况下,网站采用了攻击者插入的恶意代码,当后台管理员在操作时就会触发插入的恶意代码&…

BroadcastChannel 通讯原理

BroadcastChannel 是一种用于在同一来源(同一协议、主机名和端口号)下不同浏览器上下文(如标签页、iframe、Worker、Service Worker)之间进行消息广播的 API。它提供了一种简便、可靠的方法来实现跨上下文的实时通讯。 Broadcast…

24.面向对象编程特性

目录 一、面向对象语言特征1.1 对象包含数据和行为1.2 封装1.3 继承作为类型系统与代码共享 二、使用trait对象存储不同类型的值2.1 定义共有行为的trait2.2 实现trait2.3 trait对象执行动态派发2.4 trait对象必须保证对象安全 三、面向对象设计模式四、状态模式的权衡取舍五、…

python的 pyside2 安装

pip install pyside2 pip install pyqt5-tools pycharm 在pychar 的Main Menu--setings--tool--External-tools 点击 新增自定义工具 1)自定义 QtDesigner 目的:用于生成.ui文件Name :QtDesigner Group :Qt Program &a…

交通 | 机器学习 + 大规模TSP/VRP求解

封面图来源:https://xkcd.com/399/ 推文作者:丁建辉,陈泰劼,张云天 本文针对旅行商问题(Travelling salesman problem, TSP)和车辆路径规划问题(Vehicle routing problem, VRP)这一类…

Python基础技能

目录 1. 掌握基础技能2. 变量与数据类型3. 条件语句4. 循环结构for循环while循环 5. 函数定义6. 列表与元组列表元组 1. 掌握基础技能 2. 变量与数据类型 在Python中,变量是用来存储数据的容器。我们可以给变量赋值,并使用这些值进行计算或操作。Pytho…

Excel 宏录制与VBA编程 —— 12、文本字符串类型相关(附示例)

字符串分割,文末示例(文末代码3附有源码) 代码1 - 基础字符串 代码2 - 字符串拆分 代码3 - 字符串分割 Option ExplicitSub WorkbooksClear()Dim DataRange As RangeSet DataRange Range("C2:E12")DataRange.Clear End SubSub Wo…

分布式系统_负载均衡

概述 大型网站都要面对庞大的用户量,高并发,海量数据等挑战。 为了提升系统整体的性能,可以采用垂直扩展和水平扩展两种方式。 垂直扩展:从单机角度扩展,增加单机硬件(CPU、内存、磁盘)处理能…

Vue进阶之Vue无代码可视化项目(五)

Vue无代码可视化项目 编排引擎smooth-dndLeftPanel.vueLayoutView.vuestores/debug.tsstores/editor.tsAppNavigator.vue添加-左侧栏添加到中间部分LayoutView.vuestore/editor.tsLeftPanel.vue移动-中间部分区域的位置更改新建文件夹utils、文件array.tsarray.tsLayoutView.vu…

基于rouyi框架的多租户改造

基于rouyi框架的多租户改造,重点是实现权限管理和数据隔离。权限管理相当于从原来的“顶级管理员admin-普通用户user”转变为“顶级管理员admin-租户管理员tanantAdmin-普通用户user”。数据隔离主要通过分库、分表、表内设置tenantId字段进行过滤三种方式。 本文主…

[word] word 如何在文档中进行分栏排版? #媒体#其他#媒体

word 如何在文档中进行分栏排版? 目标效果 将唐代诗人李白的组诗作品《清平调词》进行分栏排版,共分三栏,每一首诗作为一栏,参考效果如下图。

计算机图形学入门16:阴影映射

1.前言 前面几篇关于光栅化的文章中介绍了如何计算物体表面的光照,但是着色并不会进行阴影的计算,阴影需要单独进行处理,目前最常用的阴影计算技术之一就是Shadow Mapping技术,也就是俗称的阴影映射技术。 2.阴影映射 Shadow Map…

CSS中实现元素水平垂直居中的方式有哪些

在CSS中实现元素水平垂直居中的方法有很多,以下是一些常见的方法: 1. 使用Flexbox Flexbox是一个现代的布局模型,可以轻松实现元素的水平垂直居中。 .container {display: flex;justify-content: center; /* 水平居中 */align-items: cent…

C++在VS2022开发Windows窗口程序2:API式的Windows窗口程序设计模式

函数API式的Windows GUI程序设计模式是一种基于Windows API函数的方式来设计和开发Windows图形用户界面(GUI)应用程序的模式。在这种模式下,开发者通过调用Windows API函数来创建窗口、处理消息、绘制图形等,而不依赖于特定的GUI库…

mass storage:RAID Structure , Error Detection and Correction

RAID Structure RAID – redundant array of inexpensive disks multiple disk drives provides reliability via redundancyIncreases the mean time to failureMean time to repair – exposure time when another failure could cause data lossMean time to data loss bas…

【TB作品】stm32单片机,红外遥控器,温控风扇,模拟空调,PWM风扇

空调机 硬件:stm32、oled显示器、ds18b20温度传感器、风扇驱动和风扇、红外接收器、遥控器 软件功能: (1)显示室内温度 (2)显示当前模式:常态、除湿、通风 (3)显示当前风…

Ubuntu Apache2 搭建Gerrit 环境

一、前言 时隔多年,好久没有更新CSDN 博客了,主要原因有如下两点: 1、平时工作繁忙,无暇更新。 2、工作内容涉及信息安全,一些工作经验积累不便更新到互联网上。 最近一直在折腾搭建Gerrit 环境,最开始…

win11安装VMware虚拟机,启动系统后蓝屏,安装虚拟机卡在虚拟网卡界面的解决办法

机缘和遇到的问题 由于最近618换了台新笔记本电脑,然后系统自带的操作系统是windows 11 家庭版本,由于工作需要用到window10的环境,不得不安装一个虚拟机来解决问题,然后就把这次安装VMware虚拟机遇到的坑给大家分享一下&#xf…

研二自学嵌入式开发,就业导向,学习路线该如何规划?

研二才来问这个问题,有点晚,离你开始找工作还有大概8~9个月,你应该用应试思维来应对找工作这个事,尤其当前这个经济形势下。 刚好我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入…