- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件' W* k$ F* \+ Q
0 x' S7 s\" m+ e\" G- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))0 }7 u2 t# ]2 h7 C
- 8 F2 d. j6 n0 E0 O) D) o
- # 增强图片. b- h+ {) j) m. T2 {
- ! j5 G1 t. j/ R; c* B9 _
- img_enhanced = enhancer.enhance(增强系数float)
0 X* i% `$ n- h# o Q; y2 ~ - + R7 q+ o5 w5 l7 ~0 y& c
- # 输出目标文件4 I6 e5 C9 G# ] D% L8 h2 Y) v\" ~
- , Q. p. q\" s' m$ p
- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致
- C- Y5 H. ~$ Z1 l0 ^
" K A! w% o3 I: l所需依赖
4 _2 v/ X+ p7 S& W0 U+ }# a# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog+ T% w6 m5 T T) g
) O5 r0 Q5 n; f+ e; E- D! ^, _- # 增强- _2 \6 K: r) D
/ U0 q: i8 g8 W6 L- from PIL import Image, ImageEnhance
; L/ X, k* G/ o0 ? - 9 l0 N* I# G% S0 h. g, p
- 代码实现
: y* G/ H5 I& O6 f0 s
1 t. E+ b$ k. d4 C/ P- from tkinter import filedialog
+ q1 A0 N9 A! M - * K5 z9 L0 P0 O# _9 ]- f
- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():+ P2 D/ m; v! z M$ v
9 f; X' G* |\" C: m& E* l& @- file_path = filedialog.askopenfilename()
6 t9 T: X. q' ?! d2 E8 W
4 m$ S4 O\" L, p [4 G# R- # 在这里添加代码,处理文件路径
5 Y( i\" O5 P3 ?0 a5 u+ t3 A - & H. m& I! n& \ H9 {! z# R
- print("选择的文件路径:", file_path)
' f z* n9 h9 {8 E& _' _4 O
9 ~\" v\" b( C M; c\" ^- return file_path
复制代码- ' ^' ?1 D9 b: a- t4 p1 n X
- # 打开原图像( A7 Z$ W3 Q) L/ g6 o( e
- * o0 T& V0 k9 f; D7 I( s& z( m( W
- # img = Image.open('image.png')
+ m$ t e5 Z' \. ~9 R - # Z( P, ~2 D2 x+ A) ]% [
- filePath = open_file_dialog()2 l/ F4 B( t0 c
8 X2 }. I, p2 o; r: U- img = Image.open(filePath)
/ A V5 N% Q; T! u5 C
+ G! T4 p( L1 e, t5 Q7 Q% K- # 设置增强因子
$ X' `6 X6 S) J8 V& h
$ L+ ^8 e6 m! U' |8 a2 J1 z+ K( [- factor = float(input('请输入增强系数(1.0~99.9):')) d- \8 @1 b) T
8 h5 e( L4 P2 E# C- 0 ]1 [/ I0 _; b4 B3 \
6 T2 ?# v; j2 c- enhancer = ImageEnhance.Sharpness(img)+ W4 O. q/ S, {( n
- : z l7 A) \& t; ^
- , v9 [, X+ u1 t: D* X
5 p! X\" r% \, x. U; B: w; R+ b) L) E- # 增强图片% F, n( F& q+ \4 [+ ?* z, e
1 v2 V+ D+ s. [8 L( u ]- img_enhanced = enhancer.enhance(factor)
6 l* k8 E4 k% C- C& O& r8 q\" ?% C - % i* q+ G: S) t+ N$ q
- B$ \2 W. \$ D- H: Q
: l4 s2 f3 ? ?/ B\" a- # 保存增强后的图像
0 d: m\" |' t) {0 z( L - }# X9 F; c0 u( u+ U+ g+ n
- arr = filePath.split('/')1 L' G- l9 t$ X7 f! m5 v. I1 i# }
- \" g2 {( J# k- h% Y4 @
- i=0! R1 H) ?# t& s+ P& S; B
- t$ r1 e e' u) B/ [- D; r' V9 ^- fileDir=''8 g\" ]0 F, ?6 k/ c8 W& G
6 |2 u5 ?- L! [9 M- len = len(arr)1 \$ |$ X# f3 z5 E ?3 ?+ z
- 8 ?$ b7 O& u. b
- while i < len-1:0 t3 w, i }2 F$ p$ _; x& g5 C
- ) k4 ^\" i, K/ O: f0 X8 I
- fileDir += arr[i]+'/'
; Q. Z: d* K* |0 S0 {+ Q4 ]; E9 t - + {. o* b4 ~% G. \) B
- i += 1
$ M# T% H$ S2 w. c
9 d( t& Y( U7 ]2 l) m\" q. N% w- * W, w' v2 p; Q Q) d6 f6 v, x; T
- ) i* t1 k$ X% P+ ]
- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])& w- c$ a* q% W. `. q
- ' x, U- K ?5 d0 ^5 g+ L* S- _
- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:* x4 d7 L# a! m$ W5 X/ o" z
) Q6 s% Y4 ^! g6 H, {3 n* w
增强锐度- from PIL import Image, ImageEnhance0 W* U, ]4 `\" w5 K, b8 X. i
- - T: d% ]. L\" K3 d/ ?6 p- g7 C
- 2 [$ l, {/ J- d+ w+ |
- , v\" b) s4 x z j5 Z) s\" p) L) W+ b
- # 打开图片5 g( z1 N9 V! i
- 5 {4 q8 R% L% @& z! D
- img = Image.open('image.png'), i( `( V, P\" u6 b+ g
- q) u4 j+ C/ x. c' X/ W9 l3 |- . M8 r% P, g0 \
- - {& Q: E. T2 {6 J% H0 l0 i3 H/ f
- # 增强锐度' u' Q. ~ l\" }! J, ]% E7 j0 N
- n; l0 Q8 U+ F0 U. W8 c$ f2 v8 e- sharpness = ImageEnhance.Sharpness(img)
. C4 t\" X- O0 s9 E4 i3 S
2 M\" B& _( E- D. c8 S! F- img = sharpness.enhance(1.5): l1 Y$ c7 G- e6 b# N\" r
6 v' v) M9 N m6 H% P3 B
% K8 b\" ~. B\" c) Q* X\" ]- + I2 I8 J! | O: V! ~1 Z
- # 显示图片
\" x% m\" ?9 ?) @- m$ U
, m+ ^' f! ^5 _: ]- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance+ @& X& o' u1 s6 S9 d3 d2 d\" `
+ e8 B; N$ U* U# `
! o) S, {7 \\" Z8 `
, [/ F1 Z% h; e- # 打开图片. A7 T% t0 i: E: D/ w' r; ]
( F* \- O+ [# N) S7 l. v- img = Image.open('image.png')9 G8 G) X; A7 V
6 L) d0 s+ b/ e1 d) x$ @- # _9 l* k$ Q\" m* A& T1 r) E4 T
- & h9 |& M3 m# F9 ^% O
- # 增强对比度
\" S; l: S\" w @- ?
+ Y N: l# U# F6 U, L0 A8 p- contrast = ImageEnhance.Contrast(img), N% F3 N1 l5 n; v1 ^/ C
- 6 m: H( w1 n3 K+ l2 i1 x! v\" \0 i& U
- img = contrast.enhance(1.5)
! [3 L5 \\" H. Z( e2 [, h - 3 I2 h\" O+ R: k1 Y\" Z9 q
- , t$ i7 J1 @2 H3 Z; b- b1 Y) H# E
- - W8 e, @$ k. _ |
- # 显示图片7 C6 M- y3 i: p# y( x
- % G' V% c4 _5 K/ c* c- J
- img.show()
复制代码 9 ? q/ u1 @- T& I& \
|
zan
|