pillow学习3

news2024/11/24 4:54:25

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)

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

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

相关文章

国家开放大学-实验3:类、对象、方法和修饰符的使用

作业答案 联系QQ:1603277115 实验目的 通过本实验,了解和掌握类、方法以及各个修饰符的使用。 问题描述 基于面向对象思想和类的方式,创建一个计算金额的程序。 啤酒 3.5元/罐, 方便面 4.5元/包, 矿泉水 2.0 元/瓶。 优惠规…

【Linux】信号之信号的产生详解

🤖个人主页:晚风相伴-CSDN博客 💖如果觉得内容对你有帮助的话,还请给博主一键三连(点赞💜、收藏🧡、关注💚)吧 🙏如果内容有误的话,还望指出&…

Java入门基础学习笔记50——ATM系统

1、项目演示; 2、项目技术实现; 1)面向对象编程: 每个账户都是一个对象,所以要设计账户类Account,用于创建账户对象封装账户信息。ATM同样是一个对象,需要设计ATM类,代表ATM管理系…

打破壁垒,实现多引擎3D内容轻量化交付|点量云流

随着应用场景的不断拓展,传统的视频流技术已难以满足日益复杂的需求。当前市场上的视频流解决方案支持的引擎基本是UE、Unitiy输出的exe3D应用,在处理WebGL等3D内容时,也存在诸多局限性,例如性能限制、跨平台兼容性问题、无法直接…

玩转OpenHarmony PID:教你打造两轮平衡车

简介 此次为大家带来的是OpenAtom OpenHarmony(以下简称“OpenHarmony”)系统与PID控制算法相结合并落地的平衡车项目。 PID控制算法是一种经典的,并被广泛应用在控制领域的算法。类似于这种:需要将某一个物理量保持稳定的场合&…

java学习五

Java方法 方法是什么 方法Debug 方法定义注意点 方法总结 方法使用时的常见问题

电商内卷时代,视频号小店凭借一己之力“脱颖而出”

大家好,我是电商笨笨熊 今年618各大电商平台花样百出; 某宝更是直接取消了“预售”,从5月就开始进入618预热期; 不少玩家既开心又难过,市场如此内卷,618确实是个爆发期,但更多的需要不断压低…

数据量较小的表是否有必要添加索引问题分析

目录 前言一、分析前准备1.1、准备测试表和数据1.2、插入测试数据1.3、测试环境说明 二、具体业务分析2.1、单次查询耗时分析2.2、无索引并发查询服务器CPU占用率分析2.3、添加索引并发查询服务器CPU占用率分析 三、总结 前言 在一次节日活动我们系统访问量到达了平时的两倍&am…

普乐蛙VR元宇宙展厅VR航天航空知识长廊

有没有幻想过有生之年可以亲自开战斗机?还是大名鼎鼎的“歼-20”哦!上到四五十岁的中年人,下到十几岁的小年轻,无论男女老少,没人能逃得过炫酷到飞起的新一代战斗机!快跟上小编的脚步,带你去开V…

2024云曦期中考(部分复现)

目录 一、Web Web_SINGIN 好玩的PHP 渗透的本质 简简单单的文件上传 简简单单的sql ​编辑 二、Crypto Crypto_Singin easy_rsa 三、Misc easy_singin Xjpg 四、Pwn pwn_Sing 五、Reverse babyre easy xor 一、Web Web_SINGIN F12代码中就有flag&#xff0…

构建稳健、高效与安全的企业级API网关

在现代企业信息化建设中,各种微服务架构系统以及不同类型的管理系统广泛兴起,平台中的数据安全逐渐成为企业重视的部分,在iPaaS系统中,一个名为“企业级API网关”的功能出现在大众眼中,随着企业信息化建设的不断深入&a…

ubuntu server 24.04 网络 SSH等基础配置

1 安装参考上一篇: VMware Workstation 虚拟机安装 ubuntu 24.04 server 详细教程 服务器安装图形化界面-CSDN博客 2 网络配置 #安装 sudo apt install net-tools#查看 ifconfig #修改网络配置 sudo vim /etc/netplan/50-cloud-init.yaml network:version: 2ethernets:en…

远程PLC、工控设备异地调试,贝锐蒲公英异地组网方案简单高效

北京宇东宁科技有限公司专门提供非标机电设备,能够用于金属制品的加工制造。设备主要采用西门子的PLC作为控制系统,同时能够连接上位机用于产量、温度、压力、电机运行数据的监控,以及工厂的大屏呈现需求。目前,客户主要是市场上的…

人工智能的阴暗面:犯罪分子如何利用 AI 进行欺诈

在当今数字化时代,人工智能(AI)正迅速成为推动各行各业生产力和创新的关键力量,而一些不法分子也开始探索如何将这些先进的工具用于他们自己的非法目的。从网络钓鱼到深度伪造,再到人肉搜索、越狱服务和身份验证系统的…

MySQL-性能分析

1、数据库服务器的优化步骤 2、查看系统性能参数 可以使用show status语句查询一些MySQL数据库服务器的性能参数 执行频率语法格式:show [ global | session ] status like 参数 ;常用性能参数如下所示 参数名说明connection连接MySQL服务器的次数upti…

如何使用Unity XR Interaction Toolkit

使用环境: Unity2021.3.21f XR Interaction Toolkit v3.0.0 各类函数可用的: 简单项目配置: 第一步,导包(samples可以不用导这么多,两个就够了): 第二步,构建场景&a…

c++|priority_queue

priority_queue 前置知识&#xff1a;仿函数priority_queue的模拟实现 前置知识&#xff1a;仿函数 template<class T> struct Less {bool operator()(const T& x, const T& y) // {return x < y;} };priority_queue的模拟实现 通过对priority_queue的底层…

element ui表格动态合并方法

懒得上代码直接截图了 1. 这种方法适合所有合并项全部在一起的 2.还方法可以选择从哪一列开始合并&#xff0c;或者像目录一样从前往后合并

使用 Elastic AI assistant for Observability 来分析日志

在今天的文章中&#xff0c;我们来参考之前的文章 “Elastic AI Assistant for Observability 和 Microsoft Azure OpenAI 入门” 来使用 Elastic AI assistant 分析日志。在本文章中&#xff0c;我们不使用 Azure clould。这样我们之间来进入主题&#xff0c;以免失去注意力。…