- 在线时间
- 482 小时
- 最后登录
- 2026-9-11
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7953 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2978
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1183
- 主题
- 1198
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件\" y5 G$ Z# N( G3 L* a
- ! y# V5 Y- [1 R6 `# G0 u( Y. c
- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))9 s\" x0 n$ ^4 T' S3 U* R
- 8 N6 u4 a\" y5 G) z- f. x0 O
- # 增强图片\" |. P; M6 G: L. m3 H
2 Y# y4 A$ `& w: J. z1 S& t2 Z- img_enhanced = enhancer.enhance(增强系数float)- T9 C0 T. _- X
- 4 |1 i2 R( \5 I' {1 N# l
- # 输出目标文件
4 J u% x5 k9 f* [0 q$ ?
1 T! c( o$ O) H4 l3 C6 K/ G c- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致
6 @+ K9 u# m9 x3 [" E/ B% d) ~ H: |& i" {7 q M: \1 O
所需依赖
2 r( g0 I* L5 X+ e& a9 U. t. h# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog
% B8 }. M3 U# \& ], o1 } - ! g$ s2 `$ a1 k \5 m3 r
- # 增强
6 ]8 O# C6 o1 L+ s+ X# g4 r* E! R( e
- t0 S+ H' l M( \( |: x: `1 k: I- d- from PIL import Image, ImageEnhance+ S' S5 E2 \0 k
- 6 J+ Z. E1 ?, t3 ~9 Y5 p
- 代码实现
6 W3 H' ^ O! r6 e: e - c7 y& d! P5 e! y8 H
- from tkinter import filedialog7 X/ v, {3 n8 `8 E* U! W; t5 I* O
- . k3 P\" }) N$ p6 g$ t) T1 Z5 @
- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():6 G$ ^8 I! C* i, ]; L( |
- - w. v0 M# _+ q% {- o
- file_path = filedialog.askopenfilename()
( @, e. J3 f. c( v6 M# } - ' e: L7 s' e6 U) y, ?8 n
- # 在这里添加代码,处理文件路径
\" j) v+ m: ]4 Q2 f - 1 P& D! E5 g3 G c' i
- print("选择的文件路径:", file_path), B; W( ^+ b5 D\" u. U& i# X0 n
- 6 ^0 w( ^- m( E B/ j7 i! k
- return file_path
复制代码- # r$ r- G, Z0 N4 y0 w+ I/ f% }
- # 打开原图像0 ?2 }: n0 |5 P% e4 @, L. a
0 i6 T6 P! Z; j' r3 |, u- # img = Image.open('image.png')/ ]4 X) B- e& y4 x( h
- % G8 f- j- {7 }6 e+ r
- filePath = open_file_dialog()
4 ^4 j/ v' B3 u! X! V6 q
* z; O, k9 n' Z$ L7 q, v6 y+ _$ h- N- img = Image.open(filePath); V8 `3 L% |: }4 U
- - B, Q* D! f0 I2 s' Y
- # 设置增强因子
% e8 r9 W7 K3 J. g
8 C; l2 Q\" }0 n3 S! x) x- factor = float(input('请输入增强系数(1.0~99.9):'))
1 o4 K r% a/ l - 3 F( M: x0 q& r! A
- % K; ]+ r, h% `* w
- 6 J# W& ]6 T# ]6 B# o$ i: I
- enhancer = ImageEnhance.Sharpness(img)1 k* P2 C) p: R) r% B
- & \5 w' l- m& c5 R
7 e\" j8 x\" f, B0 ]/ j
$ |6 m) P. v* D2 h, _% D2 m- # 增强图片
. O( L/ u& [2 ~7 a2 e, f) ?( S, C. ] - ( }! F5 z; I( c, U
- img_enhanced = enhancer.enhance(factor)- e6 i& E9 c\" b
, |, C# }, ?7 U6 W7 l1 z4 q5 m1 O( N
/ K, t8 q' o& S8 C% n
; H9 Y d( `& v9 X: i+ G2 }% w- # 保存增强后的图像1 C) H; M( I- R; r! W& ?3 X/ y
! J# I# ^3 j7 x( q0 y) ^: V- arr = filePath.split('/')
5 L' c1 y& F) _% g6 N' s0 Q - 5 G6 S5 O9 X% @\" C# U
- i=0
0 {6 f& d9 P- v% E' J3 h
0 q/ G3 @. o8 P4 J7 R. T- fileDir=''% k9 ]! `5 `. A$ n: U
- 4 D9 |3 \8 l+ Y6 W; b% e W* r
- len = len(arr)6 t1 W& V- Z# w' k5 z _7 O4 M; c' H
- . j% k/ l \0 M, V) m- k0 c
- while i < len-1:
! w! y2 n P- \/ r- H+ F8 \$ Q' k\" m
. `4 c4 l( Q4 }% A, [- fileDir += arr[i]+'/'
?/ Y1 H& d0 G X+ v- ]
\" u& n- s) c7 k- i += 1
7 N6 r* c. ]. s; F\" [
8 H! d: O- c) P$ O; \
. y\" k! N) }( |- , F1 p' F7 @, c\" z2 x& p+ O8 `/ r
- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])& ]7 b2 l, ], A$ j
- ! \% `$ Y( X+ V' R5 @7 S
- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:! F: v' c6 o" G3 J9 g+ h: j
3 X! y5 y6 \; \. V
增强锐度- from PIL import Image, ImageEnhance5 b+ V& ~* {# }! L, Q
- \" X8 v& L7 f# b2 I! ^# r0 M$ w0 r
- 8 z/ W2 l4 n6 I5 ^+ q7 a! O
- 2 Q; W, K& ~5 [' E
- # 打开图片
! P/ M\" a/ ?6 u {3 U) A
9 K) ]% q: f9 ^- F0 z- img = Image.open('image.png'), Z8 ~/ S% A\" H7 g0 b* H
% Q5 S& O0 I6 g7 O
+ F) P3 J9 e3 ?4 _. s0 v- / @6 q+ w) R9 I
- # 增强锐度
w; B! M! {, j& ]8 {' c0 j - 3 l9 X5 O8 I9 H/ s
- sharpness = ImageEnhance.Sharpness(img)
! f9 c. o\" N9 H4 S( \7 g - # X3 r! A0 U6 @5 X& a* X
- img = sharpness.enhance(1.5) j2 N1 @& b* v' b% L( ]% d7 y4 O
% \4 y$ g- e! _+ x7 a
, Y0 U) ?. \' D& i* Z) {+ M' N0 N- ( L$ J+ u5 s0 ]) U$ \0 h
- # 显示图片6 o, k, {6 b; g9 K3 F
+ C9 P0 U) C2 r3 n) U# E+ k& b) |- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance- C) g( t# Q1 E* Y* a, ?
9 ?7 G* x8 Q: j4 ^- k# b$ a
+ o) L2 A) C: {& H- 3 x+ I* U/ I3 m( z& a- y
- # 打开图片
/ J- ~3 |# R+ M& D& ~' c; n. w - & ]\" X& `% G\" D) D
- img = Image.open('image.png')
, N\" `% }' _9 [8 z2 q\" c* d. ?! S8 r - 1 Q$ {. F1 i5 k0 L4 ^\" |$ P
- ) q }$ h! A\" b. \1 A( n
5 o2 a4 k3 i! k5 q7 ?: `# W- # 增强对比度
1 Q; C9 Y8 I5 p0 H! o) V
! [# d' S( B- I' q7 p; ` n- contrast = ImageEnhance.Contrast(img)* F6 e1 [3 A' H3 |& e2 n/ l) |, w
0 ^! ?- X6 R9 w- Q' d0 Q' N- img = contrast.enhance(1.5)! p0 Y: N( Y, d: B
8 ?6 c! J. F$ W- |8 R- ) [8 ]7 X4 K- M8 k! P
5 q: `% x3 y1 \' i- # 显示图片/ M% M$ q1 b\" H( @
/ ^7 f& K$ D, Y! k8 Y6 w. Q! l0 \- w- img.show()
复制代码
( f* i, x) v0 q: Z |
zan
|