三行代码实现图像画质修复,图片清晰度修复,清晰度提升python
核心代码
# 原始文件
enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
# 增强图片
img_enhanced = enhancer.enhance(增强系数float)
# 输出目标文件
img_enhanced.save('文件名.png')
注意,输入输出文件格式必须一致
所需依赖
# 文件选择框,可以直接输相对路径不引入这个
from tkinter import filedialog
# 增强
from PIL import Image, ImageEnhance
代码实现
from tkinter import filedialog
from PIL import Image, ImageEnhancedef open_file_dialog():file_path = filedialog.askopenfilename()# 在这里添加代码,处理文件路径print("选择的文件路径:", file_path)return file_path# 打开原图像
# img = Image.open('image.png')
filePath = open_file_dialog()
img = Image.open(filePath)
# 设置增强因子
factor = float(input('请输入增强系数(1.0~99.9):'))enhancer = ImageEnhance.Sharpness(img)# 增强图片
img_enhanced = enhancer.enhance(factor)# 保存增强后的图像
arr = filePath.split('/')
i=0
fileDir=''
len = len(arr)
while i < len-1:fileDir += arr[i]+'/'i += 1img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])
print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:
增强锐度
from PIL import Image, ImageEnhance# 打开图片
img = Image.open('image.png')# 增强锐度
sharpness = ImageEnhance.Sharpness(img)
img = sharpness.enhance(1.5)# 显示图片
img.show()
增强对比度
from PIL import Image, ImageEnhance# 打开图片
img = Image.open('image.png')# 增强对比度
contrast = ImageEnhance.Contrast(img)
img = contrast.enhance(1.5)# 显示图片
img.show()
相关文章:
三行代码实现图像画质修复,图片清晰度修复,清晰度提升python
核心代码 # 原始文件 enhancer ImageEnhance.Sharpness(Image.open(文件路径.png)) # 增强图片 img_enhanced enhancer.enhance(增强系数float) # 输出目标文件 img_enhanced.save(文件名.png)注意,输入输出文件格式必须一致 所需依赖 # 文件选择框,…...
企业电子招投标采购系统源码之电子招投标的组成
功能模块: 待办消息,招标公告,中标公告,信息发布 描述: 全过程数字化采购管理,打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力,为外部供…...
【MySQL】 MySQL的增删改查(进阶)--贰
文章目录 🛫新增🛬查询🌴聚合查询🚩聚合函数🎈GROUP BY子句📌HAVING 🎋联合查询⚾内连接⚽外连接🧭自连接🏀子查询🎡合并查询 🎨MySQL的增删改查(…...
第七章 查找
一、树形查找-二叉排序树和红黑树 二叉排序树 // 二叉排序树节点 typedef struct BSTNode{ElemType key;struct BSTNode *lchild, *rchild; } BSTNode, *BSTree;五叉查找树 // 5叉排序树的节点定义 struct Node{ElemType keys[4]; // 5叉查找树一个节点最多4个关键字struct…...
openfeign返回消息报错.UnknownContentTypeException
1. springcloud项目使用openfeign报错 org.springframework.web.client.UnknownContentTypeException: Could not extract response: no suitable HttpMessageConverter found for response type [com.yl.base.Result<java.util.List<com.yl.entity.LabelConfig>>…...
[Linux入门]---Linux项目自动化构建工具-make/Makefile
目录 1.背景2.make指令输入make默认为Makefile文件第一条指令执行Makefile文件对gcc指令特殊处理及原理特殊符号 3.总结 1.背景 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力一个工程中的源文件不计数,其按类型、功能、模块分别放…...
[Python进阶] 程序打包之Pyinstaller参数介绍
5.4 Pyinstaller参数介绍 5.4.1 选项参数 参数名 说明 -h、–help 查看Pyinstaller所有命令的用法和帮助 -v、–version 查看当前Pyinstaller版本 –distpath DIR 设置dist位置,默认当前目录 –workpath WORKPATH 设置build位置,默认当前目录 -y、–no…...
Python中如何判断列表中的元素,是否在一段文本中??
#我的Python教程 #官方微信公众号:wdPython1.要判断列表中的每个元素是否在一段文本中,可以使用Python中的字符串的 in 运算符来实现。以下是一个示例代码: text "Hello, how are you today?" word_list ["Hello", &…...
spark Structured报错解决
报错,不想看原因的直接去解决方案试试 Exception in thread "main" java.lang.IllegalArgumentException: Pathname /C:/Users/Administrator/AppData/Local/Temp/1/temporary-611514af-8dc5-4b20-9237-e5f2d21fdf88/metadata from hdfs://master:8020/C…...
Matter 协议系列:发现
Commissionable 发现 Commissionable 发现发生在投入使用(未绑定)之前,指的是发现和识别Commissionable 节点的过程。有三种方法可以通过这些方法中的任何一种来 广播Commissionable 的节点: 蓝牙低功耗(BLEÿ…...
Oracle 12c Docker镜像配置SSL
一、Docker运行Oracle 12c服务 a.拉取镜像 docker pull truevoly/oracle-12cb.运行 docker run -d -p 1521:1521 -p 2484:2484 -v /data/oracle/:/opt/oracle --name oracle_12c truevoly/oracle-12cc.查看日志 docker logs -f oracle_12cd.出现如下信息,则启动…...
版本控制系统git:一文了解git,以及它在生活中的应用,网站维护git代码,图导,自动化部署代码
目录 1.Git是什么 2.git在生活中的应用 2.1git自动化部署代码 3.网站维护git代码 3.1如何在Git代码托管平台等上创建一个仓库 3.2相关文章 4.ruby实现基础git 4.1.Git add 4.2 Git commit 4.3 Git log 1.Git是什么 Git是一个版本控制系统,它可以追踪文件的…...
uqrcode+uni-app 微信小程序生成二维码
使用微信小程序需要弹出动态二维码的需求,从插件市场选了一个下载次数较多的组件引入到项目中uqrcode,使用步骤如下: 1、从插件市场下载 插件地址:https://ext.dcloud.net.cn/plugin?id1287,若你是跟我一样是用uni-…...
从零开始的 MyBatis 拦截器之旅:实战经验分享
文章目录 MyBatis拦截器可以做什么?Mybatis核心对象介绍四大核心对象如何实现?接口讲解Interceptor接口intercept方法plugin方法setProperties 完整SQL打印拦截器实战拦截器实现拦截器注册 MyBatis拦截器可以做什么? MyBatis拦截器是MyBatis…...
网络编程day05(IO多路复用)
今日任务: TCP多路复用的客户端、服务端: 服务端代码: #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <netinet/in.h> #include <unistd.h> …...
人声分离网站,帮你快速提取视频中的人声和背景音乐
今天给大家带来一个可以分离人声的网站——音分轨,他运用人工智能算法可以将音频中的人声部分和音乐部分分离,使我们的视频制作过程可以更方便。 我们点击右下角“选择文件”上传一个音频,上传好音频后,人工智能就开始处理我们上传…...
计算机网络常见问题
1.谈一谈对OSI七层模型和TCP/IP四层模型的理解? 1.1.为什么要分层? 在计算机中网络是个复杂的系统,不同的网络与网络之间由于协议,设备,软件等各种原因在协调和通讯时容易产生各种各样的问题。例如:各物流…...
上PICO,沉浸式观看亚运直播,参与跨国界游戏竞技
备受瞩目的杭州第19届亚运会,将于9月23日正式开幕。据悉,这也是有史以来项目最多的一届亚运会,除部分传统奥运项目外,还包含武术、藤球、板球、克柔术、柔术等亚洲特色项目,以及霹雳舞、电子竞技等深受年轻人喜爱的新兴…...
无重复字符的最长子串 - 力扣(LeetCode)
3. 无重复字符的最长子串 - 力扣(LeetCode) 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长…...
企业行政许可的种类有哪些?
从行政许可的性质、功能和适用条件的角度来说,大体可以划分为五类:普通许可、特许、认可、核准、登记。 1.普通许可 普通许可是一种允许符合特定条件的相对方行使某种权利的行为。在许多情况下,需要普通许可的活动都与国家安全、公共安全息…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...
elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...
【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
五子棋测试用例
一.项目背景 1.1 项目简介 传统棋类文化的推广 五子棋是一种古老的棋类游戏,有着深厚的文化底蕴。通过将五子棋制作成网页游戏,可以让更多的人了解和接触到这一传统棋类文化。无论是国内还是国外的玩家,都可以通过网页五子棋感受到东方棋类…...
