- 在线时间
- 481 小时
- 最后登录
- 2026-8-25
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7859 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2946
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1177
- 主题
- 1192
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件
$ i& y# c6 L3 x& Q n* [1 k - - R- T0 s- ?+ I3 M$ D; P! m\" @
- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
: W! ~7 k4 W3 }, N; U& j
5 ]9 V+ C6 Z( C$ Q, k* G; f- w- # 增强图片
5 c- S+ u1 ?1 P! U: E
7 E/ r# p4 d; x: L8 P- img_enhanced = enhancer.enhance(增强系数float)
! d, U/ @6 J6 k0 g6 w3 z) T [7 h& d/ _ - I% }2 ^) V* Y: N8 I: z
- # 输出目标文件
1 u' r6 s7 M% A; h\" x0 {' [ - Q1 Z* k2 i- f; v- d& h5 Q) _
- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致2 \9 R$ s' U5 K# s7 F }) V! Q' h% r
" ^! R8 U! a' |! ^3 }所需依赖
. J6 S5 }6 Y" x2 }* C7 Z4 |$ M# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog
' ^- f8 V- R6 j0 _/ Y& ~
$ i9 X2 w# B6 {# q5 D! Y& Q\" Z\" {- # 增强+ a, L% Y. i' G
5 O1 i7 K\" m. w- from PIL import Image, ImageEnhance
9 n, V$ _8 H1 [- T! F+ K
3 |! E7 W, e. F* F! }# [2 o& d- 代码实现
; j3 d! O6 K1 s0 w$ U\" }. K\" S0 k - 9 M9 s, I5 q3 s0 F
- from tkinter import filedialog8 W2 L3 t3 D9 W& h: l6 m U7 T
+ {. Z! \ t) g! r- A+ M! E4 ^4 {- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
& t1 m: ]! r\" { - 2 b6 z$ O' v' r& l
- file_path = filedialog.askopenfilename(), }& J! w2 i% @$ P: n3 q# j
- % O. w3 N7 Q3 I2 g6 Q4 _3 H6 j6 B
- # 在这里添加代码,处理文件路径2 G( V- b+ R\" u& ~' i\" J
- 4 N7 x0 m! q! W3 Z, ~7 w5 N
- print("选择的文件路径:", file_path)
0 S$ d J K: i# Z' `6 m5 `7 X) p
' w$ l: [; s4 n! ]2 u- return file_path
复制代码- ! r1 `- r: V! X+ P1 |& E
- # 打开原图像6 x& A4 u/ }' ]
: |, M. U& M2 |9 h% {- # img = Image.open('image.png')8 N! V, L- M* y% n
- p/ v( ]\" L, k/ r' i: j4 Q, e- filePath = open_file_dialog()
5 J+ d8 R+ Q' X, a
) X' `6 P t& G' k6 f- m- img = Image.open(filePath), f4 z1 b% u0 }
- ' h7 C5 h' I$ n1 T
- # 设置增强因子 X, c6 m! u! z5 y4 X$ v
8 e: |, m4 z6 {( S2 B- factor = float(input('请输入增强系数(1.0~99.9):'))
& u* w# _8 L8 a\" j# B# l - 6 Z* i# _1 k E4 Y0 A: a, Q/ [3 I
2 G9 W' ~/ t, X V% o
7 x. R3 n0 R. k) P- enhancer = ImageEnhance.Sharpness(img)$ E l\" |6 V2 a6 X% J8 t4 ^) ^
5 d) W8 m0 Z$ E\" r
2 i2 l: V( a4 D$ d
* f\" Q& m E3 `0 P7 h# _- # 增强图片
3 r% x) y* o% H3 t$ d- `
/ Z9 V1 ~( i3 {+ @5 ]- img_enhanced = enhancer.enhance(factor)6 L0 M e/ |/ k6 q
4 K! W% x0 ]\" P0 }
/ c5 ?7 g) ]& S& p0 \& l1 j+ ^0 Y- + J4 w- R4 a( A
- # 保存增强后的图像\" D8 J# O4 K% j4 |# k
- % `1 |6 Y) k' O J: k0 N$ L, @. q
- arr = filePath.split('/')& `0 ^/ c- v( ^( _
- $ X) S0 E' G D7 k
- i=0
# Y% J0 s8 Y2 T! I' { - ) s G; k2 q9 z( B& w4 F9 X
- fileDir=''
6 d* l% J! ~! X2 h( ?' ^, Z - & A* h0 E. X5 ~. ?4 i/ e* {2 `
- len = len(arr)8 b7 \5 Q- p, h5 I% E ]- F/ C- `
- 9 M$ f7 \, @& s6 P. ~' o, e( o
- while i < len-1:# B; G# A6 t8 ~2 y
- ) h r1 _\" j+ B# w. l
- fileDir += arr[i]+'/'
8 M+ ^: C- {$ {! g
4 I5 A+ M* A* ?# C# n, f- i += 1
# t/ } f1 e/ \4 @( U
: y& ~+ j1 {1 T0 v% s8 u/ A4 r: e- n3 R! ]6 ~( X6 d
- \" @& I4 O: G0 W& F- m1 C
- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])# C4 s6 s, }9 L% R9 o# g7 |; r) v; O
+ f2 J- {4 y& U\" }- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:/ G3 z* u4 e- `# Y, K) W
2 E w' `8 x. v; G6 Q
增强锐度- from PIL import Image, ImageEnhance
\" x2 r4 z: R+ h; k Y4 j
3 s5 E\" ]0 p; z5 D3 B, ?! K! } J7 ^1 Q
) A- @4 j+ `* s# |3 D3 C& R- 5 l4 [ F; d( P9 r7 W
- # 打开图片
3 {- S; l* A. V\" I9 Q - # B) X7 Z+ N, t
- img = Image.open('image.png')\" B, M* }. L4 S/ }2 I
- 5 G+ N2 f3 R/ r5 M I
9 O+ {% i5 e6 w& p8 @- 0 E$ d3 m0 Q8 ~8 T' w1 ]! k- x# h
- # 增强锐度1 {5 K1 n- c# j; D5 c1 \* N# ~% z
\" y9 h/ Q% [9 @7 R& G+ G4 z- sharpness = ImageEnhance.Sharpness(img)
8 H& _. }9 S1 {5 Y2 ]5 N - ! m# l# n7 G\" s3 Y. {
- img = sharpness.enhance(1.5)! I, W2 a% u* _' u% T+ v
- 8 B `, n& |, U' _+ O; S. V! k
- \" I& u4 Z+ \; H+ u* w3 k# B# K
5 w; s/ t. ]$ @\" c2 E# l- # 显示图片
9 `1 s3 z1 {: X+ P1 O/ K& Y - 1 S* L# J\" [% i& G: y+ G
- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance6 M @; P2 Q. u
- 6 i9 H$ [3 I2 x# c
8 p# Y3 x0 `( u5 ~\" K! N4 v- 4 h8 l/ f8 U9 a/ l
- # 打开图片. @6 D) ^, {7 x1 d9 ?' R: S
* ~; s2 c, K$ ]1 F3 R3 Y9 O3 Q- img = Image.open('image.png')
7 B+ d& B j6 V+ m- J - 8 s* `, u& c6 N
# H; y$ L1 ?, N2 b4 \) ^- 1 D4 E7 U6 K\" z+ m; y6 m
- # 增强对比度: R! `* o# W) | I
- 9 d' N6 l8 B1 b U1 z7 P
- contrast = ImageEnhance.Contrast(img)+ l\" [6 J0 ?1 s* D K
- - O) c; m& H5 L3 X+ r
- img = contrast.enhance(1.5)4 k( D5 C: `7 \
- 1 Y1 x! f2 n- `( r) @
$ G+ ` D0 x8 m. [4 a* z- h* L/ r3 y' ~# k
- # 显示图片1 e- g8 B% h8 X8 `/ u
- 8 v. a4 L: {( q
- img.show()
复制代码
?* b& L3 ]* ]# `4 u( T |
zan
|