使用Python进行图像锐化的4个基础操作

想要让你的照片从模糊变锐利,就像魔法师轻轻一挥魔杖?今天我们就来学习如何用Python施加这神奇的“锐化滤镜”!🎉

首先,你需要一位得力助手——Pillow库,它能让我们轻松处理图像。如果你还没安装,赶紧在终端输入这行魔法咒语安装它吧:

pip install Pillow

安装好后,我们的图像冒险之旅就可以开始了!🚀

第一步:导入魔法书(库)

打开你的Python编辑器,写下这段引入库的代码:

from PIL import Image, ImageFilter# 打开图像文件
image_path = "your_image.jpg"  # 替换为你的图片路径
image = Image.open(image_path)

这里,PIL.ImageImageFilter 就是我们的魔法书,用来打开并操作图像。

第二步:基本锐化——一键增强

想象一下,有个简单的魔法可以瞬间提升照片清晰度,那就是“锐化滤镜”。

sharp_image = image.filter(ImageFilter.SHARPEN)
sharp_image.show()

简单两行,图像经过内部算法计算,对比度和边缘变得鲜明,就像给照片上了层薄薄的高清涂层。

第三步:进阶魔法——自定义锐化程度

觉得一键增强不够个性?没问题,让我们调制出自己的锐化药剂。

def custom_sharpen(image, factor=2):"""自定义锐化强度"""blur = image.filter(ImageFilter.BLUR)  # 先模糊sharpened = Image.blend(image, blur, factor)  # 混合原图与模糊图return sharpenedcustom_sharp_image = custom_sharpen(image)
custom_sharp_image.show()

这里,我们先用“模糊滤镜”制作底料,然后通过Image.blend将原图与模糊图以特定比例混合,factor控制锐化强度,值越大,效果越强烈,但小心不要过头哦!

第四步:高级技巧——Unsharp Masking

听说过摄影师的秘密武器——未锐化掩模吗?别担心,Python也能轻松实现。

def unsharp_mask(image, amount=1.5, radius=2, threshold=0):"""高级锐化技术"""blurred = image.filter(ImageFilter.GaussianBlur(radius))  # 高斯模糊sharp = image + (amount + 1) * (image - blurred)  # 计算差异并应用sharp = Image.eval(sharp, lambda p: min(max(p, 0), 255))  # 保证像素值在0-255之间return sharp.convert('L').convert(image.mode)  # 转灰度再转换回原模式以兼容所有颜色模式ultra_sharp_image = unsharp_mask(image)
ultra_sharp_image.show()

这段代码就像在图像上玩数字魔法。我们先对图像进行高斯模糊,创建一个差异图像,然后将这个差异乘以一个增强系数加回到原图,最后确保像素值不超出界限。这种技术能在保持自然感的同时显著提升细节。

小贴士:实践出真知

  • 不同的照片适合不同的锐化程度,多尝试几个参数,找到最适合的那一款。
  • 注意,过度锐化可能会产生不自然的边缘或噪点,要适度哦!

现在,你已经掌握了图像锐化的几个基础法术,是不是感觉自己的Python魔法又强大了一些呢?快去实践,让你的照片焕然一新,分享给朋友们展示你的魔法成果吧!

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

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

相关文章

Python Config 用法:探索配置文件的艺术

Python Config 用法:探索配置文件的艺术 在Python编程的广袤领域中,config模块以其独特的方式,为开发者们提供了一种灵活而强大的配置管理手段。本文将深入剖析config的用法,从四个方面、五个方面、六个方面和七个方面展现其魅力…

大泽动力车载柴油发电机的特点和优势有哪些

大泽动力车载柴油发电机具有一系列显著的特点和优势,以下是对其的详细介绍: 低噪音性能:大泽动力车载柴油发电机具备明显的低噪音性能,其噪音限值在距离机组7米处测得为70dB(A),这为用户提供了一个相对安静的工作环境…

Java18+​App端采用uniapp+开发工具 idea hbuilder智能上门家政系统源码,一站式家政服务平台开发 家政服务(师傅端)介绍

Java18​App端采用uniapp开发工具 idea hbuilder智能上门家政系统源码,一站式家政服务平台开发 家政服务(师傅端)介绍 家政服务师傅端是一个专为家政服务人员设计的平台,该平台旨在提供便捷、高效的工作机会,同时确保…

html期末复习速览

一.基础标签 1.段落标签<p></p> 特点&#xff1a;分段分割 2.标题标签<h1></h1>……<h6></h6> 特点&#xff1a;文字加粗&#xff0c;单独占一行 3.换行标签<br /> 特点&#xff1a;单标签&#xff0c;强制换行 二.文本格式化…

View->Bitmap缩放到自定义ViewGroup的任意区域(Matrix方式绘制Bitmap)

Bitmap缩放和平移 加载一张Bitmap可能为宽高相同的正方形&#xff0c;也可能为宽高不同的矩形缩放方向可以为中心缩放&#xff0c;左上角缩放&#xff0c;右上角缩放&#xff0c;左下角缩放&#xff0c;右下角缩放Bitmap中心缩放&#xff0c;包含了缩放和平移两个操作&#xf…

【面试】class文件里面是什么?

目录 1. 说明2. 主要部分2.1 魔数2.2 版本信息2.3 常量池2.4 访问标志2.5 类索引、父类索引和接口索引数组2.6 字段表2.7 方法表2.8 属性 1. 说明 1. .class 文件是 Java 编译器编译 Java 源代码文件&#xff08;.java 文件&#xff09;后生成的字节码文件。2.这些文件包含了 …

​探究当代婚恋市场的状况与挑战

​ 在当今社会&#xff0c;婚恋市场正经历着前所未有的变化。随着科技的进步和社会观念的演变&#xff0c;人们在寻找伴侣的方式和标准也在不断地发展。本文将探讨当前婚恋市场的状况&#xff0c;分析其面临的挑战&#xff0c;并提出相应的建议。 首先&#xff0c;互联网的普…

SpringBoot 多模块 多环境 项目 单元测试

环境描述 假设项目中有以下三个yml文件&#xff1a; application.ymlapplication-dev.ymlapplication-prod.yml 假设项目各Module之间依赖关系如下&#xff1a; 其中&#xff0c;D依赖C&#xff0c;C依赖B&#xff0c;B依赖A&#xff0c;D对外提供最终的访问接口 现在要想采…

深入解析MySQL事务的实现原理

一、事务的基本概念 在计算机科学中&#xff0c;事务 (Transaction) 是指对数据库进行的一系列操作&#xff0c;这些操作要么全部执行&#xff0c;要么全部不执行&#xff0c;是不可分割的工作单位。它们通常被用于确保数据库的完整性和一致性。 事务具有以下四个重要特性&am…

VUE阻止浏览器记住密码若依CLOUD(INPUT框密码替换圆点)

网上找的要不就是缺少方法要不就是不好用,故发一个完整的 粘贴可用版本 <el-form-item prop"password"><el-input v-model"loginForm.pwdCover" type"text" name"pwd" id"pwd" placeholder"密码" autoco…

“两客一危”车辆综合监控信息化产品及应用分析

引言 随着科技的不断进步和社会的发展&#xff0c;“两客一危”车辆&#xff08;即长途客车、旅游包车和危险品运输车&#xff09;的安全监管问题日益凸显。为了提升车辆的安全性能和管理效率&#xff0c;综合监控信息化产品应运而生。本文将对这一产品进行详细介绍&#xff0…

像艺术家一样工作

接下来开始翻译这本小册子 豆瓣评分还是挺高的&#xff0c;目前在国内没有看到有在售的翻译版本 书名直译的话是&#xff1a;像艺术家一样去偷 作者可能是为了制造营销话题&#xff0c;所以起了这么一个名字 但是偷这个词总归不太体面&#xff0c;所以我把书名翻译为&#…

随便用css换个渐变的太阳

来源于GPT4o&#xff1a;代码来源 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>渐变色上半圆…

机器学习笔记——欠拟合、过拟合

欠拟合 将训练损失和测试损失都比较大的拟合叫欠拟合&#xff0c;那么他的预测精度很低 1.一般出现在模型的复杂度小于数据本身的复杂度导致的&#xff0c;这个可能就是模型对数据的分布和实际数据分布之间的差异&#xff0c;这个就可能需要更换模型 2.还可能出现在梯度下降算…

零基础构建基于LangChain的聊天机器人(3)

检索对象 review_chain的目标是回答有关患者在医院就医体验的问题。到目前为止&#xff0c;已经将患者对医院的评论作为问题的上下文。虽然能回答少量问题&#xff0c;但它不具有很好的扩展性。此外&#xff0c;即使将所有评论放入模型的上下文中&#xff0c;也不能保证它使用…

QT天气预报项目(写在简历上)

一、ui设计 实现功能:可以搜索不同的城市进行天气的查询,并且显示未来7天内的天气,并绘制出当天的最高气温和最低气温曲线图。 学到的知识: stylesheet界面美化 Json数据解析 HTTP通信get请求 使用事件过滤器绘制温度曲线 多控件处理(利用数组) 代码整合调试能力 二…

线程思维导图

列出线程所有知识的框架结构&#xff0c;帮助理解线程相关知识&#xff0c;有更好的知识体系 Java相关进阶知识 多线程相关知识&#xff0c;超详细&#xff0c;易懂

Webrtc支持HEVC之Mediasoup SDP协商编码流程(三)

一、SDP校验 1、服务端的rtp能力配置 文件位置&#xff1a;cst-medias-server/core/config.js 具体内容&#xff1a;moduls.export-mediasoup-routerOpitions-mediaCodeces 注意事项&#xff1a;对于音视频codec&#xff0c;clinet只会使用第一个识别到的codec&#xff0c;…

windows上进行git初始化时报错:fatal: unknown write failure on standard output

一、报错描述 1、git init命令一般是在命令行&#xff0c;切换到项目的根目录后执行 2、如果是windows的系统&#xff0c;我们粘贴路径时&#xff0c;需要进行转义命令行才能识别&#xff0c; 也就是像我下面写的 D:\\Users\\...3、报错信息进行解读 一般情况下&#xff0c;…

Pytorch-Lighting使用教程(MNIST为例)

一、pytorch-lighting简介 1.1 pytorch-lighting是什么 pytorch-lighting&#xff08;简称pl&#xff09;&#xff0c;基于 PyTorch 的框架。它的核心思想是&#xff0c;将学术代码&#xff08;模型定义、前向 / 反向、优化器、验证等&#xff09;与工程代码&#xff08;for-…