图像的初识

news/2024/7/21 5:10:43 标签: 图像处理

一、图像的数组表示

RGB能够构成人眼所能识别的所有颜色。

二、图像的变换

Example:

img.shape
Out[329]: (512, 768, 3)
img.dtype
Out[330]: dtype('uint8')
#补值变换
shift_temp_img = [255,255,255] - img
shift_img = Image.fromarray(shift_temp_img.astype('uint8'))
shift_img.save("D:/shift1.jpg")

img = np.array(Image.open("practice_dataset/train/ants_image/0013035.jpg").convert('L'))
b = 255 - img
shift_img = Image.fromarray(b.astype('uint8'))
shift_img.save("D:/shift2.jpg")

img = np.array(Image.open("practice_dataset/train/ants_image/0013035.jpg").convert('L'))
#区间变换
c =  (200/255) * img + 55
shift_img = Image.fromarray(c.astype('uint8'))
shift_img.save("D:/shift3.jpg")

img = np.array(Image.open("practice_dataset/train/ants_image/0013035.jpg").convert('L'))
d =  255 * (img/255)**2
shift_img = Image.fromarray(d.astype('uint8'))
shift_img.save("D:/shift4.jpg")

注:

uint8 是一个数据类型,表示无符号 8 位整数(unsigned 8-bit integer)。在许多编程语言和图像处理库中,包括 Python 中的 NumPy 和 PIL(Pillow),uint8 常用于表示图像像素的颜色值。

在 NumPy 中,uint8 是一种数据类型,用于表示范围在 0 到 255 之间的整数。它占用 8 位(1 字节)内存空间。可以使用 np.uint8 或 np.dtype('uint8') 来表示 uint8 数据类型。

在 PIL(Pillow)中,uint8 是默认的像素数据类型,用于表示图像的每个像素的颜色值。PIL 中的图像对象可以通过 Image.mode 属性来查看图像的模式,通常会显示为 "L"(灰度图像)或 "RGB"(真彩色图像)。对于 "L" 模式的图像,每个像素的值是一个 uint8 类型的灰度值(0 到 255);对于 "RGB" 模式的图像,每个像素的值是一个长度为 3 的 uint8 类型的元组,表示红、绿、蓝三个通道的颜色值。


http://www.niftyadmin.cn/n/5324372.html

相关文章

超详细的 pytest 钩子函数 之初始钩子和引导钩子来啦

前几篇文章介绍了 pytest 点的基本使用,学完前面几篇的内容基本上就可以满足工作中编写用例和进行自动化测试的需求。从这篇文章开始会陆续给大家介绍 pytest 中的钩子函数,插件开发等等。 仔细去看过 pytest 文档的小伙伴,应该都有发现 pyte…

8x8离散余弦的快速精确实现使用数据流单指令多数据扩展指令集进行转换MMX 说明书

1.https://www.cs.cmu.edu/~barbic/cs-740/ap922.pdf 2.FFmpeg: libavcodec/x86/fdct.c Source File 再学FDCT快速精确实现协议改写浮点FDCT, ffmpeg的dct使用的就是这个快速精确协议。

无root权限安装git-lfs(linux版)

首先给大家看一下官方链接:安装 Git Large File Storage - GitHub 文档 git-lfs/INSTALLING.md at main git-lfs/git-lfs (github.com) 直接用这个命令好啦~绕了一大圈 conda install git #yum install git 以下是手动安装 接下来是我的步骤: 首先在…

大数据仓库开发规范示例

大数据仓库开发规范示例 一、前提概要二、数仓分层原则及定义2.1 数仓分层原则2.2 数仓分层定义 三、数仓公共开发规范3.1 分层调用规范3.2 数据类型规范3.3 数据冗余规范3.4 NULL字段处理规范3.5 公共字段规范3.6 数据表处理规范3.7 事实表划分规范 四、数仓各层开发规范4.1 分…

对话姿美堂创始人董事长徐熙明:不受短期诱惑和外界噪音的影响,坚持做难而正确的事

“ 客户至上 ” 整理 | 云舒&凯丰 编辑 | 梦遥 出品|极新&北京电子商务协会 在过去几年中,直播电商经历了显著的发展,成为数字化零售领域的一个重要分支。随着智能手机和高速互联网的普及,消费者的购物习惯发生…

基础知识篇(二)Activity之生命周期变化

Activity作为四大组件之一,App切换、新的Activity启动与关闭以及配置发生变化等等都会引起Activity生命周期发生变化 一、常规模式下 场景1 A 启动 B 页面 //A启动B页面后 A:onPause B:onCreate B:onStart B:onResume A:onStop//然后关闭B页面后 B:onPause A:onRestart A:o…

Git 是什么?

Git 是什么? Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同,…

AWTK 开源串口屏开发(6) - 定时器的用法

定时器也是一个常用的功能,在 AWTK 串口屏中,可以给每个控件(包括窗口)创建一个定时器,定时器到点后触发 v-on:timer 事件。在 AWTK 串口屏中,提供了 6 个定时器相关函数: start_timer 启动定时…