在线时间 479 小时 最后登录 2026-4-17 注册时间 2023-7-11 听众数 4 收听数 0 能力 0 分 体力 7790 点 威望 0 点 阅读权限 255 积分 2923 相册 0 日志 0 记录 0 帖子 1171 主题 1186 精华 0 分享 0 好友 1
该用户从未签到
核心代码# 原始文件
1 Q2 Z, c% N, [, |# U* F5 Z 2 J- @) |$ q6 B ^4 s; Q\" L
enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))4 u& A: S9 i7 w0 C
) {$ m2 }\" v3 T\" i3 J: g: n
# 增强图片1 c6 ?: c2 X) F* A& f
, G7 R0 B/ N0 R, b img_enhanced = enhancer.enhance(增强系数float)
T7 \( m6 s\" _0 K6 l
6 Q3 z. }5 n0 J: G5 g9 S # 输出目标文件
: R: P4 X7 e\" ] d( O , `- Y( T' _8 A+ j8 V
img_enhanced.save('文件名.png') 复制代码 注意,输入输出文件格式必须一致& A9 c% [% J: d9 H& ]. A5 F X
/ o0 _+ G. \ K% l2 W( s 所需依赖7 U& }3 N! H1 r ^9 b6 E0 r1 P
# 文件选择框,可以直接输相对路径不引入这个from tkinter import filedialog
0 i6 }/ Q/ J1 i& |/ z5 r& x8 x
0 ^: d# E1 ?) V/ F # 增强
. w# I- |1 F. Q# b\" c
# e% g\" P. O6 D3 n' Q3 ` from PIL import Image, ImageEnhance& p( Z6 s4 F' x2 h2 p& [* z) s- B
* O5 v4 G5 U2 d% [ 代码实现5 Q# \6 k, R8 o9 ?( N- t
8 _# A, y: i( |9 a
from tkinter import filedialog
2 [5 A4 k: d1 ]8 T& i\" S/ i/ N* Q9 ] % R* x# c5 L+ u- |
from PIL import Image, ImageEnhance 复制代码 def open_file_dialog():' Y, ~& m) F9 N L* N1 @& j
: x+ k/ a9 W8 _2 p: P( n file_path = filedialog.askopenfilename()
$ ?% \4 K# v6 Y: ^! [+ m: C
- H$ T) |7 e' {( G\" Z4 b # 在这里添加代码,处理文件路径
2 B: f8 ^/ \ R+ M# W
. o& |3 Y: S/ d' L8 a9 U print("选择的文件路径:", file_path) U1 z1 z* O9 W2 m! `& i; u
% C& w4 E9 w\" l0 I C/ O1 p1 U2 k return file_path 复制代码 - A\" K- Y- a4 r$ Q+ c
# 打开原图像
( `) I$ N0 O- e: ?* A
1 \( S8 p8 e+ y4 @ # img = Image.open('image.png')\" q( f9 ^1 o0 y# O3 }, I) H4 B6 L
{# \6 d2 z\" D
filePath = open_file_dialog()% X6 g0 o) W1 @9 @: Y v
3 G$ a$ Y7 i4 ^) S- j
img = Image.open(filePath)
7 J\" a! o c7 z
4 `9 D\" p4 d2 G7 g; {) @) L # 设置增强因子, v/ y7 m: X B* R! ]
' v! r0 c' o3 }
factor = float(input('请输入增强系数(1.0~99.9):'))
5 |$ Z/ r- A# B7 y* Q8 q9 L r( J* q' V: P8 A1 M
, J8 J; g! d3 Q+ i0 K$ w/ U5 i) n$ u
0 W0 y) t$ ?3 U; A8 X% R enhancer = ImageEnhance.Sharpness(img)
0 j3 B7 L( l7 @ r( a. u+ V . h/ f' @, x$ u0 R/ A& C- J$ D1 A
$ w, J' y) L/ z( U& {& R, u + I2 M( \9 [4 G* P( n\" F4 l
# 增强图片8 W% c4 L+ ~9 j3 E }' d/ \3 C& v
; d. Y! K' l. q8 Z; z* `
img_enhanced = enhancer.enhance(factor)
0 [9 X4 ^4 d& P4 ^+ g
6 Z: _6 ~% O9 K3 v5 \- V 8 Y- T1 K, k* n* f; L K
9 y _- l. L. [% W/ c # 保存增强后的图像
( a# r\" q6 H+ I& M- U+ P6 p 5 u+ ]1 J7 m* @
arr = filePath.split('/')% Q( @\" I4 a8 A( T) U' v
2 T+ K' S5 B$ p9 w+ e
i=0
# J, M3 [, x/ ^: O5 e* Z, \6 v # v' S8 \) q0 d/ _# E. x
fileDir=''
) ?1 y9 P d6 Y6 m! m2 f2 z
- n A% a, c+ [2 C; R len = len(arr), b) [& d* H {/ C! c! m! [+ ?
9 ^. o4 h+ }- e: w, A/ @
while i < len-1:2 v% m1 [7 [7 E' E
\" E1 W+ h; M2 K5 _
fileDir += arr[i]+'/'
3 e' R# ?: m: V/ r
\" \1 b& p; c3 V i += 1% d3 F6 {+ T$ @8 P/ J\" S9 x
$ B/ S8 T0 T) C# a4 d. S3 T) J
7 S& o. K% A' v1 x% L
' O p* ~ W4 U- U* U1 j img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1]). ^! T ?8 m4 \- d, X4 y7 L5 i
* ]1 @2 A K+ o print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1]) 复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:+ i% n' `2 Z5 |% y1 y. E% d: z
- G e2 w3 I, M 增强锐度from PIL import Image, ImageEnhance8 W$ O R2 Y& ` I! ~5 z: s0 M- C, k7 |
2 F( h+ e- O\" L. c# w( k\" ~ 7 `1 \6 q4 ]/ U- W9 [0 ~
+ q% U4 O; V& W; _, N/ x7 Z. j; q. A # 打开图片: g8 K# F\" g/ U9 D, r. _
, u# m, g' h3 M% f, c! c2 x9 o6 _
img = Image.open('image.png')
/ s D. N# |% y0 g8 d6 n
& F6 h/ t2 O+ U$ F% c 3 \9 Y* Q: P\" F7 _
5 O+ b8 F4 f5 w( d # 增强锐度& P6 p, _, ? R$ z3 B$ U# {
. d$ t1 A* e; l: ?6 a sharpness = ImageEnhance.Sharpness(img) i3 f( p& T& t/ Q( E# t
. O5 D; X* E8 Q6 A img = sharpness.enhance(1.5)
: F3 D$ g) U4 P0 G ) z& Z1 Q. x6 h% A( W' k: d+ B
9 x% [, ]& | n2 z7 i , y2 x; k c2 p% F. X. y' `. j U
# 显示图片
0 R& H5 e7 C# k! f, H2 Q# M
% B5 i5 n% d# ?+ v7 Y2 Q1 B img.show() 复制代码 增强对比度from PIL import Image, ImageEnhance' S: L# u% u. Q* N8 Y/ S6 f
, }! B; ?4 Y& k
$ l/ h, i' V3 E# p' B, Y% |) i
! k9 D7 K# P6 J' f1 `) r, I& O # 打开图片
( {\" X e' ~, Z1 h\" a9 r. H1 S( i / r; H7 H) J' p; B, ?* h& {
img = Image.open('image.png')
0 [+ u1 s\" k4 Z3 O }9 u
! W9 z) F1 S% @0 ^( F8 G8 ~# D
1 L8 M( ?6 |6 Y+ x e* \ : z# J* C V4 n( M
# 增强对比度
9 ]9 d& }; O) [* t) i/ P0 S7 j# ? 6 O8 E* p0 u7 R3 T- i
contrast = ImageEnhance.Contrast(img)\" X# Y; {: q/ _% A: ~( Y2 g
+ S\" J7 i( B) I8 s
img = contrast.enhance(1.5)2 }- G3 G6 X7 R* a) @7 l! O
+ J0 I8 D3 x8 y1 ]\" A
) T/ l! B* K6 L 5 {& N4 t* M) E! A- X5 V
# 显示图片
& W; t: [4 S5 p( w* v 0 a) Z- {$ I0 W% U
img.show() 复制代码
$ ?" v! l+ p \0 j. s
zan