- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件) @) W& H7 a9 m
& m' p: {2 K4 T ?\" j7 U- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))2 V4 ^! P0 Z3 G6 O
3 Y3 Q8 Z0 s8 b+ w0 o ?- # 增强图片
9 ]8 _7 t' K( n4 L9 Q0 n' O$ z! e - 5 Y$ d* c9 E! k/ `7 u; ]$ |
- img_enhanced = enhancer.enhance(增强系数float)
$ b. H- g! V, x1 K$ } - , V: p+ ^, J! J( s3 T/ B/ N
- # 输出目标文件
, i0 \2 V8 Y: i6 H% |
\" z1 v) r3 K: A/ t6 P- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致3 k! j! q. y# `! [5 G/ s
, E+ p" ?, p: C7 D# J# {& J
所需依赖
8 ^/ v! H0 K! n& e( m* n2 f) l# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog
% r0 ^# N* H3 s9 E - , v0 w* d. C/ t5 h\" K$ p5 y# D! b: J
- # 增强/ R' a# O; ?- f# f1 O
- w0 V3 j' e' `( I
- from PIL import Image, ImageEnhance
2 S# m% H- f y4 q' I' h - 5 I2 h; z* d$ F0 j/ A
- 代码实现
# a\" f4 b1 n6 f
& c! p: X4 t) q/ n' n- from tkinter import filedialog. Y: m, n# x3 `
\" b9 z) n% @+ C! @& ?% h$ f- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
6 m9 _7 C) N* R) { - 7 f2 }5 m- q C/ n4 o. z; h; w
- file_path = filedialog.askopenfilename()' _$ n4 u+ Z8 @- H
- 3 w8 E, n+ b- O9 H) U1 y
- # 在这里添加代码,处理文件路径
. p7 U/ ?/ d, ] v# z% z) L ]% I; s4 o - % L; P5 q7 L) ^( Z7 _. D! x$ l
- print("选择的文件路径:", file_path)
/ ]- J7 T6 b! ?1 a: ?4 `
: @& e3 y4 s4 B* O8 T- return file_path
复制代码- 4 w4 E8 @+ @' V$ ^
- # 打开原图像
2 w1 B# s6 j\" M( C( [) D* D
. ^6 C5 \; g) D9 T; Z: }3 {- # img = Image.open('image.png')8 k: R2 k$ ], k
4 w# \% M$ ]' E- filePath = open_file_dialog(): t% Q1 ^( H6 g\" V; H% ~3 E
- m( v& i+ u& i/ y- q9 s4 O' L- img = Image.open(filePath); |$ ?8 o3 c; v
F! F$ a( w) V- # 设置增强因子
7 \, k! Y d# ^5 R7 V
# Q) \- C3 T) Z7 v1 e- factor = float(input('请输入增强系数(1.0~99.9):'))
8 s4 v\" y9 v; _9 ], W/ W - 2 V7 i y* g A: Q' `# P\" t
- 4 n' N1 G8 f, [2 c, z+ t
) ]3 ~2 V; D1 `9 n- enhancer = ImageEnhance.Sharpness(img)0 G; D5 x\" g/ L3 ]
- * j\" g\" v0 D ~ G: e3 U! ]
5 C7 V. c4 g( i z r0 V! z- . f4 b9 \; O2 `. }
- # 增强图片
5 w3 J3 }* b, F - 9 J' z: d7 C' ^- S, W
- img_enhanced = enhancer.enhance(factor)
. z7 G, }4 i5 H7 b
4 z; ?( F( a\" e4 ?% f5 H5 Z. q
\" K\" U$ Q\" Z\" c D: f/ _7 i0 c- + |\" U7 Y8 h( D2 _ e! [3 q
- # 保存增强后的图像* `+ T$ ?3 ]' x6 i
- 8 L5 q- b\" T( Z/ m) I& e
- arr = filePath.split('/')
0 g& t! D3 S) L: J0 ], R
5 f; J4 h' {, V' F% y9 b\" t6 k- i=0
- T4 u2 C1 u' b5 Z6 H c
+ F\" t\" X: @9 G2 m- @# |- fileDir=''\" K! \+ l\" ^% f
- . @; v% N. E) u5 \
- len = len(arr)) i* B4 _1 m/ s* w% R4 v
& _* W v9 n\" O' g5 g# U! F- while i < len-1:3 g7 K\" d\" S9 R; g
- 0 _7 C0 B: x1 x' a; M' c( |- K8 v
- fileDir += arr[i]+'/'7 q7 e8 t0 [$ o4 k! R9 d' C
: Q- s4 O. _3 S, n1 R3 p# i- i += 14 n& C- U8 g1 u& W( |' W( s, ^& j
- 5 |6 d! K/ D! ^+ B\" p4 I
3 l% F, Q. r- C# K2 w* v& M' r4 a- 6 O; r* l# S& ?
- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])- Z: Z1 u% {$ U* |- q* _& b
, Q6 G, ?+ C6 P! t0 r# R v+ Q8 K8 O- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:
4 {; K& A' r1 p9 I( ^9 v) F
, W5 A7 G- M4 V; v! [增强锐度- from PIL import Image, ImageEnhance
8 V0 B8 |2 i3 m - 2 q8 ^7 J/ ^6 b( o
- 2 n. ^\" Z% z, n0 x- J: G1 x P: x
- ! d6 O7 d# E- i0 r0 i. x
- # 打开图片, f\" i' U# f3 |6 ^! O! d# F9 T' y- A! W
2 [- Q; T' U7 g; V) q* r5 C7 x- img = Image.open('image.png')! z |2 p7 Y3 [
- ' e. B& g; N+ f! n
3 J/ R# h( }7 Q
3 l! Y j+ I* V& \/ K) n$ b7 D! m- # 增强锐度- U7 v& u0 A: n2 K5 G, k& H! m
- - E( c$ l4 {- G+ P# l3 m
- sharpness = ImageEnhance.Sharpness(img)
1 o2 s9 q/ s8 [8 _: t0 A9 _ - 2 O0 p& v/ V0 g5 b1 N
- img = sharpness.enhance(1.5): p# k0 W z: D3 @+ j
- 1 W: F( @& C0 {7 d6 h c1 d
& F m& i% N j7 W T- 5 W# p( g/ [2 R% I\" P
- # 显示图片
l) C1 c9 j. X1 c; B/ v
\" x) |) K( g0 m8 G8 a% j- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance2 v3 p! h5 Z% i$ o0 K
' N- z\" w1 j) e
+ V4 A9 x4 C- V9 M& [$ r- # M X2 N# Y$ o, D! F* k4 C
- # 打开图片 } X\" V' g, b* H
- k' _) E# w1 x1 ^! ^- ?
- img = Image.open('image.png')( H\" L) A; m$ r5 c
- 6 h3 B8 i' b- A+ ~9 l& K
- 8 {) j% e\" f2 v% e7 R. P
9 B. Q6 q c- ?# m, O- # 增强对比度0 f! J2 C$ z% h$ X: O* A) M
- P- ~+ m9 \2 R j. {
- contrast = ImageEnhance.Contrast(img)+ b& k, e# H- s. c% O# }
- ( u' R7 S6 R5 r* K, S' T
- img = contrast.enhance(1.5): q* N8 r; W/ X& c% s
- # U' j1 N: t# M\" |. B
, T/ o2 z& F. f6 O7 h- ' e* x6 n3 @0 Y X) u: U! b! ^
- # 显示图片\" Z' G, v* |/ z, F
- & @6 t, y8 m8 R! T/ G4 i8 b. l
- img.show()
复制代码
! p: E/ d) W7 ?0 ]( } |
zan
|