在线时间 479 小时 最后登录 2026-4-13 注册时间 2023-7-11 听众数 4 收听数 0 能力 0 分 体力 7789 点 威望 0 点 阅读权限 255 积分 2922 相册 0 日志 0 记录 0 帖子 1171 主题 1186 精华 0 分享 0 好友 1
该用户从未签到
核心代码# 原始文件
5 ]' h3 J( s+ `; z3 U, v 8 s7 ]4 R2 u1 p3 Y+ n: R' `
enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png')) r0 R7 `/ n9 @, r
1 l8 t9 n, B9 x1 Z2 g$ P- W, _ # 增强图片
\" Z' L0 ]) Z- L! ^! ]2 c {% R8 ` l9 u* N, F, Q2 v# h% p7 z
img_enhanced = enhancer.enhance(增强系数float)
, Y, t% o# u; ]6 q7 K 2 A/ F- ^: J7 y: w2 i. Z) W p
# 输出目标文件
% e; ?# s8 W( L& T9 f$ H
; g& ? I\" S f! i r. t img_enhanced.save('文件名.png') 复制代码 注意,输入输出文件格式必须一致
+ G) b- P) R" o$ y# s5 S + ~5 ^# i' v) S; x" N
所需依赖
, d1 r; X1 J, M+ `: p1 }* t, P9 P # 文件选择框,可以直接输相对路径不引入这个from tkinter import filedialog! A- B( k7 R9 p( b8 P. M9 h
/ ^* I& R( J9 s' e1 s5 l2 } # 增强
/ C& F Q$ `\" y/ q6 h
% K( K( F0 z c$ ?6 D3 i, n0 N from PIL import Image, ImageEnhance' Z4 q$ X3 } H x/ B
; l/ a* y. C\" H6 Z% i; x 代码实现/ b) W8 ?1 i3 k H0 v: s
7 y4 ?( Q- V5 E) l) I8 a from tkinter import filedialog. s& s( Q, n' K5 r2 F( |' F
3 L5 e: y# x; g | from PIL import Image, ImageEnhance 复制代码 def open_file_dialog():
\" }2 \9 y: F5 d! ?$ s 1 d3 Y, ^+ B1 P6 X2 d
file_path = filedialog.askopenfilename()
: L; I: H9 B0 A5 k7 T$ V2 L/ ]
( {& V2 P7 F$ Q# @6 x # 在这里添加代码,处理文件路径
4 [1 x% O* y( C5 U/ H0 D+ ~. J
$ g5 L4 U- {7 v5 `1 { print("选择的文件路径:", file_path)
+ t% A* l3 m4 M. j/ r
. Z5 p3 N* I% H0 k return file_path 复制代码 6 q$ k |: u$ F8 a# Y! u. N, A6 l/ N2 ?
# 打开原图像
8 i( g5 B8 z1 w. L3 v5 T& m% X6 J
: s8 z4 f' c& ^- h\" H- `8 Q* k # img = Image.open('image.png')5 A( o. N, r) |' V
+ e$ R& y ~% ~/ @. b9 B! j filePath = open_file_dialog()+ j& B5 n( J/ v: R\" R: K+ }
; V8 t3 U7 x; u* h; y. \5 a3 f) Q img = Image.open(filePath)
/ l {' I/ {1 d0 K% ? ' t0 i# p6 T: W9 ^- @3 P
# 设置增强因子2 H8 X+ Y; T0 w
& V1 s3 ], \\" e- M, h factor = float(input('请输入增强系数(1.0~99.9):'))
V3 N5 a+ U+ L2 v % g( }8 w N3 H/ h5 g* c& m
9 Q) r* B% o2 u/ X5 Q\" ]
: s$ D, j$ n# }' p; b: P4 F0 \$ { enhancer = ImageEnhance.Sharpness(img)
\" Y- {+ z d7 [! j : I) a9 n+ W\" U- J q& k% C: g& o
0 @/ D\" ` K4 c) Q4 M6 W4 V) l; H6 `
8 U5 m6 _* X. t) L% O! c) J4 o* j # 增强图片# r& E\" i\" E* y2 g* Z: y
8 j4 w- L% i: P+ E5 h img_enhanced = enhancer.enhance(factor)
$ ^& \) o O4 j6 @1 s. o \" p6 S6 R1 a9 K6 v+ G8 A& j
. L' o1 i$ U/ _. Y
0 W% g- @# T3 w& s3 N m # 保存增强后的图像
! I1 B/ o% ~+ h. G+ V. R , L; V\" Y$ L( y* |& |
arr = filePath.split('/')
3 @( t# j0 |* G8 `' w8 A% W , h+ u9 V) {' _\" p! H$ e. |
i=0
2 \ c% {; f) Z# |: U
. d8 K7 C9 }3 e fileDir=''! R& z$ p; b2 F( ^
4 _: M5 ~1 Q\" b len = len(arr)
' x* r) X& M3 K9 E\" }$ w! [ 9 n' r8 v2 R! o1 e/ G
while i < len-1:' s0 s7 o! t4 m! a5 A2 l- c# x `
( f\" O, P. `/ l2 d/ x
fileDir += arr[i]+'/'
, w+ b) S) F% D) S# f; v0 u/ v! B ' v( ~3 c i* Y8 l, o
i += 1% g; Z2 j% P, _9 R
$ C3 h* q2 t2 m' q- |
0 J- C3 x' @; H' }6 ^8 y; e( }
2 t& W) I0 v O: ^ _. \# H, `8 X img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])
/ p6 e; Z( E# z
# i* K& l% w# ^7 F& k& K9 p print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1]) 复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:! V |2 F2 S2 y
$ V, n$ p7 f0 e, W" `( ]: H 增强锐度from PIL import Image, ImageEnhance
3 O0 M P/ ?1 |0 k& C / ?: T8 u4 p6 G2 ^/ ?, |. u: _
* G: V g: O! V4 i2 y6 _ Y2 F/ h0 \1 A3 X& q, w3 c/ g
# 打开图片7 u4 X6 e7 o! R9 m- J
. F# A# @3 k& n7 f. R0 H& N, D9 Q
img = Image.open('image.png')
6 \, M) J' B: i9 r) o, V+ S# @ : P, ]* b8 }: r. L, D' w
+ V0 q- b; W$ P
7 B$ B2 ?7 s8 u8 ~* Q0 _2 R
# 增强锐度) M! e5 _# l! o# i& Y6 w1 l
: f q: b3 _( I0 O+ |4 _' |
sharpness = ImageEnhance.Sharpness(img)
6 n$ ^8 m% r7 E( T5 M 9 M( ~! ?1 m0 I
img = sharpness.enhance(1.5)9 U4 G9 s6 d0 T7 |
( G, B; x& I5 T7 E
; ^& H b9 n: t* s( t$ P0 X& A
6 e\" L' P- t m1 }: _+ B& [
# 显示图片, w) @ N/ d! `
% E1 e S! c8 U- i9 v( }
img.show() 复制代码 增强对比度from PIL import Image, ImageEnhance
9 m* U* d. h% P* v6 s6 ?
; a `\" d$ t* q# D9 Q+ a+ G) x. F 4 X! Y! C' a, B2 ~+ {
$ A2 {/ N/ M) u- U( `% W
# 打开图片- }4 G7 T9 A4 N) ^9 C+ y) m
8 T% K: `0 \6 Z( P' a img = Image.open('image.png')8 O4 s; u; Y\" G$ j4 b/ C% `4 \6 p
2 k9 N0 p& r9 w/ Z
5 w0 o$ B+ ^4 e& Q) ]; p C: R- n
- C9 H6 ]+ ~( e- ^- z2 n
# 增强对比度
_' W5 _/ b6 M$ E' X8 _. g ! l8 \; h8 x4 t0 N
contrast = ImageEnhance.Contrast(img)
s- N# {1 O: X. _ 8 } ^. I, s/ S3 K\" ?
img = contrast.enhance(1.5)
$ l: E9 Q4 I1 b6 x* p; k: q% ~! y
; }2 ?- i% J, b9 Q+ i: L2 x# W2 s3 G 6 b+ g* |. @$ q
# f) B+ Q( F. g3 r # 显示图片
: b0 D- f. R: t + o8 _2 q0 Q4 u4 N2 D, D7 n
img.show() 复制代码
3 _2 G# F: x# f! o
zan