- 在线时间
- 482 小时
- 最后登录
- 2026-9-11
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7951 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2977
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1183
- 主题
- 1198
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件% a; ~% }$ V& i1 w: n! w$ ?5 Y
5 u- {$ M; v& q( O- P1 c- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))7 _2 Q\" \( D( D
- # n' s3 D! ^0 m; k5 f3 I0 P: @
- # 增强图片7 ~3 s- P% x; Q4 p\" x# x* @/ q
- % I5 L5 M9 J/ ~6 y* z+ e
- img_enhanced = enhancer.enhance(增强系数float)# H+ b8 s; |& w+ z c\" H
- ' w, X6 R7 Z$ ?! p
- # 输出目标文件7 U) B* }& w; G\" Y: H2 C+ Q3 L
8 G Z( C' o- ^% v- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致7 G3 b6 ]3 j9 G$ q7 C+ g o4 |3 A
% O9 `7 u+ j% x$ j1 Q; q8 T所需依赖% x# d( q, B7 n8 |& L
# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog
+ h D9 y; U( B1 [2 @7 E) a - & d8 S, C4 S; l/ f
- # 增强8 w5 g. s! J\" s
. L0 x! E4 Q0 B# @- from PIL import Image, ImageEnhance
: q4 b) g; ~\" }/ p
- f. O2 u& c6 K- 代码实现/ x+ x/ u: B5 L% H8 [, t& |
- . ?4 h% s\" q; P1 O- c7 L\" k! c( U8 i
- from tkinter import filedialog
8 Z8 F# @) S* W# a
: p$ ?+ i$ y) @& }9 W- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
0 }+ o3 I4 ]$ \5 b4 I$ Y
8 `1 Q4 } t/ y/ }7 |; a5 ]- file_path = filedialog.askopenfilename()
3 f( f& u1 Q `) G\" p9 ` P- l
% g: ?: u9 j, `5 O8 J6 K- # 在这里添加代码,处理文件路径
]0 X, @0 P0 a ?& G. O
( n. T5 a3 n8 `& V- print("选择的文件路径:", file_path)
4 r7 m4 J9 N5 \4 t T8 R8 P
8 [2 P! V* W) }3 J; B$ M9 o. i3 G- return file_path
复制代码
7 E+ S1 c' m$ ]* U- # 打开原图像# _( F( F/ q+ @+ N1 Z% z l
- 0 D' n: w' ?. l: c$ y( F- t) V
- # img = Image.open('image.png')+ V0 S\" |2 D. _! A' }. u
- & ?+ k1 U. F% P) t- l- h
- filePath = open_file_dialog()
- s$ R% v% [7 q! S\" `2 k: e - 3 R% r( |9 d7 f& B s9 w1 F: B4 g
- img = Image.open(filePath): O/ I2 `3 g L( \/ e: j* O
- ( T, G4 V+ q& H1 B5 C& v9 P& U
- # 设置增强因子
# w\" K+ r4 X& B' y- \0 _7 s - 7 H\" `$ |: a' r: v\" t& \' l
- factor = float(input('请输入增强系数(1.0~99.9):'))
. l0 c7 r1 }4 h! K/ ~+ K+ C0 g
% H- Q\" ?0 N: a6 |7 j1 L- ) @1 L- T\" _- M! c# ~& r/ G
- * s* w, W4 X5 Q8 f8 C& C+ H
- enhancer = ImageEnhance.Sharpness(img)
0 O5 h( Q, i2 s7 `4 y8 G7 ? - / x7 }8 s$ n! e' x3 a8 @
- * U* }! \4 ^\" V4 Y8 [
- 5 u8 |$ e/ \: Z+ \
- # 增强图片+ ~( r\" c4 Y/ B, t
- # p9 o$ E7 L! j) X
- img_enhanced = enhancer.enhance(factor)! `3 P: C) ]8 G% f5 O! D
- 3 [. g4 M: u3 `- c: [
- u8 n6 N3 _; C$ j- ; o0 s# h; R7 D0 G4 J
- # 保存增强后的图像
' V: ^$ }( ]- L8 u - 6 G- [$ }8 ^1 S& ?2 D
- arr = filePath.split('/')
% q: j6 G$ y! t: i
% K& \# G( Q) h- g) b7 @7 n- i=0
/ Z5 L) V4 \. L% H# M& g. m
, |* `2 G% p; L0 {& n& F) L- fileDir=''
' r7 v/ \2 T9 C: h\" v4 ~7 J
! l* s( {) w, x. U) F+ j- len = len(arr)$ ~6 H8 ]& G8 E
, Q0 ~9 k8 V0 ^# A. o- while i < len-1:
6 M% M) `( e' p6 d: v, |* p - 9 w6 b5 m5 X- G
- fileDir += arr[i]+'/'
& s. e1 i v) `) H9 ] - 6 h* \7 m\" A. f- y$ ^! m2 Y! ^# z: B
- i += 14 e: b2 w% U' @- W! y) d
- , ~7 H7 m1 E- C
' @0 M; }4 B8 a- 6 j) N$ x/ a4 _- W6 A7 k1 e$ O
- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])# [3 C\" u p. I! H\" L
( f7 a2 B- Z X0 j- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:" D1 B2 E; {% F3 t( Y& F
/ Z( M/ {$ U' K7 H8 x/ s, L' f增强锐度- from PIL import Image, ImageEnhance! `( ~# u# u: \5 e8 ^& c- y
- / _; z% r- @8 _8 `* |9 B- ]# d
n6 k+ j0 C. l; ?$ T6 Q& u |- 8 d2 y/ ~\" i7 T& I7 i6 ]9 i4 c) C7 ^
- # 打开图片
+ L; K2 S. r- j+ A - ) V: J. U5 a# O$ K: z7 A
- img = Image.open('image.png')
a# z& g y) ^/ D0 p - ; j! r& c/ m' q# e
- 0 g, a# `1 p$ p9 f* w2 ]7 N. Z
! F$ p N. }& t7 K& c- # 增强锐度* w2 p: j2 U; @4 n% `/ Q- m! M
7 F# b% M9 n0 J4 [' e) L8 n0 O7 R- sharpness = ImageEnhance.Sharpness(img)
: R' d/ o: ?, {* l& m$ y - 3 g7 {( C8 a4 e' }, k7 ?: `
- img = sharpness.enhance(1.5)0 o6 Y0 X* I, N6 x
0 N4 y5 F; }- L# q# d, o- % Z% M/ v0 @2 O/ e+ V4 i
! X( J( N* A/ d) v5 a- # 显示图片
) n; y% B3 z+ K' O# v% g\" O - $ t6 Z' E7 O/ @
- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance0 u5 l4 W) u+ E1 Q
- 7 A\" N) S- y/ ^' H4 _2 g\" E0 J: n/ G
$ M. w% ^! U6 [6 \9 C+ ~& y
; X# o( z$ V' T- d) B) E! t- # 打开图片! \; Q/ q& h9 |$ S# m1 m
- + B/ h9 O0 y! u7 ~5 D
- img = Image.open('image.png')4 F0 _) C( E* }0 \1 G
- + X% g( I1 S9 f/ J! Z2 z0 Q
0 p5 k0 i$ N! _, a' j\" |- I
5 O8 L3 G. j$ y/ }0 ~* E9 ?- # 增强对比度% ]' ? N! K\" E8 q. _* X/ q6 a
' W, N0 D1 g6 r. g: s& }- contrast = ImageEnhance.Contrast(img)
, M* ]& c$ @1 X5 g! E - ( v, r% M' _) p3 ~! I. |7 J; `2 A
- img = contrast.enhance(1.5)( E8 Y* s2 A u1 N' G
- / t/ s+ ?2 d( a; `\" W
: `* ^/ M3 }7 H; ]$ c\" D
4 D1 p& P, ]+ M\" }) j# f4 u: I/ p- # 显示图片
' F; s1 s1 \+ z# d9 F/ m
- C9 N! L; V8 N% E# |) ~- img.show()
复制代码
+ Z# }9 r* ^2 ? |
zan
|