- 在线时间
- 481 小时
- 最后登录
- 2026-8-25
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7859 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2946
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1177
- 主题
- 1192
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件 ^\" u: M9 i) o
- G$ I5 ~3 u\" l! ]4 O# p
- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
! }; `& t1 d' q/ {% u, i\" ?. E
8 d( B3 \8 J* j; Q) s4 L- # 增强图片
) m' O6 K: |) N+ S6 b+ V
0 x6 S; B$ p; P! t, N1 s2 U: q- img_enhanced = enhancer.enhance(增强系数float)
. t3 X+ p! h i - $ B! f2 l9 M% i- o, b7 x+ J; t
- # 输出目标文件9 e i4 W' K2 {, z1 Z( C& b0 o
8 u1 q0 Y% E9 a8 V; |- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致
9 |# v1 W# N% A0 g5 _. N/ M8 c. F! W8 \* e. Z
所需依赖
# ?3 j$ Q, ~7 Q a! N. @# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog
) y/ r3 k: N- j9 Y* X. J
) e3 D1 W2 c+ G+ u% f* o; z7 X- # 增强
) T# p2 W; R8 w5 G3 l g! ?\" U - / B% x+ H& ~; J; K: S6 X
- from PIL import Image, ImageEnhance
% o. C7 ~- ?2 s6 d( ?: k2 b! z/ E
; _' Z% y- i0 Q- 代码实现
+ i! o- b% u4 j
+ K- F8 a1 ?; e$ u# y6 M- from tkinter import filedialog
* G* p+ }/ A& t* b* m/ l3 H8 J* p o
' A0 T4 ~# M5 H) Q' ^7 Z- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():! ~, S) l\" t/ l2 k4 m/ h) u' x
( [: K, _& ~; b% U% f- `4 w! t- file_path = filedialog.askopenfilename()2 S7 Q/ F; m' U0 i J1 F: W
: ?) H# c4 V4 m% A& \- # 在这里添加代码,处理文件路径4 j) |7 z& c, ]6 s& |* Q; J
% K7 P3 N# b* @$ e- print("选择的文件路径:", file_path)4 b# I( _: q0 c* U
- 3 K, n\" S% Z+ N+ Q
- return file_path
复制代码
! E7 c2 q# b+ [5 W5 {- # 打开原图像# S: v5 f) Q+ \5 L4 \$ y1 V- ^\" M) F
5 c% E2 w\" h, S* _# ~; f4 |- # img = Image.open('image.png')! G3 r. x2 r- V0 O3 C$ z7 s
: o3 v9 P: F, ]3 e# t+ [0 m' F) {1 R- filePath = open_file_dialog()+ l$ U. D C. w- O
- ! r) |) a+ s$ D7 H( T9 c
- img = Image.open(filePath)9 a' s. o# ] {; U7 J$ h! d; R
- 3 f% |3 H8 Q b, G
- # 设置增强因子
8 `- ^6 Y+ e% n, y# _* I3 b3 p
' C2 |& H: j2 U7 F5 A5 Y7 c- a- factor = float(input('请输入增强系数(1.0~99.9):'))
! Y: [$ H) z8 ~/ H6 A
2 g. j6 n\" B3 A5 C- P, n4 x- * a9 K: ^5 Q# F6 X
- 7 S2 f* ^, y+ S5 U\" j+ h
- enhancer = ImageEnhance.Sharpness(img)2 h8 @/ @2 V8 j/ I
$ P$ S( W# _- O: ^: T7 m: e* ]
' ^* r9 f3 [9 _6 e! H; I' a8 k. x- 0 E! f, c) P1 |% n
- # 增强图片
: p) `\" m0 }2 ~; ? - 5 C9 n8 w5 m! G6 s2 V\" ?: G0 y8 ~
- img_enhanced = enhancer.enhance(factor)
7 H. u; c: Z6 Q6 W' S
/ {\" A) Z: T4 x: T- ( p! t\" b2 }& b) ] ]
- % J5 d6 t( ?: E4 S0 q
- # 保存增强后的图像
0 b$ E4 K( o) I7 j
' [: U3 m# ~: ^& G; s+ q4 C- arr = filePath.split('/')
4 h8 ?/ b+ V$ S6 c! ]4 [# ^( Y
\" O7 y& w, ]% T- y' m9 P- i=0
) F1 R+ K9 }: I0 D4 s# K! v
0 c/ }, Z3 A* x/ x4 a3 @- fileDir=''7 V: h' `3 E; Y* D/ _+ {5 H
8 W2 Q+ F& O/ f5 b9 `- len = len(arr)
/ Y$ V& o/ P& z3 p: c9 y
\" X9 a5 x; i, N( l- while i < len-1:
: ?/ ~; i [# Y$ u - % H( D2 y8 {# ?7 o8 p* Q
- fileDir += arr[i]+'/'
6 }7 O; v. ~9 x
0 ?$ |# D9 F! d( e( N$ J* D; S- i += 1
4 G+ R# h+ H\" m+ |% I+ I
, n# o+ m. v) | Y8 R+ R8 S1 D
# e; l# u- v: [ l- ; M* Z1 D' p! `! x% B
- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])5 M7 L' u1 r- c5 z\" ^9 i: }- e
- 0 ]7 S; ^3 P$ A* v' X9 w
- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:4 b% j2 a0 v( H) m" N% q% P+ h
* t$ e/ P3 P U/ ]+ B增强锐度- from PIL import Image, ImageEnhance
3 l3 J: d3 D* K' S/ x' B - 3 H: s/ W9 l% `6 r7 g1 p/ L) u
# S# C0 U4 g7 B) N2 r) n- y- : T2 }; ]7 n! a% a' @5 j, }. z: o
- # 打开图片
, t2 m( A5 z* a( m/ t - 4 K1 m- a& ]7 n( A& p
- img = Image.open('image.png')
' S- ^$ I/ [- _7 E0 ?6 C+ P
* D7 N: s' Q& U( \- + W3 O2 D8 j5 C [/ C
- # J5 o9 h% p( D6 Z; V+ D* i. M
- # 增强锐度6 ?3 _% y5 m I; n
9 f/ k* |& F) O- |$ O# i, C- sharpness = ImageEnhance.Sharpness(img)) v; ]\" C9 K! n3 x\" B. X- S
- % g N2 k, f/ o% M+ n1 t* T* v
- img = sharpness.enhance(1.5)
! Y0 y& }/ r4 T: P+ |& F
0 D: i, K* t$ H, l# u
\" z6 [: n/ Y+ k% d' V. s. \
6 J6 a5 M* u! A% T- # 显示图片
! j0 ]\" |1 S0 F - ) k$ ~# z6 j# P7 m$ z+ w
- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance
% A2 O, Y\" x( K; c
! }# P% ?2 v' g, @# \; f+ t
+ l1 P- g) H% Y( S+ s6 P) U- : ~ R\" L( x# G
- # 打开图片
2 @6 B B% h( P; F9 R$ C1 j - - W' z2 V( e+ d2 b2 ^( H* ]9 ^
- img = Image.open('image.png')
0 ?4 ]- e x) W' g: p( H - ) A7 H' v6 t* q\" w* T
- X J$ u) u8 r1 o
- ! t1 u$ n; k5 }# H( m
- # 增强对比度& W\" r: `, Z) l8 ^/ I\" Y! Q8 N
* ~! a, i0 f2 {1 W7 q T- contrast = ImageEnhance.Contrast(img)) P. A5 S) ?/ w0 T- G
! u: \\" z, _& M& P `- img = contrast.enhance(1.5)
% x0 b4 D, @& F1 L* e+ L( a - ) F1 A1 c- c1 b\" d
- 0 ?; H {4 u* }8 F5 d8 ]6 ?6 K
- 1 k- V. s4 n* ^4 p) W
- # 显示图片
% L* L* C3 F# t2 z2 T+ C! p$ t1 k
. D4 x( |7 T5 S- Z6 H9 O- img.show()
复制代码
- ]& s( \# V, ^, L# B |
zan
|