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)

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

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

相关文章

图算法新书发布会圆满成功,大咖现场都讲了啥?

5月24日,嬴图与机工社携手举办的“《图算法:行业应用与实践》新书发布会”圆满成功。 现场直播在线观众达4000人/次左右,点赞数量超7000,直至发布会尾声,观看人数仍在持续增长。 通过观众们的反馈,我们也对…

Matplotlib 实践指南:图形样式、风格与标记探索

目录 前言 第一点:导入模块 第二点:创建二维图 第三点:创建统计图 总结 前言 Matplotlib 是一个强大的数据可视化库,可用于创建各种类型的图形。在本文中,我们将研究如何在 Matplotlib 中设置图形的颜色、风格和标记…

【LeetCode算法】第88题:合并两个有序数组

目录 一、题目描述 二、初次解答 三、官方解法 四、总结 一、题目描述 二、初次解答 1. 思路:首次想到的解法:定义一个mn长度的辅助数组,从头遍历这两个数组,谁小就放进辅助数组中并且对应往后走,最后使用memcpy函…

巧用java8的stream流的.collect(Collectors.toMap(arg1,arg2))

最近公司接手了一个低代码二次开发平台的需求,需要连接多张表的数据然后展示到界面上。 按照java的sql思路,我们直接通过left join去关联表就行了,但是该低代码平台有对sql连表查询有限制,就是有些表它是存在一个domainKey的&…

HotSpot虚拟机的几个实现细节

文章目录 STW安全点安全区域记忆集与卡表读写屏障 STW 收集器在根节点枚举这步都是必须要暂停用户线程的( STW ),如果不这样的话在根节点枚举的过程中由于引用关系在不断变化,分析的结果就不准确 安全点 收集器在工作的时候某些…

切勿安装这五款流氓软件,你中招了没

流氓软件,又称为恶意软件,是一类设计用来损害用户设备、窃取信息或干扰正常使用的程序。以下是五款臭名昭著的流氓软件介绍,提醒切勿安装,只能说一个比一个毒,你中招了没 可以去去虚拟机试试谁的毒更强一些&#xff0…

高工咨询:《2024中国人形机器人产业发展蓝皮书》

高工咨询所发布的《2024中国人形机器人产业发展蓝皮书》全面梳理了人形机器人产业的发展现状、政策环境、资本市场、技术发展、市场前景以及面临的机遇与挑战等情况。 人形机器人是当今世界科技领域最具潜力和前景的产业之一。随着科技的不断进步和人 工智能技术的快速发展&…

基于jeecgboot-vue3的Flowable增加表单功能(二)

因为这个项目license问题无法开源,更多技术支持与服务请加入我的知识星球。 接上一节 6、增加一个types.ts 类型 export interface FormForm {id: number | string | undefined;formName: string;formContent?: string;remark: string; } 7、api增加一个getForm…

Github Page 部署失败

添加 .gitmodules 文件 [submodule "themes/ayer"]path themes/ayerurl https://github.com/Shen-Yu/hexo-theme-ayer.git 添加 .nojekyll 文件

滚珠花键在工业自动化领域中有什么优势?

滚珠花键是工业自动化设备中重要的传动系统之一,不仅在工业自动化系统中有着广泛的运用,还在机械制造领域、航空航天领域、工业汽车领域、工业机器人、高速铁路、新能源领域 等都得到广泛应用。由于具有高精度、高承载、耐磨损、传递扭矩大等特点&#x…

K8s集群中的Pod调度约束亲和性与反亲和性

前言 在 K8s 集群管理中,Pod 的调度约束——亲和性(Affinity)与反亲和性(Anti-Affinity)这两种机制允许管理员精细控制 Pod 在集群内的分布方式,以适应多样化的业务需求和运维策略。本篇将介绍 K8s 集群中…

airtest做web端UI自动化实战

安装 官网下载客户端 airtest库安装 pip install airtest pip install pocoui脚本录制 利用airtest客户端录制脚本 web端辅助插件-selenium windows打开: 设置chrome路径 开始调式录制 脚本运行 # -*- coding: utf-8 -*- """ Time : 2024/5/…

龙迅LT86102UXE HDMI 2.0分配两个HDMI 2.0输出,支持标准4K60HZ,内置MCU供电可自动操作

龙迅LT86102UXE描述: Lontium LT86102UXE HDMI2.0分配器具有1:2的分配器,符合HDMI2.0/1.4规范,最大6Gbps高速数据速率,自适应均衡RX输入和预先强调的TX输出,以支持长电缆应用程序,内部TX通道交…

用大模型搭建一个自己的新闻小助手

背景 信息快速增长的时代,及时获取到有价值的资讯是一件很必要的事情。已经有各类新闻app和获取信息的渠道了,为什么还需要在构建一个小助手来获取新闻资讯呢?其实原因很简单各类新闻app服务的是具体一类人群,个人和人群还是有偏…

kafka-消费者组-发布订阅测试

文章目录 1、发布订阅测试1.1、创建消费者4并指定组 my_group21.2、列出所有的消费者组1.3、查看 my_group2 组的详细信息1.4、发送第六条消息accomplish1.4.1、查看 my_group1 组的详细信息1.4.2、查看 my_group2 组的详细信息 1、发布订阅测试 接着上一篇点对点博客测试 kafk…

LabVIEW控制Trio控制器

将LabVIEW与Trio控制器结合,可以实现对复杂运动系统的控制和监测。以下是详细的方法和注意事项: 一、准备工作 软件安装: 安装LabVIEW开发环境,确保版本兼容性。 安装Trio控制器的相关驱动程序和软件,如Trio Motion …

出现 Transaction rolled back because it has been marked as rollback-only 解决方法

目录 1. 问题所示2. 原理分析3. 解决方法1. 问题所示 用户反馈的Bug如下所示: Transaction rolled back because it has been marked as rollback-only截图如下: 浏览器终端同样显示: 2. 原理分析 错误表明,在事务的生命周期内,遇到了某个异常或条件,导致该事务被标记…

Shell编程中的循环语句和函数

一、for循环语句 当面对各种列表重复任务时,使用简单的if语句已经难以满足需求,这时就需要for循环语句。for语句的结构为: for 变量 in 取值列表 do 命令序列 done 使用for循环语句时,需要指定一个变量及取值列表,针对…

2、python环境的安装-mac系统下

打开官网,downloads下边有macOS,点击: 选择最新版本,点击,进入下边的页面,一直往下滑,看到files中有个macOS的版本,点击下载 点击下载后是pkg的安装包,点击安装。 一步步…

鸿蒙OS开发:【一次开发,多端部署】(app市场首页)项目

一多应用市场首页 介绍 本示例展示了应用市场首页,页面中包括Tab栏、运营横幅、精品应用、精品游戏等。 本示例使用一次开发多端部署中介绍的自适应布局能力和响应式布局能力进行多设备(或多窗口尺寸)适配,保证应用在不同设备或…