- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件
( `7 Q/ Q H+ u: _' r$ C4 F - 4 U! }3 T# n3 g) h P
- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
% Z\" u+ {( z2 e* M$ K+ G7 U - 2 T\" Y3 }! j2 t( [\" q; [) `
- # 增强图片
; |& F' Z& G4 r - ' y) a( W9 [. Q( L% [, e6 D
- img_enhanced = enhancer.enhance(增强系数float)' [\" k- _5 {2 r\" N P
6 c! q- o/ E; R4 k- B- # 输出目标文件
& M- p6 J% x; e5 P V# q9 Q4 U5 { - . [+ Z3 A8 K k7 G' M
- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致; E% a) \ \& ~2 y0 A
& q# h( c N2 A4 |& Y0 h所需依赖
2 s) K: R0 j2 z: \4 Q5 @+ F0 y# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog
, i; r2 ^# B1 ~# G; T- u - , v# i9 \8 C! a d% J+ M! U
- # 增强7 c2 x6 F1 n2 M5 K; G: r
- , w0 x5 s6 V1 y9 A# P+ ~1 x
- from PIL import Image, ImageEnhance
9 @/ B: p+ D9 h: l& L. U
; V& t* M; x% J- @- 代码实现
1 h8 w. k0 R3 D2 t - 0 s, _7 O\" }/ I1 L! l- g- A\" k
- from tkinter import filedialog
/ i/ {7 ~) |$ |9 ~6 s/ y$ C
4 \7 F! K, k' w$ {- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
9 O: y( U6 T7 G Y8 b3 J, A$ \) d
+ G3 P, n+ [7 G) a: N- file_path = filedialog.askopenfilename()# K5 ]+ w# m- x' l: W/ {
& O* A( T' ]# N- # 在这里添加代码,处理文件路径; @/ N# |% R9 ?2 ] k9 ~
) `2 B( b% E3 Y! | S- print("选择的文件路径:", file_path) w. c9 v* X( i) E4 v5 P1 ?3 ]- o
- 4 j1 u% R8 {+ t4 {, {
- return file_path
复制代码- 5 k+ H/ P; E# X' l
- # 打开原图像
2 a' u& G\" q, q# O1 `) c7 y
1 I5 z9 A8 y7 {8 r4 [+ K- # img = Image.open('image.png')# Q: |2 M; k; y5 I' R) o
- % ^\" U7 ~, h\" w
- filePath = open_file_dialog(): n% A4 }& V3 a
; s+ t- I9 w8 \6 U4 U- img = Image.open(filePath)
N7 \9 V: ^6 o* P& y
6 C. x8 ?# A7 k2 b: l) Q- # 设置增强因子1 N3 a9 q# X ?7 C
' R8 r\" w8 f& I7 K- factor = float(input('请输入增强系数(1.0~99.9):'))
& x9 _5 U: m, }\" @ I - + u6 e* E/ ~% d! }! w j
9 n/ l; l8 F4 C\" j\" G6 Q- - J' P3 s8 B A- A4 [
- enhancer = ImageEnhance.Sharpness(img)# P3 i4 K- s+ @. j
4 j( \2 e! m o& q7 S0 e. Y* n- 3 q- a8 O7 x5 H
- & J8 m- p! S7 S2 f6 r* a0 Q1 V8 Q
- # 增强图片
1 T% d* U+ r& }- w$ t7 _! H
2 f4 ~5 ]4 {* M2 o2 P- img_enhanced = enhancer.enhance(factor)
\" b6 W- s# ~5 o q f - 1 B8 @ | n2 K2 \3 p, |
0 o7 P8 y' ^. p% S4 r. s
$ | |, h1 z5 L2 @: S\" y3 @- # 保存增强后的图像, ?1 \+ O1 M. P\" C' L+ Y& R% R
- 6 V9 O5 L) B# @* M( s
- arr = filePath.split('/')
. K j- s9 k w+ P
& C0 x& y$ X+ z0 z5 m4 F- i=0
* h7 b6 a7 d\" z\" A N
5 r. I1 g% W1 k- r; ?- fileDir=''/ b4 a3 D2 H4 o% u7 ~
- # J' W7 B% ^( T+ P& \) l/ P. a# i
- len = len(arr), \* O\" |: e3 u# m I
- 5 t/ {- }( ^# w) p X% `
- while i < len-1:2 u- G# H5 W0 c% Z$ Q4 v9 \\" J
- 7 p6 j) k6 o; I0 s; N
- fileDir += arr[i]+'/'
4 `4 m7 m2 W }- F r3 { - 9 v/ Y$ Z1 P, i& W% b& y
- i += 10 I# z5 s3 M2 J
- 6 j1 @3 W0 Z( M1 @6 w# s
- ; @- M2 ?! O: w% z$ p- c
5 C3 X2 h4 C6 W7 c$ z* h; `1 J- h- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])! a! U, h- B4 @! j5 v- T
- ! [) }# N, u2 x+ O9 {
- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:4 A* r0 k5 f( R9 j
3 {+ [4 W6 ?2 S8 F0 C增强锐度- from PIL import Image, ImageEnhance
\" |0 P1 i2 D( A! U! n
7 M( H0 n1 P. W: M\" E7 [! i* g
, W c$ i* i4 V; n! `4 B0 m3 S0 p
5 x1 ~( k& _. C# q- # 打开图片
0 ^# ~; L) z& { - : `8 Z; Y4 t: j0 s, w7 q2 B0 p
- img = Image.open('image.png')) y- [7 l! `- L) Q4 \- q% U
- 4 ^\" T5 p8 `- s7 e; O
- 1 I4 N: u3 v0 H2 n6 F8 ]+ [\" Q
# H$ ?5 B, I$ D- T l) p- # 增强锐度
4 ?- o y4 B! D! j3 Z) A\" Y
\" e/ z( ~3 ~ L1 E4 W( x% G- sharpness = ImageEnhance.Sharpness(img)
- T1 Y. i9 `/ T2 |# R - - ~7 u( Q! J& b9 x8 h3 k% b4 K! n
- img = sharpness.enhance(1.5)- J1 [. n% J6 L\" y6 v
& n+ E$ n0 n% x2 R1 N- ' b9 [: Y: z- G3 n3 E\" p
3 }! w9 ?: C+ d7 l: M9 e- # 显示图片
2 a7 T: T\" Y# d: F
\" |5 \: \& k, k' Z0 Z$ H; N1 V- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance) [3 \0 u5 |6 D: M
- ! l# I {( \. m- D2 m4 @7 J
- 8 [6 o0 Y( X9 E; ]7 W# x* P* J) Z
9 b2 y' E2 n4 J5 s7 q. [- # 打开图片
( X9 U5 d+ a% l f, x' A1 o - 9 i3 J2 R7 b# B' O* I# @
- img = Image.open('image.png')% }& \+ w9 j; J' a4 S
- P C, p$ _8 k' Y& |. c
4 z. c\" t/ e' c7 L* t2 u- \" U7 l( u; Y6 L/ L* Z W4 \
- # 增强对比度
. }4 }+ k5 \* i& U$ A$ G5 j8 g - * T( o* ^+ ^$ U; K
- contrast = ImageEnhance.Contrast(img)% Z# v0 Q# a' u$ l; r* `4 j, T, i5 D
1 m* H! M+ [: e4 U- l- img = contrast.enhance(1.5)
0 u0 X- K9 \8 J. @5 Q4 U8 \
7 t# j6 S( U! d- & J1 k7 j- ~, d h& z% Y0 \5 ~7 i
5 \$ C, f* W% N7 o, X8 y- # 显示图片
6 _; m5 c8 R1 F. o9 [
+ `( r; S9 x+ ?- img.show()
复制代码 1 O( B( z. m6 ?, O. X) U4 J m
|
zan
|