- 在线时间
- 479 小时
- 最后登录
- 2026-4-13
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7789 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2922
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1171
- 主题
- 1186
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件
# T\" p( N4 b. [) L' j2 Y/ X m - 4 Y! y\" w\" ~0 H3 C2 y
- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
% ?% U9 j Y7 a! f y$ W& o$ | - ( d. f9 @9 W% V1 E\" A1 p. _! h
- # 增强图片
W8 _/ G2 m9 Q$ d, n! I
f8 @: W* \9 p: j E8 g- img_enhanced = enhancer.enhance(增强系数float) V; P2 j! C( U) k1 L
- 2 ?, ~5 H1 e; Y
- # 输出目标文件
- J& L5 Y: N M8 K# p
$ ~! V+ f$ ?2 b+ `# V\" j7 y- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致; v" k* j* F; N
3 a& P+ w3 B4 M' M/ j0 M所需依赖' r: V( h* y9 N q* t' g; {
# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog
. o1 d9 M: V# u. I$ v+ X - 3 v- b% k6 ?, W: \2 U
- # 增强+ F' `9 P\" m3 |7 b
- $ J }- n$ I- e7 r+ K N- O
- from PIL import Image, ImageEnhance4 v3 }1 l9 X. O ^1 u5 a5 P
- - W1 O! X! o+ R) D' p
- 代码实现
/ A3 V2 r8 r6 P7 G
# Q- F. G+ @, s, o7 y9 [( g% g- from tkinter import filedialog
8 c- A; z) h& ~7 l3 d, V - . G( l s+ E) U
- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
# {2 Y' E4 F8 Y4 G' G8 X8 g
' {( j1 F0 t5 m6 M# o3 a- file_path = filedialog.askopenfilename()
) U- ^# u+ r\" j! ]/ N. w
% I, }* N2 m/ ~, B0 h) l\" D9 [6 J- # 在这里添加代码,处理文件路径% a( N\" [1 n; X
1 ^9 y6 k) B8 Q) B- print("选择的文件路径:", file_path)
$ x8 P7 T\" H) m) G# k9 W- F
8 G. W6 u1 P) b/ i- z5 |- return file_path
复制代码
P+ L\" J/ g. Y+ [5 d7 @- # 打开原图像
2 f3 w% M4 Q- N - ; \* S2 x! H' H7 G1 ^
- # img = Image.open('image.png')
( r A* V5 U! ~- A R( z' V
7 }- v' B8 F _5 g- filePath = open_file_dialog(), M/ C; [ l& J- ?8 z2 v! P1 e [* u/ w
* Y3 c8 i\" y1 c- n0 ?4 v- img = Image.open(filePath)
) }1 s7 r1 C$ i+ g; M( I; v - 0 {* }% c0 J# _\" R5 p& ~5 U6 t
- # 设置增强因子
6 u7 A: n' A/ G S( j
* @$ R; G% ]4 O4 ~- factor = float(input('请输入增强系数(1.0~99.9):'))( W' f\" }8 {3 X5 Q3 P! _/ K! n
/ _$ `( ~8 J: f+ Y! }6 w- / z8 U$ k4 A$ f7 t- k, Z
- 5 a, {3 F3 r9 q$ m! m* V% W M1 u
- enhancer = ImageEnhance.Sharpness(img)
0 ]. n5 D\" p! ?% \& p# q$ ^2 q - 1 i# U& F4 p, p+ x/ ^5 p0 z
5 W6 `- \$ S4 y' {
) {( O1 |, p5 f! F0 y: t* h- # 增强图片1 ~' O1 K V( \$ u
- 3 s\" z e$ T4 j6 a2 E) f2 ?9 s |
- img_enhanced = enhancer.enhance(factor)+ b6 z3 j9 q2 L3 I8 \0 u5 Q
8 M* Z3 l- s4 o: F$ f8 k
& Z1 l0 |: A: |; a- 7 T3 F% A, J( [3 E6 r* t
- # 保存增强后的图像/ o\" ~8 w8 Q. ]8 ~3 ~, L. Z0 w
- 3 `7 d6 i0 b% w; U1 A2 R/ G
- arr = filePath.split('/')% |8 ?5 D4 w, N3 {( u3 `! i5 O
- 5 d* s4 {2 g8 J
- i=0; d, ^ H7 |: D+ X$ x
- 7 X. a6 o# ]7 }6 `2 ?. z2 w9 ?$ d) K9 K( G
- fileDir=''
; ^3 e5 f1 [0 _: w& j0 I* P. ?
1 o2 m s U' O! {- len = len(arr)\" `+ k# [0 h$ {0 v, k2 N
- * @1 _% v8 Q4 u* P
- while i < len-1:8 J- {% M( D3 ~0 v0 p
L+ i7 |/ W1 J2 o' X6 A& B7 Z% D- fileDir += arr[i]+'/': c! |% I- t2 F* S/ w
- - h) @# J8 _: i# d4 d7 x
- i += 1
# Q3 y; J) y1 v; y
4 i) [! Z6 t/ X# T2 r& f& K
/ L8 W, w\" ^. w3 g3 @
; W; `9 m+ ?$ B; a( }- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])7 \8 v/ n E! E5 Q\" f1 B! S, C
\" V7 n$ C5 s; T6 ] T: k- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:
5 E8 N0 O5 e5 c! J( b+ H2 i! R
; z4 z' p& Q8 e7 y2 W$ I增强锐度- from PIL import Image, ImageEnhance; z$ y% L+ T V( A/ m
- 6 i% j- Z. E/ C& k4 N. i
7 c, v& c. F0 f7 }- + _, _! o$ i+ E- S
- # 打开图片, R+ ^9 L- M* X& I
- & O+ n z: e- n# p6 H
- img = Image.open('image.png')
% w1 W; @# S6 G* E
$ q# X) f# y* q |/ n\" z' p! _' b- S- / y( ?7 g4 n; \5 e1 ?
! z( y# B5 e% g' m2 f# x7 U- # 增强锐度# Z; J3 ^4 ?5 e8 V0 |& ]: O9 o: Q- \
7 U7 R\" v' C; @9 d$ M6 S- sharpness = ImageEnhance.Sharpness(img)) n: Z' C. I/ ?
- t$ n# ^8 B }. S! p V- img = sharpness.enhance(1.5)4 b/ I$ _' v! B: ]1 ?; ~
8 ^6 r v# t. `( a& W4 ~
! d: @; Y6 q; J% X# e `; a
4 w\" ^% |6 @/ v7 o9 X- # 显示图片
1 @$ r$ E: H7 Z4 ?! q; [8 |9 _
2 [! h o; B5 o0 N+ R- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance# |6 a9 g+ `\" J B5 k
1 g, ]5 _7 ]; M, d: R
\" O9 [* C& P* N9 X% a! F7 G- ( w) J5 F$ \4 l5 V( g4 ^
- # 打开图片
) S) T9 Q3 S4 H% w9 \ C# b - - T) v' {7 g6 B: K
- img = Image.open('image.png')
6 s* B4 g1 W! i, m3 E1 h - 1 v9 Z. w, F# g* s
- 0 [; H$ p\" ]1 B\" r
- 6 S* n\" }6 w, i+ f2 c
- # 增强对比度% A0 e$ q5 I' F: J
( C% C% ]6 X5 |- contrast = ImageEnhance.Contrast(img)2 b+ z8 q; T1 q- C
4 ~8 R; H) ]( u: w\" L2 ~. `6 g2 g- img = contrast.enhance(1.5)
) {. [4 V. _$ L/ V' l$ e
9 a) y! | E- ~! S7 k. _- % E( V ^, ]5 ^9 ?
- * u) ?( t1 h/ ~3 u: }\" `; o X
- # 显示图片
& Y4 ]. ~; ?! q i - 9 {( d8 f, L1 |( I
- img.show()
复制代码
5 e% S# F3 w! \% B2 s- g7 V |
zan
|