- 在线时间
- 479 小时
- 最后登录
- 2026-4-13
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7789 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2922
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1171
- 主题
- 1186
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件( [) ]$ K& a3 [4 _3 q h& r
4 I) c0 [+ q- ^\" p2 ~4 R- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
4 Q. r# f) M2 E7 Y, K/ T& |# J6 N - $ U0 o( w, X9 ?7 p- X$ k j- j, b
- # 增强图片
9 {/ Q% B. Y$ Y) p\" [\" M
$ S/ E0 i4 ~2 j/ s- n* z- img_enhanced = enhancer.enhance(增强系数float)
\" t8 g# ~4 M\" Y+ Q
4 y0 o) U4 }7 H; J\" I- C- # 输出目标文件
2 m5 l2 }: F: p$ a# c5 v. Y2 _0 D6 p - , b* i. O' B3 q! f1 w
- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致
2 N% `& B8 I2 w! T: L
; m3 s; r) R4 ?! b$ b1 r5 g$ \6 R所需依赖$ u7 Z$ R8 B3 `5 X/ q$ S& B0 |
# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog4 j8 V* ~, _# W$ c
- # _5 `1 V9 j' z- Z6 t) l8 X- N! V
- # 增强9 H5 T3 w. g7 g/ Z* P: C
' K8 t+ s) t; M; g$ L- from PIL import Image, ImageEnhance3 |1 M% @' J8 S9 n) b3 v
- 5 S! C3 p+ r0 e1 q3 f5 z: H* j
- 代码实现* v% g! n: V$ }3 b! m% V1 V
- 0 }. o, g, l2 Q8 ?- o8 R
- from tkinter import filedialog
1 Z$ e3 G- h; R( f! C( x- c
4 Y D, B* w; d) @, \% t1 k3 E) i- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
# c, z\" y* d& M I2 V8 L' I
V3 x* {5 d* w( ~8 h( O; T# V- file_path = filedialog.askopenfilename()% x4 r$ Z- a& L
$ e5 t, O- k- u! r- # 在这里添加代码,处理文件路径- }6 M3 W4 H' ]) F% d
- \" X, ^' x W+ s
- print("选择的文件路径:", file_path)4 W$ X3 _& y X! `% O, F
- , e8 O6 y5 o( `4 Z
- return file_path
复制代码
& w6 ~0 y5 T; ~8 c* u* b- # 打开原图像- V2 d4 n\" ]( X5 H' P! k
- 7 J$ a& ? |* q7 U8 p
- # img = Image.open('image.png')
+ p/ ?' l) @7 P% h6 d) B5 V, `8 V
6 ] {+ T; E s: A9 a% }8 ?: _/ M- filePath = open_file_dialog()
\" q! [) p3 a( P) F K - 2 `2 s4 J. W2 Q% U. r
- img = Image.open(filePath)+ C, m. L9 _' }+ t# i5 g
- - ^/ \, Y9 Y6 l$ O- o
- # 设置增强因子
4 |2 O& E! H4 s$ E. E
5 h7 q& N0 F$ G: `- factor = float(input('请输入增强系数(1.0~99.9):'))
3 Y6 Z' ]/ W5 ?* O' L9 H
( ^! Y5 L, P z8 }9 ~\" j& n% |5 c
9 N9 `. p* ?+ |- ( K, L5 y/ n. N! H8 S' o
- enhancer = ImageEnhance.Sharpness(img): H# B- [/ v, W6 O( _! }0 N
- : _/ k8 L' p) i\" L% c5 F3 t
1 n0 T4 ?, Y! S4 j& V& |- 0 @. M$ R; R& h
- # 增强图片
$ \6 t2 H; L4 M5 h; Z3 z - 1 U: n2 L. B/ H. D$ P+ ?. V7 v. } u
- img_enhanced = enhancer.enhance(factor)9 `* s: ~* t, `0 \
- $ r. L( q, i( m; R8 A6 v) h
- * { U9 M& m! V* c
- . o2 |: r% x% G. A& R
- # 保存增强后的图像9 r/ z3 T. ?! b6 h: ]
- ! W+ @$ C' C g8 Y+ K
- arr = filePath.split('/')- o* Y- _* s% r0 t0 j\" y% N
8 c: e\" k7 P! G4 J- i=02 S( m\" Z; |9 W5 ?
- Q* B+ h4 W' w% l. D5 y- fileDir=''* l3 F6 d: A, g/ i7 {2 S M% o
2 h6 L2 L3 X. i' Z\" z) {- len = len(arr)
' j3 u, e- W' b; z7 ^- X0 f$ b
* m8 j4 i3 N' p% W6 J8 L0 r- while i < len-1:
( ~9 @; Z) R, b+ c$ H1 b8 x+ Y* d: S
8 Y5 d6 N, T1 c6 I- fileDir += arr[i]+'/'
& A. [( b0 j\" S3 ?0 [+ Q
% S t5 m9 }5 ?5 e3 W/ F+ L4 s- i += 1% t: ~+ a9 e1 e; k; X
- # \1 ?* q4 v/ q' h/ y. x0 y& O
: @% L- O7 r( g, J: ~- Q, |- 2 F8 F/ Y6 k- O$ r8 \( t7 y; F6 g }
- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])
6 Z3 p. ]7 N l& J9 [% _1 j
* B6 K- ~0 L, d8 v- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:' {& h8 Y9 s% I
# G4 {+ X" Q, P( F, A. g6 A( H' V
增强锐度- from PIL import Image, ImageEnhance! F1 Q C9 S- Y% O' r) [# P/ T
7 F4 Q' `+ X$ b
3 I; B4 i# [& ], A: M
0 Z8 n9 {; x+ y. r2 n1 ?- # 打开图片
# O Q4 Y0 k: C$ z\" N8 C - 2 B; ~' J8 P9 X; {' D\" L& o0 H\" [
- img = Image.open('image.png')0 W9 U5 i& f( U( i! w, \6 P
' }0 X5 x7 x! D5 E# M5 E
8 N* o1 u6 ?( Z0 ^- ' u( u# k1 b4 K: |/ d. a7 i+ L
- # 增强锐度
, `, P; b: [2 m - ( K3 a' y. o5 U! L, P4 C1 e
- sharpness = ImageEnhance.Sharpness(img)+ _) `! M0 L& }4 |- }\" e# S
) T% s2 H1 G+ H) s5 j6 Y2 t- img = sharpness.enhance(1.5)
3 p, D1 A4 ]) [+ U \, x7 j. [
: ]9 |; v0 i* E; i1 D- s- / A$ ~3 u/ G) a, i
% N) M9 W& N6 l6 X4 q( @& I3 ]% \- # 显示图片9 i0 r' O9 i& V* p8 }( r( i' L6 ]
( Q6 v1 B1 f\" {( o- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance$ n- ?& L, O# n! s8 z
/ L) a\" p& R8 F6 x# W- 6 F5 B2 ^\" \5 p3 ~1 O
- . x: C) o$ e* Q% e$ G
- # 打开图片
5 H6 ?$ t. _$ h' y - 8 k F! u8 V+ c0 g! i
- img = Image.open('image.png')
% a/ @ B- s; G* P - 5 ?3 j, f8 i' Q\" J% q
- 0 u8 t6 a; b9 K7 h8 k
- 3 @! A1 q6 j% V5 }\" @
- # 增强对比度
. }' }2 `5 W% `2 a
' Y3 H/ Q0 C. l! U) w+ s- contrast = ImageEnhance.Contrast(img); c' [& `! C8 B, m7 W- G
- . B. o# n+ A# `1 f* {3 S
- img = contrast.enhance(1.5)
- ]* P2 |5 X# R' l
J\" t* y( b. [2 K/ Y- . R$ U2 p2 _9 d; V$ T, S; K
, ~4 H5 }( G; ?( j\" g- # 显示图片+ U: ~6 j5 K+ q9 I. w$ z\" s
3 Q\" V! j1 A) ~- img.show()
复制代码
3 R4 q- B* ~ Z6 a4 ]( r1 |6 V& k |
zan
|