- 在线时间
- 479 小时
- 最后登录
- 2026-5-9
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7813 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2931
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1173
- 主题
- 1188
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件; |0 j+ |* w+ ~; n1 T
+ j8 S3 k% [8 f1 b7 `! S- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))9 S9 ?/ C7 ]\" t( R
- ! V* N+ ?) ~9 @$ m
- # 增强图片! b* G7 i) {8 v\" H; W; v' h9 z
- 9 m) Y9 Y1 E; w+ o5 I
- img_enhanced = enhancer.enhance(增强系数float)
/ |\" V2 }% z# o\" i' x) E\" a F - 1 s\" L* @2 R y/ `1 \$ `
- # 输出目标文件
8 [5 H5 b7 P- f\" a* l2 j& Y7 w
9 K* U0 j+ Z9 {0 M0 E7 J% |- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致
0 ^" l" l" O% ~" J7 r4 J' r% v+ Z. h9 X8 Y
所需依赖 [, x9 V! X4 S/ U! \" D+ z
# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog+ M* j. q* [3 ~& E. ^# R
- \" `0 w; J/ _, J6 g
- # 增强
) q1 f' M( V7 b( F3 n/ ^( k- d
8 I& f. C% b- j$ F. y; e- from PIL import Image, ImageEnhance
0 S$ F4 `\" s- g# a) J b @
( F7 B4 B& b3 N9 ~, b- 代码实现
4 a# L: a' U: I, X - 0 l- ~5 S/ \\" I5 k6 S( P! r: f
- from tkinter import filedialog
8 k6 r* B: N- a S! Q: _5 v4 q
4 ^9 {+ E) T' E- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
$ Q. h9 ]% `6 B$ { - Y: J2 ~0 m! L: t0 v/ p& B* V
- file_path = filedialog.askopenfilename()2 F+ h+ b, B' M' R$ f9 E% v8 _
& t# x# o' a\" ?5 ]8 _+ C$ }- # 在这里添加代码,处理文件路径
8 k* J7 O% k1 U& ]) {' B
\" T4 d, |( S T- print("选择的文件路径:", file_path)
$ [4 L. ]8 L4 h) A7 d* J
% b2 n5 C7 k) I5 b& y- return file_path
复制代码- Z ]; e) P! P$ l; X5 N( V0 R$ a+ q\" T
- # 打开原图像
; |, J9 F9 e9 O5 Q! i - # Q; g6 Z- g% I2 _6 z2 h
- # img = Image.open('image.png')
- `* d P% m5 Y' \ ~
8 x+ j1 Y$ ~6 J6 g6 _# ~% F5 [- filePath = open_file_dialog()
% ?& T; R- c; w4 ~$ r - 1 S9 s' I! |) s( D7 q( \
- img = Image.open(filePath)3 ^$ {! y6 z& \$ z+ Q9 Y* n1 z
- % L: S5 I D; Y: X\" W b( [ h
- # 设置增强因子$ X! W, c0 o v N
- S* t$ G\" B3 U, b4 h9 \6 E) M1 `. s
- factor = float(input('请输入增强系数(1.0~99.9):'))$ E1 Q\" u\" _, ~/ V! d; K% c
- : d: e2 I# a, l; Z+ t* T7 v$ o
- ! O/ m8 R: }7 f T( R- [
- 6 P @2 W9 |. T1 G( ]( {
- enhancer = ImageEnhance.Sharpness(img)/ ]4 T9 W2 x1 |; `% S/ E) f2 S% V+ e5 w
- ) z( p3 l0 C( S# J
) y& j6 L+ l3 L- ( f0 v- H/ R9 z/ k2 p+ ~) U0 ]
- # 增强图片# o/ P' g5 Y0 @4 C\" b; ]+ D L
3 N' d2 g1 q; ]7 W. _- img_enhanced = enhancer.enhance(factor)
L* P( O& a) k+ v( D: J3 y
: g6 ], M' X% e) p3 ~0 a- ; e\" w4 X* ]! ]5 @0 `7 B! |! }
- % b( c4 a: B4 b0 O1 v& q
- # 保存增强后的图像; y& N W7 Q% C2 B! X; F
! l/ S5 e5 i6 \- arr = filePath.split('/')
& c8 f# y: n8 L% _ - & [% m8 A9 l, L/ h. f1 s& o2 ~
- i=09 O9 @% }1 s, L K\" Q1 s
- ! U# p+ Z2 m! R; S. Q. b k\" e/ _
- fileDir=''
4 D\" f- M6 f0 r c% M0 A
+ X+ {5 r) ~2 v. N1 l8 M$ ~1 E: C- len = len(arr)& ~( B+ p5 B- M& h7 d; Y: b; {
2 l$ v9 ] J+ ~; U- v- while i < len-1:
+ c4 g/ L0 L7 Z% e, L
* g6 l\" U1 s/ H7 \1 p; z) ?- fileDir += arr[i]+'/'! ?. x/ d5 U9 i: O( `) T9 x
- : n\" O O4 l2 ]1 k7 R% I
- i += 1
9 ]6 I/ E9 k( x5 [9 x' g) l - 9 N% p+ H2 W5 K! X8 K
! h; d/ b* w& f* u3 u\" q$ H- - g$ J) |: s! t) f
- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])5 \. C$ f. \( [0 b* }
4 k4 d( f7 s! i- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:
) h$ V% ?. w" [ `8 k( l: j
e. K7 L3 t0 R9 K' r h7 @增强锐度- from PIL import Image, ImageEnhance
& r. d0 k8 m. Y0 ~0 d+ K - ' D7 Q& ]2 D* D
- ; M3 m3 g0 F# t# y/ Q
% J! v% E5 V8 u- # 打开图片
. m) h9 I4 \* B7 B9 f! I% ^ - / n# f( |# W4 m. W( f1 E9 I
- img = Image.open('image.png')5 g4 H4 ?+ f# Z. h
. U8 f9 B( f* y! `: p' C, v! L
& W: B1 H; \; e; C$ c* G( b5 f) y
1 o) @, ~. B( Y/ Z+ r( @- # 增强锐度) r: H0 y# q+ p\" e# k: Z. N
- : p( N7 H& [( J7 n3 B5 Z+ r
- sharpness = ImageEnhance.Sharpness(img)
# P1 t2 R5 z\" ~/ T4 F9 }
/ Q. I# z& R0 B3 x; o- img = sharpness.enhance(1.5)
6 \1 Z8 p' n3 L+ Q8 G P' A - / T8 J. ]/ f5 q3 e' x* m: c. h4 j
- , D9 y/ ?! A) { V$ [! ^
) c0 D% n. R. t\" I2 N) N- # 显示图片
, F$ k) V, W: D6 _- u: P: E* r' S - : V5 {$ g+ E2 n\" d* R
- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance
: |& r3 ]\" E% N2 n6 O3 l
, B\" Z f6 j) f\" y\" [: ^- y- # |5 B2 p5 | e. r\" U
I: L9 m( V9 }\" ^. m% W# o- # 打开图片: @2 S, L' ?2 H- j
0 S3 d$ w' L: P- img = Image.open('image.png')
* _; t5 X0 J' V) p' V$ I
7 w& m4 \8 y8 S5 J* z- Y- N$ w8 F- \" G: j3 p0 l6 F$ P, V5 c: d
# Z4 D, i7 X5 T7 o0 k+ n- Q- x- # 增强对比度
6 V5 y- h: H) G% n# W$ @0 F- I
5 e' s) A! h1 Q2 }% ]- a\" K3 O5 v- contrast = ImageEnhance.Contrast(img)% C9 x ^/ X: o2 s( P, S6 z
- 4 @# K+ [8 g5 y\" E/ d' I, Y
- img = contrast.enhance(1.5)
& s8 b# Q& `* B# E
+ k$ z) O; o, _5 \- \" Y! p3 p/ d F4 b# l+ [
- / i6 p8 N6 m8 Q4 H* M$ n
- # 显示图片* o0 ^# f2 u% X, h
- 3 Z4 a0 D# G; w7 J1 x
- img.show()
复制代码
3 m6 W1 q4 L1 p& H |
zan
|