pillow学习3

Pillow库中,图像的模式代表了图像的颜色空间。以下是一些常见的图像模式及其含义:
L(灰度图):L模式表示图像是灰度图像,每个像素用8位表示(范围为0-255),0表示黑色,255表示白色。
RGB:RGB模式表示图像是真彩色图像,每个像素由红(R)、绿(G)、蓝(B)三种颜色通道组成,每个通道占据8位,共24位表示一个像素的颜色。
CMYK:CMYK模式表示图像是使用青色(Cyan)、品红(Magenta)、黄色(Yellow)、黑色(Key/Keyline)四种油墨颜色的印刷图像,主要用于打印
在这里插入图片描述

from PIL import Image
img1=Image.open('blend1.jpg')
img2=Image.open('blend2.jpg')
img2=img2.resize(img1.size)
r1,g1,b1= img1.split()
r2,g2,b2= img2.split()#进行色道的分离
tmp=[r1,g2,b1]#用img2的绿色通道代替img1的绿色通道
img = Image.merge("RGB",tmp)#其中 mode 指输出图像的模式,bands 波段通道,一个序列包含单个带图通道。
img.show()

图片合并

滤镜
在 Pillow 库中的 Image 模块中,使用函数 filter()可以对指定的图片使用滤镜效果,在
Pillow 库中可以用的滤镜保存在 ImageFilter 模块中。

Image.filter(filter)

通过函数 filter(),可以使用给定的滤镜过虑指定的图像,参数“filter”表示滤镜内核。

在这里插入图片描述

from PIL import Image,ImageFilter
#使用函数 filter()实现滤镜效果
img=Image.open('bjsxt.png')
b=img.filter(ImageFilter.GaussianBlur)
b.show()

GaussianBlur(高斯模糊):
作用:高斯模糊是一种基于正态分布的模糊滤镜,用于平滑图像,减少噪点和细节。
参数:
radius:模糊的半径,值越大,模糊效果越明显。
应用场景:用于减小图像噪声、平滑图像或为其他滤镜操作做预处理。

UnsharpMask(不清晰的掩模滤镜):
作用:不清晰的掩模实际上是用于增强图像的边缘细节,通过先进行模糊处理再进行锐化来实现。
参数:
radius:模糊半径,用于模糊处理,值越大,影响范围越广。
percent:增强的强度,百分比值,决定了锐化的强度。
threshold:阈值,决定只有在像素强度差异超过此值时才进行锐化处理。
应用场景:用于图像锐化和增强细节,使图像看起来更加清晰。

MinFilter(最小值滤波):
作用:最小值滤波器会用滤波窗口内的最小值替换中心像素值,主要用于减少图像中的盐噪声(白点噪声)。
参数:
size:滤波器的大小(例如3表示3x3的窗口)。
应用场景:用于去除图像中的极端亮点,平滑图像。

MedianFilter(中值滤波):
作用:中值滤波器会用滤波窗口内的中值替换中心像素值,主要用于去除椒盐噪声。
参数:
size:滤波器的大小(例如3表示3x3的窗口)。
应用场景:用于去除图像中的噪声,特别是椒盐噪声,同时尽量保留边缘细节。

ModeFilter(模式滤波):
作用:模式滤波器会用滤波窗口内的众数(出现次数最多的值)替换中心像素值,用于减少随机噪声。
参数:
size:滤波器的大小(例如3表示3x3的窗口)。
应用场景:用于去除图像中的随机噪声,特别是图像中有大量重复元素时效果较好。
主要区别总结:
GaussianBlur:平滑整个图像,减少细节和噪声。
UnsharpMask:增强图像细节,通过模糊和锐化组合实现。
MinFilter:用窗口内的最小值替换中心像素,去除图像中的盐噪声。
MedianFilter:用窗口内的中值替换中心像素,去除图像中的椒盐噪声。
ModeFilter:用窗口内的众数替换中心像素,减少随机噪声。
每种滤波器有其特定的用途和效果,可以根据图像处理的需求选择合适的滤波器。

高斯模糊 (GaussianBlur):
图像整体变得更加平滑,细节被模糊掉,有助于减少噪声。
不清晰的掩模滤镜 (UnsharpMask):
图像的细节被增强,边缘变得更加清晰,整体显得更加锐利。
最小值滤波 (MinFilter):
图像中亮点被削弱,减少了极端亮点的影响,整体变得较暗。
中值滤波 (MedianFilter):
图像中的噪声,特别是椒盐噪声被有效去除,保留了边缘细节。
模式滤波 (ModeFilter):
图像中的随机噪声被减少,平滑了图像,同时保留了一些重复的元素。

高斯噪声(Gaussian Noise):

特点:高斯噪声的像素值变化符合高斯分布(正态分布),即大部分噪声值集中在平均值附近,随着离平均值越远的概率越小。
来源:通常来自电子设备的热噪声或传感器的随机波动。
表现:图像上会有较为均匀的亮度变化,但没有明显的斑点。
椒盐噪声(Salt-and-Pepper Noise):

特点:椒盐噪声表现为图像中的随机白色(盐)和黑色(胡椒)点。
来源:传感器故障、传输错误或数字图像处理中的不准确操作。
表现:图像上有明显的黑白斑点,非常显眼。
泊松噪声(Poisson Noise):

特点:泊松噪声(也称为光子噪声)与图像信号强度成比例,通常在光子计数过程中产生。
来源:摄影过程中由于光子的统计波动导致的噪声。
表现:图像亮度越高的地方噪声越明显。
散斑噪声(Speckle Noise):

特点:散斑噪声是一种相干噪声,通常在激光、雷达和超声波成像中出现。
来源:相干光束干涉造成的图像强度波动。
表现:图像看起来像覆盖了一层细小的斑点。

1.目视检查
直接观察图像:
高斯噪声:图像整体看起来有轻微的模糊,亮度和颜色有细微变化。
椒盐噪声:图像中出现明显的黑白斑点。
泊松噪声:通常在低光图像中,亮度较高区域出现随机斑点。
散斑噪声:图像看起来像覆盖了一层斑点,尤其是在相干成像系统中(如雷达、超声波成像)。
2. 直方图分析
观察图像的灰度直方图:
高斯噪声:直方图会有广泛的分布,集中在中心,但有宽的尾部。
椒盐噪声:直方图会在极值处(0和255)出现尖峰。
泊松噪声:直方图显示随亮度变化的不同程度的分布,特别是在低亮度区域。
散斑噪声:直方图会显示出更复杂的分布,取决于图像内容和噪声性质。
3. 统计分析
计算图像的统计特性:
均值和方差:高噪声图像的方差通常较大。
信噪比(SNR):较低的SNR表示较高的噪声水平。
4. 频域分析
傅里叶变换:
将图像转换到频域,通过观察频谱图判断噪声。
高斯噪声:频谱图中有较为均匀的高频分量。
椒盐噪声:频谱图中有较高的随机高频分量。
散斑噪声:频谱图中有特定的条纹或斑点模式。
5. 滤波器响应
应用滤波器并观察效果:
高斯模糊:应用后,如果图像变得更平滑且噪声减少,可能存在高斯噪声。
中值滤波:应用后,如果图像斑点减少,说明存在椒盐噪声。

ImageChops 模块
在 Pillow 库的内置模块 ImageChops 中包含了多个用于实现图片合成的函数。这些合成
功能是通过计算通道中像素值的方式来实现的。其主要用于制作特效、合成图片等操作。
常用的内置函数如下所示:

ImageChops.add(image1,image2,scale = 1.0,offset = 0

输出值为

out = ((image1 + image2) / scale + offset)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TTime:截图翻译/OCR

日常网页翻译Translate Web Pages完全足够,TTime最重要的功能,还是截图翻译,还有个厉害的功能,就是静默OCR,相比之前的分享的识字精灵效率更高。 软件使用 打开软件,点击翻译源设置,建议勾选一…

grafana大盘展示node_expod节点

node_expod添加lables标签 Prometheus查询 语句查询 node_exporter_build_infografna添加变量查询 正常有值 切换其他的是有值的 我的报错原因 因为有多个数据源,我选择错了,因为修改的lable标签是其他数据源,所以获取不到 查询语句 我的变量是 $app node_filesyste…

养老院管理系统基于springboot的养老院管理系统java项目

文章目录 养老院管理系统一、项目演示二、项目介绍三、系统部分功能截图四、部分代码展示五、底部获取项目源码(9.9¥带走) 养老院管理系统 一、项目演示 养老院管理系统 二、项目介绍 基于springboot的养老院管理系统 角色:超级…

Python代码:十七、生成列表

1、题目 描述: 一串连续的数据用什么记录最合适,牛牛认为在Python中非列表(list)莫属了。现输入牛牛朋友们的名字,请使用list函数与split函数将它们封装成列表,再整个输出列表。 输入描述: …

011-Linux磁盘管理

文章目录 前言 一、du:查看文件和目录占用的磁盘空间 二、df:查看文件系统的整体磁盘使用情况 三、lsblk:查看设备挂载情况 四、fdisk:磁盘分区 4.1、查看磁盘分区列表 4.2、磁盘分区 4.2.1、交互命令的功能 4.2.2、对/d…

详细分析Element中的Drawer(附Demo)

目录 前言1. 基本知识2. Demo2.1 基本用法2.2 不同方向2.3 自定义大小2.4 嵌入表单2.5 嵌套抽屉 3. 实战4. Element Plus(Drawer) 前言 对于该组件针对Vue2比较多,而Element Plus中的Drawer针对Vue3比较多 此处的Demo主要偏向Vue2 后续的El…

【学习笔记】计算机组成原理(七)

指令系统 文章目录 指令系统7.1 机器指令7.1.1 指令的一般格式7.1.2 指令字长 7.2 操作数类型和操作类型7.2.1 操作数类型7.2.2 数据在存储器中的存放方式7.2.3 操作类型 7.3 寻址方式7.3.1 指令寻址7.3.1.1 顺序寻址7.3.1.2 跳跃寻址 7.3.2 数据寻址7.3.2.1 立即寻址7.3.2.2 直…

【数据结构与算法】七大排序算法(上)

【数据结构与算法】七大排序算法(上) 🥕个人主页:开敲🍉 🔥所属专栏:数据结构与算法🍅 🌼文章目录🌼 1. 排序的概念及应用 1.1 排序的概念 1.2 排序的应用 1.3 常见排序算法 2. 常…

Spring MVC+mybatis 项目入门:旅游网(二) dispatcher与controller与Spring MVC

个人博客:Spring MVCmybatis 项目入门:旅游网(二)dispatcher与controller与Spring MVC | iwtss blog 先看这个! 这是18年的文章,回收站里恢复的,现阶段看基本是没有参考意义的,技术老旧脱离时代…

中国上市企业行业异质性数据分析

数据简介:企业行业异质性数据是指不同行业的企业在运营、管理、财务等方面的差异性数据。这些数据可以反映不同行业企业的特点、优势和劣势,以及行业间的异质性对企业经营和投资的影响。通过对企业行业异质性数据的分析,投资者可以更好地了解…

杀死那个进程

一、场景 eclipse在启动tomcat时,出现端口被占用的情况。我寻思着“任务管理器”没出现相应程序在跑啊。 1.1问题:端口和进程的关系 端口和进程之间存在着一种关系,端口是一个逻辑概念,它用于标识网络通信中的一个终点&#xff0…

基于Java实现震中附近风景区预警可视化分析实践

目录 前言 一、空间数据说明 1、表结构信息展示 2、空间范围查询 二、Java后台开发实现 1、模型层设计与实现 2、控制层设计与实现 三、Leaflet地图开发 1、地震震中位置展示 2、百公里风景区列表展示 3、风景区列表展示 4、附近风景区展示 四、总结 前言 地震这类…

为表格添加背景色:\rowcolor, \columncolor,\cellcolor

设置行的背景 \rowcolor 是 LaTeX 中用于设置表格行的背景色的命令。它可以使表格更加美观和易于阅读。rowcolor 命令通常与 colortbl 宏包一起使用。 语法如下&#xff1a; \rowcolor{<color>}其中 表示要设置的背景色&#xff0c;可以是预定义的颜色名称&#xff08…

C++算术运算和自增自减运算

一 引言 表示运算的符号称为运算符。 算术运算&#xff1b; 比较运算&#xff1b; 逻辑运算&#xff1b; 位运算&#xff1b; 1 算术运算 算术运算包括加、减、乘、除、乘方、指数、对数、三角函数、求余函数&#xff0c;这些都是算术运算。 C中用、-、*、/、%分别表示加、减…

Redis 中 List 数据结构详解

目录 List 用法 1. 增 2. 删 3. 查 内部编码 应用场景 前言 Redis 中的 List 和 Set 数据结构各有特点&#xff0c;适用于不同的应用场景。List 提供了有序的列表结构&#xff0c;适合用于消息队列和任务列表等场景&#xff1b;Set 提供了无序且不重复的集合结构&#…

9.Docker网络

文章目录 1、Docker网络简介2、常用基本命令3、网络模式对比举例3.1、bridge模式3.2、host模式3.3、none模式3.4、container模式3.5、自定义网络 1、Docker网络简介 作用&#xff1a; 容器间的互联和通信以及端口映射容器IP变动时候可以通过服务名直接进行网络通信而不受到影…

module ‘plotting‘ has no attribute ‘EpisodeStats‘

plotting.py 的版本不同&#xff0c;可以使用下列版本 reinforcement-learning/lib/plotting.py at master dennybritz/reinforcement-learning GitHubImplementation of Reinforcement Learning Algorithms. Python, OpenAI Gym, Tensorflow. Exercises and Solutions to a…

机器人运动轨迹学习——GMM/GMR算法

机器人运动轨迹学习——GMM/GMR算法 前置知识 GMM的英文全称为&#xff1a;Gaussian mixture model&#xff0c;即高斯混合模型&#xff0c;也就是说&#xff0c;它是由多个高斯模型进行混合的结果&#xff1a;当然&#xff0c;这里的混合是带有权重概念的。 一维高斯分布 GMM中…

「Python Socket超能力:网络世界的隐形斗篷!」

Hi&#xff0c;我是阿佑&#xff0c;今天将带领大家揭开Python Socket编程的神秘面纱&#xff0c;赋予我们的网络应用隐形斗篷般的超能力&#xff01; 深入探讨Socket编程的革命性力量&#xff0c;教你如何用Python的Socket模块来构建强大的网络应用。从简单的HTTP服务器到复杂…

go语言初识别(五)

本博客内容涉及到&#xff1a;切片 切片 1. 切片的概念 首先先对数组进行一下回顾&#xff1a; 数组定义完&#xff0c;长度是固定的&#xff0c;例如&#xff1a; var num [5]int [5]int{1,2,3,4,5}定义的num数组长度是5&#xff0c;表示只能存储5个整形数字&#xff0c…