图像的初识

一、图像的数组表示

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.mzph.cn/news/622095.shtml

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

相关文章

「 典型安全漏洞系列 」03.跨站请求伪造CSRF详解

引言:CSRF(Cross-Site Request Forgery,跨站请求伪造)是一种攻击技术,通过使用用户的身份进行不诚实地操作,恶意用户可以在受害者(目标)的机器上执行一些未授权的操作。这可能会危及…

Jenkins自动化部署docker

Jenkins自动化部署docker和普通方式构建 docker外挂目录 准备测试服务器docker环境准备jdk环境将上传jar包修改为app.jar对外暴露1000端口启动jar FROM openjdk:8-jdk-alpine ARG JAR_FILE COPY ${JAR_FILE} app.jar EXPOSE 1000 ENTRYPOINT ["java","-jar&q…

MobaXterm连接服务器步骤

双击该软件 选择Session 点击SSH 填写服务器的IP地址、服务器的用户名称、Port这个端口号一般都是这个,但有些可能例外,自己注意一下,最后点击OK就行 这个五角星点击一下,就可以看到您自己刚才的配置。 鼠标左键双击&…

第 12 章 多路查找树

文章目录 12.1 二叉树与B 树12.1.1 二叉树的问题分析12.1.2 多叉树12.1.3 B 树的基本介绍 12.2 2-3 树12.2.1 2-3 树是最简单的 B 树结构, 具有如下特点:12.2.2 2-3 树应用案例12.2.3 其它说明 12.3 B 树、B树和 B*树12.3.1 B 树的介绍12.3.2 B 树的介绍12.3.3 B树的介绍12.3.4…

深入理解 Spark(四)Spark 内存管理模型

Spark 中的内存管理和资源管理模型 Executor 进程作为一个 JVM 进程,其内存管理建立在 JVM 的内存管理之上,整个大致包含两种方式:堆内内存和堆外内存。 一个 Executor 当中的所有 Task 是共享堆内内存的。一个 Work 中的多个 Executor 中的…

如何简单的使用文心一言(高级版)(中国版ChatGPT)

文心一言API高级版使用 一、百度文心一言API(高级版)二、使用步骤1、接口2、请求参数3、请求参数示例4、接口 返回示例5、智能生成API代码 三、 如何获取appKey和uid1、申请appKey:2、获取appKey和uid 四、重要说明 一、百度文心一言API(高级版) 基于百度文心一言语言大模型的…

Elasticsearch 快速入门指南【总结记录】

本文将介绍一些基本概念,帮助您快速入门使用Elasticsearch。 一、概述 ES用来解决什么问题?Elasticsearch是解决海量数据(已经存在的数据)全文检索的不二只选。 Elasticsearch是一个基于Java语言开发,建立在开源搜索…

「Vue3面试系列」Vue 3.0中Treeshaking特性有哪些?举例说明一下?

文章目录 一、是什么二、如何做Vue2 项目Vue3 项目 三、作用参考文献 一、是什么 Tree shaking 是一种通过清除多余代码方式来优化项目打包体积的技术,专业术语叫 Dead code elimination 简单来讲,就是在保持代码运行结果不变的前提下,去除…

k8s的存储卷(数据卷)

1、存储卷:容器内的目录和宿主机的目录进行挂载 2、容器在系统上的生命周期是短暂的,delete,k8s用控制器创建的pod,delete相当于重启,容器的状态也会恢复到初始状态,一旦回到初始状态,所有的后…

SpringBoot从数据库读取数据数据源配置信息,动态切换数据源

准备多个数据库 首先准备多个数据库,主库smiling-datasource,其它库test1、test2、test3 接下来,我们在主库smiling-datasource中,创建表databasesource,用于存储多数据源相关信息。表结构设计如下 创建好表之后&#…

平面光波导_三层均匀平面光波导_射线分析法

平面光波导_三层均匀平面光波导_射线分析法 三层均匀平面光波导: 折射率沿 x x x 方向有变化,沿 y y y、 z z z 方向没有变化三层:芯区( n 1 n_1 n1​) > > > 衬底( n 2 n_2 n2​) ≥ \geq ≥ 包层( n 3 n_3 n3​)包层通常为空…

Docker容器进入的4种方式(推荐最后一种)

在使用Docker创建了容器之后,大家比较关心的就是如何进入该容器了,其实进入Docker容器有好几多种方式,这里我们就讲一下常用的几种进入Docker容器的方法。 进入Docker容器比较常见的几种做法如下: 使用docker attach使用SSH使用…

【已解决】C语言实现多线程检索数据

本博文源于笔者正在学习的c语言。学习如何用多线程进行检索数据。这里以检索一个数组的数据为例,给出代码,并分析如何进行线程通信,如果检索到,其余就别检索了。 文章目录 问题来源问题解决方案代码实现效果总结 问题来源 想要用…

这可能是最全面的Java集合面试八股文了

内容摘自我的学习网站:topjavaer.cn 常见的集合有哪些? Java集合类主要由两个接口Collection和Map派生出来的,Collection有三个子接口:List、Set、Queue。 Java集合框架图如下: List代表了有序可重复集合&#xff0c…

【VSCode,Python】一劳永逸的成功导入本地模组,PYTHONPATH的修改,与各种踩坑点

【VSCode,Python】一劳永逸的成功导入本地模组,PYTHONPATH的修改 起因查阅发现做法一 (推荐做)做法二 (推荐必做)踩坑点(必看) 起因 文件目录如下: my_project/ |-- pa…

【26 预处理详解】

目录 预定义符号#define定义常量#define定义宏带有副作用的宏参数宏替换的规则宏函数的对比#和##命名约定#undef命令行定义条件编译头文件的包含其他预处理指令 1. 预定义符号 c语言设置了一些预定义符号,可以直接使用,预定义符号也是在预处理期间处理…

LeetCode-1672/1572/54/73

1.最富有客户的资产总量(1672) 题目描述: 给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i​​​​​​​​​​​​ 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。 客户的 资产总…

Python自动化测试框架【生成测试报告】

如何才能让用例自动运行完之后,生成一张直观可看易懂的测试报告呢? 小编使用的是unittest的一个扩展HTMLTestRunner 环境准备 使用之前,我们需要下载HTMLTestRunner.py文件 点击HTMLTestRunner后进入的是一个写满代码的网页,小…

如何正确使用数据库读写分离

背景 在应用系统发展的初期,我们并不知道以后会发展成什么样的规模,所以一开始不会考虑复杂的系统架构,复杂的系统架构费时费力,开发周期长,与系统发展初期这样的一个定位是不吻合的。所以,我们都会采用简…

三菱FX系列PLC定长切割控制(线缆裁切)

三菱PLC绝对定位指令DDRVA实现往复运动控制详细介绍请查看下面文章链接: https://rxxw-control.blog.csdn.net/article/details/135570157https://rxxw-control.blog.csdn.net/article/details/135570157这篇博客我们介绍线缆行业的定长切割控制相关算法。 1、输送…