- 在线时间
- 479 小时
- 最后登录
- 2026-4-13
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7789 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2922
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1171
- 主题
- 1186
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件\" N; N0 C9 Q1 o9 \3 y. ^1 o8 _
S. r- A% |/ A3 [: j\" E3 f+ x4 x1 ?- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
7 U9 w1 Y% W/ N6 Y8 t4 Y
% @7 o; D, I# p5 m; ^+ d- # 增强图片3 V; p. A! N( `, R6 u1 Z
1 _5 c\" c) C: p2 A1 `- K- img_enhanced = enhancer.enhance(增强系数float)8 { U* |4 v1 B5 A
- - R# h+ ^) u8 k
- # 输出目标文件6 L$ T# G; Z7 _) @7 T3 v s
- 6 q4 n% ~# { L% S. s0 {
- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致% w4 y/ z* x8 _. f; P! i
. L9 N! |; T4 f. x0 k
所需依赖
, z% I y+ t- p7 x/ e# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog( \% d h8 }6 U) V) E\" \9 \
# s4 G8 f s' ?) z4 m; K+ @- # 增强% \7 O: r& P3 j6 f% {$ i
- & n\" m6 G, ?6 W* H' a/ ?5 V
- from PIL import Image, ImageEnhance0 F8 ?( I! R( f! F4 h
- 2 B: Q; J* R/ g) _, {2 @
- 代码实现
% S0 J. v5 n0 ?\" p6 S( g0 \) c( N - 2 Q; x: d, u. W$ y# F
- from tkinter import filedialog5 Y- K& v3 {8 N3 l/ c
- * P- [: s* u7 k+ Q
- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
: c5 e1 ?/ r: e; [
- @$ v: W! ^1 z\" R2 I- file_path = filedialog.askopenfilename()5 X! }5 k( [& o- D6 [9 v- O1 X
& k, x& S1 z4 R5 F- ?' n- # 在这里添加代码,处理文件路径
; ?$ I: g/ b1 K3 H' [# z
2 s' c8 M- T0 `7 O- print("选择的文件路径:", file_path)
7 {( J9 h2 r; G( w: U4 Q - ) w9 L o$ z! g+ D& i
- return file_path
复制代码- 6 Z' \: [7 x7 q6 F
- # 打开原图像
+ o8 {3 m- ?; \$ F5 i6 ~! W, E - 4 E/ M9 f4 o. C4 I# t$ B
- # img = Image.open('image.png')' ]8 b0 k v$ u+ x
- ' |7 Z) ~' d; g& a) P( N; S3 X
- filePath = open_file_dialog()* j' C0 a7 _8 N' c; d+ F
; z0 q+ x- \8 {& w9 i- img = Image.open(filePath)
2 a! H& v* I( E7 e, x: f - 2 t* }; b* i( c$ c2 a
- # 设置增强因子6 q* ^+ F; u) F) O% ?
- $ w+ x8 S- W/ C3 U2 _
- factor = float(input('请输入增强系数(1.0~99.9):'))
! B9 j2 [. e% m - & N( W4 v/ \\" [$ e\" G* I9 D
: s% c! P, e+ ?: B- @3 J- X+ }7 [* e# T% p4 H
- enhancer = ImageEnhance.Sharpness(img)+ F7 L& X0 I4 q9 p' P. _3 W\" `9 s; s
3 N\" Q* Y1 ~; J8 ]! i
8 K8 r' z) P, L\" `- k& _% D- + U\" i: ?/ P& L7 m8 h. H& G0 C
- # 增强图片* r) ~0 \. G5 e3 P7 E! f6 S$ A
6 n& F8 @4 T# B; Y: S- img_enhanced = enhancer.enhance(factor), e5 q' m+ a& Y. }% J5 [
- ) w5 p7 H2 J7 }0 {/ L
. }1 X) b% z# @( L; [: ?7 F; k- 7 _3 P4 [; k& L6 v1 P
- # 保存增强后的图像
$ y3 j8 V$ f u2 I- m
' j$ J* Z. W: d& i; E5 ]- arr = filePath.split('/') y. b. J# n' U# ^5 i+ M
- ) p$ ]8 c' ?4 n' x3 R) F, n- m0 t
- i=0, P+ Z' A$ c8 ^2 B7 {5 `; }1 D
5 v7 @# ~5 U8 h+ T4 x- fileDir=''
0 b5 C H1 ]5 k% G4 E$ Q
3 [8 o( Z# c$ b7 j9 W6 O ^. W0 Q- len = len(arr)
3 j% m) T5 o3 P4 \& N1 h - ( k- B# ~# ? b9 k3 [9 w
- while i < len-1:2 c# q8 I/ }9 L# q: W5 p
- ( d6 M z6 S\" h! l6 o\" M- g* o6 O
- fileDir += arr[i]+'/'$ Z. h* h5 j1 E& v
: F, a) U6 P0 ]% f2 k\" Z- i += 12 _* [8 ^; m8 h) r8 p1 W
- * Q! ?. A+ T1 U9 K7 c+ ^\" g2 \( N
- w5 v. ~0 f\" Y) n' @
- 0 M s4 v% Z& L
- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])/ w9 m. I5 w& |% C+ ?# Q) |
6 H# \/ N: C. O8 @ F- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:! U/ O; G, [; c- x( ^7 e* ]* r
! p+ p0 ^/ K7 x9 _8 S+ U4 S
增强锐度- from PIL import Image, ImageEnhance
- M' B: X4 g0 j2 M& ?9 o; m* q
W: O, _) p8 u. Z: L% S- . n y9 l% P6 }5 v( I( k
8 p& J4 F$ X) s D9 N- # 打开图片8 @8 {/ w9 V, p* j+ Q. r( a1 I
- S+ }/ x, [4 l) i* }' y' G
- img = Image.open('image.png')
: n\" C$ m5 w% ]* h8 @) O
; \/ M- S, L4 h$ y8 U0 q( a- \" Y: J- z/ e$ O; ^
- 6 Z# ~ G. I/ J1 t
- # 增强锐度% g2 Q2 }$ _9 R# v\" ^0 U2 A
7 o$ ~& ]. I6 K3 r' C$ F- sharpness = ImageEnhance.Sharpness(img)$ B% g. Y. W, V* Q6 n
- & |) G# z; K& I
- img = sharpness.enhance(1.5)# [8 d: x3 C) v w M
0 p8 {* @; n5 N3 X, b- 8 k8 x2 H+ Z! u& ~: Z8 c
- 4 f7 z* e2 h9 ?& E) y! k0 b
- # 显示图片0 |; j0 B! l z
- 8 C) A7 O5 f1 p) l( a y! s
- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance
' j$ ]( R T4 Q# F' }8 k
2 M. ]* P& S Z! L( z1 B- ' Z0 b. m2 D6 r3 N5 f( Z
; {\" d' P\" o; N( x7 K/ e- # 打开图片' [8 G+ C4 {, p
0 ]# f+ e4 }' Z! u) a- img = Image.open('image.png')0 b2 ] d- c: c) U
5 ?/ F- y& h6 Y: A- 0 H6 S& O. G+ k w; N! d r8 p
- ( \# [) Z; X9 [. H$ ?/ o/ q\" d- R
- # 增强对比度 I- Q1 t/ [2 s; F# [
- 8 Z3 X; t1 a) H* w% h3 `
- contrast = ImageEnhance.Contrast(img)0 g9 J0 _1 h& p' ]2 q9 e8 |
- 7 Z6 ?* e' x! R
- img = contrast.enhance(1.5)\" Y' G$ P7 |6 {7 F( _
. N; i% l$ J7 u% W\" Y Q- + n! I7 g/ c7 f: h
- * `& E0 _' s\" Z: r4 J \, K
- # 显示图片8 Q3 _+ p( l2 x- s
- & {' S0 i, w% U0 C0 h1 B
- img.show()
复制代码
- u3 s: m- ]( C6 O! n' q" c6 W |
zan
|