- 在线时间
- 482 小时
- 最后登录
- 2026-9-11
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7945 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2975
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1183
- 主题
- 1198
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件
0 T\" R M! b/ F) E: U\" C - : P: m: c+ ^3 s) k- Y; C
- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
3 g9 E8 x0 w6 i) E; @
6 F7 K4 ^+ I7 K8 F9 y- # 增强图片\" I* F l! C- o! a5 [) { o5 {$ f
- \" H4 B: X- }, P0 f
- img_enhanced = enhancer.enhance(增强系数float)+ _& ?, x) B3 Q% p
4 K- S5 j- x1 M- # 输出目标文件
& X1 }) o1 d, i5 H - 5 n3 }. M, H8 Z# ]- O
- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致- g" \2 J1 T# e: M) {5 Z
# f; O( A% z* V4 W5 q% ]2 q+ e
所需依赖1 ]) y) L: p# f3 N& ]9 w3 F$ Z
# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog
# ^( _& V- i\" s5 ^1 P - 5 V# H$ Z& ^7 j
- # 增强! w. _; n4 @9 d2 I, ~
- 8 ~ d8 j- e: |
- from PIL import Image, ImageEnhance5 F$ n8 P\" ?1 \1 r$ z* V- F, L; y
- 3 b7 _' N, w# s% K- w6 {
- 代码实现9 E! {) x) l/ r0 q2 h
- , f0 o# `- T\" `0 l/ b
- from tkinter import filedialog7 u9 [ M7 p2 z\" z8 n S$ m8 X
8 D: x8 m+ W3 R: m. Q+ a- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():& Q( I& q3 |) F9 h& D8 d' Q
- ! q7 Z( b$ m\" n! U j
- file_path = filedialog.askopenfilename()) G8 _& r7 \% u# H) |8 ?2 z
; I1 _# \2 h& @4 D% h5 C- # 在这里添加代码,处理文件路径
4 z- X7 k! g( I+ [' V3 ]6 R5 [ - ; T. v5 T0 z2 B9 H. Q0 M
- print("选择的文件路径:", file_path)' d$ R- {0 e$ w: r3 {
- 7 j# C/ f3 R& w* Y
- return file_path
复制代码- 4 Q\" l$ j' G4 r! [1 Y% \( r: u
- # 打开原图像9 {1 A2 J% L7 A
* v7 W: g [) y- # img = Image.open('image.png')
; a$ g) W9 V& r5 D7 S1 n' J- g2 M% n - 6 U. ?/ p8 X: ]$ P0 u' `' [
- filePath = open_file_dialog()
; N& O& W8 W/ \ w; @5 B - # X% g, g) v L a
- img = Image.open(filePath)
l6 @( x/ X8 x1 E$ q5 L
0 n! n1 {/ ^( H8 Y0 Y1 f3 O- O4 f' ?- # 设置增强因子
9 M [) F w# K - ; v2 }0 H$ W( z1 P
- factor = float(input('请输入增强系数(1.0~99.9):'))
2 D' X; I# C$ w. `, O! C9 v$ V3 V - + L/ j7 n\" p ^* c
5 ]$ d( b& L& c! U- |) J- 1 ~2 M$ }7 e( A8 l' p& V8 I# ?# Q' W
- enhancer = ImageEnhance.Sharpness(img), K+ V2 v1 U6 C. R0 @
% q7 v1 v) I5 ]5 ^& v3 D% [; l- \" k- T* E9 M) k
\" C- \* Q( }7 O5 S- O- # 增强图片
* M6 I5 R. f- Z\" I - \" z# P% p/ G/ }+ j
- img_enhanced = enhancer.enhance(factor)9 R8 T* J1 p4 z, g( F
- & O. w2 ^. o$ n8 `$ v6 n0 {
- 6 R5 J3 t) b, Q
3 S; B. H. N1 l- # 保存增强后的图像
9 J. J% W4 R8 L3 K& C/ a7 K
( ~ c; \5 N2 ?\" Y- arr = filePath.split('/'), T3 _8 S, R. B) `) J( z
7 ^; T0 k2 Q' s: L5 L- i=06 e% S- S7 Q( x- z# J/ z7 D' B
; ~5 B\" h( Y5 @6 v) p, }- fileDir=''/ r4 D7 ^! q$ J' K% a: y2 J
* s0 e8 j+ b+ M& G/ K* a! {, V- len = len(arr)
' q7 U1 C' M6 {8 _ - 3 a: ~0 L& z- ^$ o
- while i < len-1:1 c8 I* O0 Y- J6 G6 t
- 0 X3 A/ e6 b4 A. n
- fileDir += arr[i]+'/'! K& [+ ^+ g6 ?( g( g( x, [- x
- 1 s. L6 |8 P$ ]\" p% m+ d. D
- i += 1
0 c6 F7 |6 l! a' Y6 M - * @9 t( S9 w2 I c8 J1 W
+ c* B0 W\" f7 [- ( c6 S\" Q' ?4 G2 ]\" `! R
- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])
/ ^6 W0 |8 M3 W7 |( z
& \$ \/ N# O2 x1 T6 @8 p c: L- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:
3 D8 K) c( L! z: r$ u, T; _+ Y9 V- R1 X: J4 g+ ^$ F' g7 q d
增强锐度- from PIL import Image, ImageEnhance
0 j2 L+ z0 b; u0 H\" n - 6 g/ f0 o& Y) c2 Z
4 i# ]) s. s, k
3 p3 k6 L! d) z% V. l7 s/ D- # 打开图片0 _1 |6 j( G! K+ E( L
- - x$ P- I' v7 [/ Q, ~ u; v
- img = Image.open('image.png')
. U5 |/ M% l8 h$ J\" ~
1 c* v9 D% r- s5 P
; P0 N/ S1 ~2 }! X* z
, Y/ h2 e* m% ?- u/ j3 `' @- # 增强锐度/ e0 o: V1 u6 s# x0 f. I7 ?\" J
- \" {1 |5 {9 e1 n
- sharpness = ImageEnhance.Sharpness(img): C6 O' B\" o7 f! g' j, z
- , `+ g# z9 K) j7 ~4 K8 l. }' f
- img = sharpness.enhance(1.5)
6 G( h6 _4 O1 ~9 U9 R - \" c: y: ^! K' T5 Y
& x+ ]$ Z\" d9 M/ J9 ]1 D- 4 h) Q, O* q5 W: O0 M5 u' N
- # 显示图片2 f. [7 i) W F- y! ~
- ! }9 G# Y' s& B' f
- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance% W* E7 y( b$ e8 k9 o/ J) s
0 v4 T% Q: v& O8 o' `9 n6 G0 c3 A
/ x* k; H5 c\" t% v' _- $ z8 z' I( M# j1 u( ^1 ^5 n$ ^
- # 打开图片
' F. `, l\" u) Z: X/ w- a! G7 i
- Y0 E8 d, K. K' h# o3 ~% W1 x3 H3 D- img = Image.open('image.png')
3 Y' n. U! ^% [3 n
1 u0 @0 ^% f1 v! ?1 n* V* m
2 j4 [) a5 S8 D7 _* U- ' M- a0 r \) |4 O; q
- # 增强对比度
. p v3 d- |/ y
) J1 w. p9 u( Y# ~- contrast = ImageEnhance.Contrast(img)
. M* o( p( v0 P8 H Z3 @0 g j; L - . F- U+ G5 W9 I/ y8 T/ x# w( \
- img = contrast.enhance(1.5)
2 y) l( l' m8 H# Y# w - 9 Q7 L2 Y1 E: |2 i
- 5 t$ ^\" B0 a& N
- / H, p\" v9 j# j0 }# B
- # 显示图片% D# s- C4 v. r9 |3 _
- : Z7 u. \7 X7 E- X& g
- img.show()
复制代码
* k- h* R( h! r" b. U7 n |
zan
|