- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件
9 r* Y l2 _$ c9 q! }) h; X$ ~' w - 4 F2 V+ ]. K' @5 n( M
- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
1 d\" e8 R, p* T9 a( [ - ; F' a: M# C/ Q\" J! e1 R' R
- # 增强图片
- m& P/ z3 n0 K) X7 ^\" ~\" B9 [ - 7 \7 k3 I; f6 F4 f- c! ]
- img_enhanced = enhancer.enhance(增强系数float)( n9 ]( D' d+ x% Z# h/ t
. |( O* h' Y; B- # 输出目标文件( o* k) e% u4 h# U. d+ ^0 {& l/ p
- % `& @3 O) ?\" t; s
- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致
+ @$ X/ e8 v a) Y0 k& F
' K: z$ |. R7 G: G所需依赖' n9 v/ ~/ c% n) M+ Y; Z
# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog0 h% @2 D! p S9 t+ \
- $ r+ d9 h1 g0 f/ K
- # 增强2 f9 C; t* Y2 S# `0 T
- \" b9 w5 E1 O6 l O+ k) l
- from PIL import Image, ImageEnhance\" s/ M) v5 Q2 p5 a6 e$ n
& ^. K$ o! c4 N2 E- 代码实现\" Y( g7 K4 @7 ]
7 ]/ x3 Z) H/ m( V$ j- S+ t' M7 h6 h- from tkinter import filedialog
4 h! X\" V7 T; J% y. z( t$ G
- ^9 t& g, y2 g# h, [2 f7 R- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
4 m2 l2 t\" { l) ?5 r0 ?
% E$ A, _2 w& @- file_path = filedialog.askopenfilename()# {7 q7 _9 q6 _5 T: z+ {
- 6 b3 ~& }/ q O. {% ^, I
- # 在这里添加代码,处理文件路径+ V6 l, J\" l( k) s/ {- @
- 3 _' @4 b: `3 M7 R3 O8 d5 A\" U
- print("选择的文件路径:", file_path)! v* n; Y# N+ p) o\" ^
7 c9 t! ^ z j# P1 r. Q- return file_path
复制代码- ( G+ B- O5 u0 Q; X
- # 打开原图像$ F; ~. Z* P( h# L# Y- K
- , s4 B8 Q5 N( [: l
- # img = Image.open('image.png')! o' ~9 W3 w8 g1 K2 m, h( p% M0 c
- \" B& _& `! L9 M( F
- filePath = open_file_dialog()
: d0 n: c; d5 F' `& {\" J: F
0 G( J! L! Z0 J+ B- img = Image.open(filePath)
! x\" a+ H8 K6 ] - 1 F C. E- w' Q3 Y9 I6 U' C$ @6 v: L
- # 设置增强因子 I: ?% K2 d4 v- `: P: `2 I+ x
- : V5 X. q2 M7 m0 a
- factor = float(input('请输入增强系数(1.0~99.9):'))9 K' q+ J/ H: O2 w
# J0 E) m. F5 f3 Q0 s, E
; d% M6 v( e5 Q, G. H0 k; N# Y6 K% b
. y }! w# H- t) u n6 F3 b- enhancer = ImageEnhance.Sharpness(img)% s. ~/ W0 K0 D; z& O2 H
% B; K! k! x6 r6 ^, j
1 n# H- H' k j: f% ~
* ~5 P$ r( v( E! S) N$ P) q4 K: {+ J- # 增强图片
2 z! O4 A0 V+ c' Q+ ?
- t5 O* ]2 A- U- img_enhanced = enhancer.enhance(factor)
. U. J& U0 @: c \. f) |) o
8 I# j) o' H: Q8 u- 6 B, ?$ }. A, v
% o( O* a0 y\" Q1 \, r- # 保存增强后的图像5 b\" N9 S3 t! Q$ N\" [
- ) r- |1 M; K0 {/ ^) ]; |) O% h
- arr = filePath.split('/')
. u8 |. G% S, f( X - 1 C4 E2 ^2 {( n' E% h
- i=0
8 V- T; j. m$ P3 y: I\" o
6 p+ c- x! v4 z; y& w7 y- fileDir=''
3 t1 N1 Q: ]9 c8 q
' R0 w! g/ s/ F+ R/ @4 Q' i' [- len = len(arr)
7 ]: a# f* D* H$ H* q
/ p2 H1 d) }+ ^9 O( |0 e2 B; f- while i < len-1:+ |+ E# S/ G) E' f, y) O
- ' g8 i2 J2 \6 C) H
- fileDir += arr[i]+'/'
' h2 E+ d\" E) Z: }
) r6 {0 i, p; P7 ~: Y1 p/ _- i += 1
/ a& [# I1 I& c5 J$ Z! C
. O. f8 {% T! x- ) f& O' H/ }\" p- l8 I% }5 ?- Y
5 E; K\" s9 p; d. h R2 z3 `- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])
w% G; S8 p8 T) K* l! S
# C; y\" y6 k' k# N3 c- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:
: I0 b, `' q4 i; l$ _$ } J
7 H* K5 k2 S3 g# z/ u增强锐度- from PIL import Image, ImageEnhance
) T\" }9 `( B) k0 `3 `\" U
% }6 o8 \+ j7 R% {$ x- ! t' n& j; i2 p
- ( k, B! {) S5 g- J
- # 打开图片
( \( O: f7 \1 ?( `# V! f9 s - c( F( k) j' z9 R3 ^
- img = Image.open('image.png'): `$ ~2 h. M/ b. G6 [4 }
- ; [7 x! \) A. c* f! C
$ f6 _/ z3 t$ P4 Q* Y8 u% ?- . F7 L [- r) ~/ P5 R/ f
- # 增强锐度
1 S7 `( T\" ]- f' i
1 }9 ~\" d* v- ?6 o1 Z- sharpness = ImageEnhance.Sharpness(img)
- j! F2 U6 p/ u- l; v
7 o\" I+ Y) P# p+ ]; I3 A1 x2 H- img = sharpness.enhance(1.5)& i9 U, C6 A8 ?# Y& F
+ p( b8 |& ]* m9 A4 Y. o& A- e$ s' U! U1 V- A I
! C\" b\" {3 w2 _- # 显示图片$ v+ ], y6 W& C: j
- / h$ ^+ A, U+ ^* E$ v
- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance+ h7 x& |- S1 r3 j& F/ u- }/ X: J* {
- 2 U8 ^2 Y I- B7 B
8 E7 f, s% Y. M Q9 |/ S f; f
; @8 Q: }6 |! D% N/ K6 V- # 打开图片
7 `4 m8 B& b( K' R* |
# V9 h9 E' ^% k- r- img = Image.open('image.png')
$ w0 h% Y/ e& h! f% W) j/ P - - q5 z5 d# U8 ?: l
0 e% c6 W$ J% `6 p% h7 w4 C
: R9 b% C9 e J& o5 X/ L- # 增强对比度, z* s$ @/ V, L! t
- 8 y0 ?+ i7 R9 c\" `5 [
- contrast = ImageEnhance.Contrast(img)
! k- ]( d, V1 A% s3 P+ }* E
! a0 }) r$ l+ [0 ]. L6 q. j- img = contrast.enhance(1.5)9 d. Y5 G; v1 Z# \! a c
- , h+ F+ Q. ?\" R* ]\" @2 U
- & m# { h7 o/ m0 h
- 0 m9 {# K+ k+ C7 |3 \
- # 显示图片
# ^ \2 j$ c4 G - 1 A. r! {( P* W: p\" E+ A
- img.show()
复制代码 ! S" e0 w- b' v
|
zan
|