- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件
$ I6 n- r; N1 K' b* j, }0 {6 h$ u
8 k! T, c; s' Y9 v6 n* R, e- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))) r# r$ i9 f; z/ K
) U! j& Z& \5 }1 m& G$ u- J- # 增强图片& h9 H$ {* O, h7 i7 X: n
- 7 ?) t& \; J+ b& b2 o3 |
- img_enhanced = enhancer.enhance(增强系数float)' K [4 x5 T; j- Q+ A3 e( e
- : O: k( Q$ _0 Z8 j. b v
- # 输出目标文件
& I- {) d6 ]6 A r! C9 h
: w1 [' \5 h/ w* i- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致$ e0 I# B. B! s$ X0 i0 d
6 P9 o+ F! H, F* w
所需依赖
* _. b! Q! c J# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog7 C, z6 a& c& K& r
- 4 {7 V# [$ c0 x; A( z ?
- # 增强
2 @! c1 n: B! K8 W
4 X\" |. N/ ?0 ^- from PIL import Image, ImageEnhance
0 a. c1 x: Z) k2 B. S - # \$ z9 ^ l8 U3 d- k- {; ?
- 代码实现
& y$ v; X2 B3 t& @; w& l; ~* G* W# N - 7 p- E4 v% C1 e; I. r# H5 L
- from tkinter import filedialog
- E% |. R; Q9 @0 O. ^- G1 ?
0 R+ a5 q\" i$ F7 c) ]2 Q- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
3 Z' n; ^: Q0 w
\" X* f4 N/ d. t; r, n) Q- file_path = filedialog.askopenfilename()! }0 M' i1 D8 `, ~$ T3 V$ i
/ f7 @' E r! k; q0 g$ {8 z- # 在这里添加代码,处理文件路径
! f, ~) p$ ?3 f1 t9 d
K7 k6 `1 |6 B7 ]) W/ G2 Y. h- print("选择的文件路径:", file_path)
1 {9 W3 i5 Y; f3 P( T0 `2 X - \" O4 @% J\" }6 V/ R3 e* [, H
- return file_path
复制代码- 2 d/ O- C9 n( e/ x
- # 打开原图像: w0 D, C: C' ^- {9 y4 r3 f' c
4 V\" i6 i/ X6 K4 C$ l- # img = Image.open('image.png')
7 z# s6 T$ r/ k: i+ F1 | - - m( Q8 T) q' Z& i K
- filePath = open_file_dialog()% B( [, n4 J# X& {+ e, p1 h
- 9 a; H4 H/ l F% Z
- img = Image.open(filePath)! t0 T7 Z& o1 @( R0 n/ H) L/ B8 Y
- . `( u0 G r' L. D9 H' k
- # 设置增强因子$ A7 V: G; \2 f/ L- p5 H
- ) p8 g& j9 ~4 Z* J
- factor = float(input('请输入增强系数(1.0~99.9):'))
- }/ j' F) U$ V0 K - 7 J/ ]; A4 V) c
- 9 | _4 Q( T2 e; r
# ] Q/ F\" |\" T2 j6 S8 r\" r7 G# _/ U5 Q- enhancer = ImageEnhance.Sharpness(img)
. J& @, Z; d# P, V6 A - $ b# o! ]0 L( t
0 @+ U\" A5 R8 S4 Y- _9 Y; i. T
! J\" Z. G- `. u- # 增强图片
1 u% I9 q2 x0 ~8 y% I; K\" b: e: w
. D; W\" `3 N9 e- img_enhanced = enhancer.enhance(factor)5 L( i, a9 Z. `& y3 h s5 V3 d
3 E+ A1 s+ a$ P0 _& E- : o; k: V$ s8 _0 _+ j6 j
- . e\" ^. s; {\" F2 ?3 N+ f% C
- # 保存增强后的图像
1 j: j) u$ k$ r3 |* D: c8 q3 O% t# u
3 |) M* N. A0 \\" G; c* d5 I( m; w- arr = filePath.split('/')
A0 f; N% L; T3 J1 L; m - - e2 _5 W% m/ G+ g- h' u\" ?
- i=0, b* ?( i; g; j, {. {, x/ B
8 Y3 _- z1 h! V$ L& K- fileDir=''
4 d' a- s& D# n q2 d; Q! D: P6 g - ! S- V* _6 B7 g1 A- S/ R: E
- len = len(arr)
& D0 o- L$ ]' h) }( Z
1 }9 W @# k2 I% z7 _\" k- while i < len-1:
* N& j0 j1 r, l
; s9 Z X, @! ^- ?- fileDir += arr[i]+'/'
8 P! Q2 ^+ y( u) _- J
; X' F V; ^' p& {% L- i += 1
- o\" Z' ]; O7 p. y3 W/ v
( s5 y9 R9 _: D0 M# {! H; Q
\" F% m2 D t# X- \( O3 _
& S8 \! A) n$ C8 Z- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])
* s! R: A( R) k* {. ^( R
1 U* {\" {/ Q2 Z- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:
; ~6 w% w1 ~/ Z& N P. G3 T' }1 A% e
增强锐度- from PIL import Image, ImageEnhance
1 ^0 Z# o8 d* d: }% A& ~ - # Y$ n% y9 p' _% B+ a6 W
- D8 V+ A3 }: m2 _8 f6 O
6 l\" ~7 {! g, u5 M& d- # 打开图片
6 J, L+ z P; R$ M7 j0 } - $ t8 P/ ?+ C! u/ g
- img = Image.open('image.png')7 c% ] A9 M- _! [\" J( A
- 1 `, W\" b- b% e7 j4 _: l X
- 8 { g4 U6 G7 q8 K1 X
- * K( A+ _/ ?8 v, A, x
- # 增强锐度
1 e7 F3 R! |. W: O) @% i% E
: N2 z5 o( b$ L0 j0 x3 o- sharpness = ImageEnhance.Sharpness(img); N+ }1 E, J- D
F( s- [- k: O. g\" H# z8 `- img = sharpness.enhance(1.5)* T' C; Z2 z: |. `5 V! K
5 T) y/ y4 W3 q/ D$ Y% y# Z- 5 e: R5 C2 M6 g
- 5 R/ R% X5 ]( s' m' c+ t
- # 显示图片
. U7 ], f) B8 P _: W - 0 r7 p/ @ P! \ p! v
- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance
! X. h, H1 X+ y) U) h4 ?0 ]. r - : E |4 H& d- q( f& M6 O
- }- T, Z/ E: G\" Z
- & v; h+ _! D& G* { L( n
- # 打开图片
l$ {4 s1 h: r - % u( L9 G: q9 b* d
- img = Image.open('image.png')
0 e z2 F) v# ] - 9 @) K+ G* q& G! c* z
6 j7 T8 a% j& i( L' f\" |; q& m& l: D- ' _2 X9 w' D2 d# N7 `) g
- # 增强对比度
; S2 j- p6 Z7 x\" g( {# m9 o* i3 J - ! s6 Y4 v8 H5 `/ _+ V: m( ^
- contrast = ImageEnhance.Contrast(img)5 W\" w- \- q) m+ Z% ?+ K% U: A& Q& O
8 a; ]; L+ H9 q6 I\" ?$ r- img = contrast.enhance(1.5) T* { Q8 H# w% u; s, @; ?
- 7 j5 s) z Y4 i f
- 3 r$ B' p: A. ~; ~\" C2 J
. u+ d. E' N, f5 c- # 显示图片
7 |\" |4 ~/ Z [, x2 @: Q
$ l4 S# ?; a( i0 n( f0 {, V- i2 E0 [, a- img.show()
复制代码 1 P/ G5 x8 n& s
|
zan
|