- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件
! X: x$ B' z2 i: P4 ~& p - 4 Z9 f' o4 I. c
- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
& D. J# Q& G1 h* s - : b$ F; e2 a* K4 e
- # 增强图片% ?, l; H+ z( A! {
7 K; i) O4 o! y% m( C4 Q* F& N- img_enhanced = enhancer.enhance(增强系数float)- Z h. O4 [8 W, E; E
- 6 G2 Q) U! Y! u# p9 p( H# u& r
- # 输出目标文件
\" p8 `6 i. ` `9 E. k2 j+ I
' A; V1 {, h7 ^0 [, X$ L- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致6 m+ ?: ?4 S3 w% v9 }# j
% }4 T8 M) U! f& _3 d) q' Z所需依赖
+ u7 t/ S w0 L3 a$ N. W& G( K- Z# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog3 S1 @& U2 i8 w1 |% V8 b* A
- % W6 x( C) Z5 L3 t* _& u
- # 增强
4 X/ H- T3 H) ~
; a( R0 Q) K+ F% n4 m; U- from PIL import Image, ImageEnhance
6 l4 P& M8 L( d - - |3 R' m! }2 ? A- U2 [! l
- 代码实现
' A; v! {/ ^! s9 u4 o5 i* |
`! P/ f- C0 o- ^ I- from tkinter import filedialog5 U$ l, u\" Z( F6 v
- 6 t3 T8 c N& h2 k4 A) s1 X9 c
- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
2 l9 p\" g+ [% `) w8 Z
2 E# j$ Z) ?9 H7 u- file_path = filedialog.askopenfilename()& p R. O0 ~\" I1 s
' c; V$ n5 N/ h w/ s- # 在这里添加代码,处理文件路径
6 _\" x$ M5 a8 c5 H- C. R - ( z$ X' g: ~0 V. t/ Y
- print("选择的文件路径:", file_path)
+ B8 J! c5 z& t# v - 4 A/ R: R! Z4 M. p& V
- return file_path
复制代码
+ M, t% k7 Q9 c9 K k- # 打开原图像
$ Q9 |5 |5 D# U6 i2 h. r - 6 G1 `2 Q P4 ~, l
- # img = Image.open('image.png')
& h/ j/ ~* m\" _8 Z0 m - % Z2 D/ Q: f, r& {& D, V2 u
- filePath = open_file_dialog()- f' z; ? t! Y& x
h, |% l; V7 B' f- img = Image.open(filePath)
K+ H4 r6 k8 E2 u( f, ~4 m
, }3 t f# j1 u/ V8 Q- # 设置增强因子- ?5 c8 q; @/ @. O* I
. ^5 \; T3 \+ _. R p0 C) B- factor = float(input('请输入增强系数(1.0~99.9):'))4 A\" v6 Z5 l H
- 8 s6 A. B4 Q, e! | `
: L: ^4 N* E) H- & m\" ^, Z2 Y/ _: P# [) o' k$ c
- enhancer = ImageEnhance.Sharpness(img)
; J9 ]! E- w5 v9 _, p9 `% V - ' N8 @6 J& ~4 j
7 I- t6 }' o0 G' X+ G7 @3 A& |- + ?0 e8 r* K6 N
- # 增强图片9 }7 e8 J, r; P6 e# q& `3 w& i( _
- ' q3 `1 Y( p5 k5 u/ B# m. q: _
- img_enhanced = enhancer.enhance(factor)7 ?9 i) ~0 \* S4 k\" o% l
& \' n8 A0 y- i; g3 X# e\" M- g6 g* `! x* W
- , {. S1 W! ?& Q: G/ A. P
- # 保存增强后的图像! A6 ]. F: r# x# \$ I3 z\" Q5 M\" U
/ d! S5 a3 u0 f3 z- arr = filePath.split('/')
% J4 b% G0 U( }* _6 S# S8 ` - ( s. y6 S0 H$ P4 u! ^8 O+ C
- i=01 `+ q3 z2 A/ ?
9 O) Y: O9 {/ T7 c- fileDir=''
! T c( w- m5 O1 d* q/ K1 n
' {! H! u1 }+ |- len = len(arr)
! D F0 H8 w# a; |+ m - 8 N9 u; B1 F- [% O
- while i < len-1:
5 W) `5 j' Z7 R7 A/ ]+ ^3 ]\" I$ k
; M' r2 L( F5 L- fileDir += arr[i]+'/'& x* W @% `9 w( x* h. f
% D: P\" T6 q! @& }( ]+ p$ x4 T- i += 1
' `% u: z5 X- c1 d8 L7 q - : u* \; f) M5 x; e+ H
\" f: M( ?* }. T; v# m+ Q
7 q' g8 |( |* H% o3 L* T+ o- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])% s8 v3 F4 d/ \8 I( y& i
\" B4 P8 p0 w0 J2 U\" Q' l- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:
- K2 I* y# ]5 _' e4 Y1 V# h
7 }6 c) j1 r3 W增强锐度- from PIL import Image, ImageEnhance
4 q: w3 ^* x2 w3 E0 R
\" x3 |* n1 F( N$ D5 \
, p5 G9 u+ Z/ ~6 I- 9 z: a3 u3 ]# Z
- # 打开图片0 d3 n8 }8 `' L7 ]
8 T! \0 ?8 Y4 |) { u* z- img = Image.open('image.png')
9 m2 B k V: f( E4 n1 E
' b; g\" M& G\" E
' }' n) _- ], X& C* @) v- 9 X2 ^5 e, D. a
- # 增强锐度& \' V* M* C+ N
7 k7 |1 v; \) J' H) W: o- sharpness = ImageEnhance.Sharpness(img)+ }- | c2 N$ p' B) ]
- 9 `- E+ J7 w& r/ U
- img = sharpness.enhance(1.5)
2 X7 q0 x( o5 Z5 A3 [# O. D7 b8 a
1 P; s( v3 A# R$ `% E$ n- ; G U+ D9 w. F$ q( L# V( c
- ! A2 T! m3 ]+ f\" V( o0 i4 G, w3 H
- # 显示图片5 L7 f$ E( i. L5 _& O
- , k) t+ B j. B
- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance. E% B @$ m3 g1 K8 N. d7 z% y
, x5 N5 D: o' \3 K& u7 c- ' H6 v1 E W0 z: o# v% D
- \" }! f3 K+ ~( {0 b0 ]8 B4 \
- # 打开图片
8 V( n\" z. H( b2 [4 b - * \4 V+ p7 m% r1 ^
- img = Image.open('image.png')/ p% F ^ c3 T; n' R\" L ?2 F# x
- * q% O# V' w\" [0 b\" [
. [3 S3 j7 d' q8 q& E5 F- 5 a) |* T\" e8 U$ C3 j1 }
- # 增强对比度
1 v+ j( s9 }% p, T6 X) K - 1 c6 h! C, N' K3 \# }
- contrast = ImageEnhance.Contrast(img)
& P3 w: f7 y: l1 F7 F! d# Y0 F1 l
$ G* S* p) H; T3 J- img = contrast.enhance(1.5)3 Z7 U% H+ K' _3 r
6 |8 Q; K% M( N; W- - k g& K# u& D/ `6 @) U% m
+ J* i/ o7 q( S9 t8 L' y- # 显示图片* t& F6 ~0 ?0 Y: d& N+ j, u
4 d. G3 U4 W( R- img.show()
复制代码
9 G7 k/ Y! e( F4 V2 w, Q+ k |
zan
|