- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件7 W5 T7 r+ I8 T- Q0 Y$ q: A
& P+ t# N8 G2 T0 O4 [: R- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
Z% d( v, z( c8 ?# g
C4 q2 T; Z# ?) x0 k# q) o- # 增强图片7 c/ u+ T; H: P$ N$ b
- 2 i8 i1 B2 u7 z
- img_enhanced = enhancer.enhance(增强系数float)2 i\" S\" [0 m) P* p! [
- 2 @. a9 N0 t- s; A/ C5 K1 W
- # 输出目标文件
4 x% j: j; U, h; _ - \" F- h. o* I3 {; r2 F
- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致* Z6 ~( [9 I( Q. J8 ?
! R, ?( J- d; p0 p5 c所需依赖- v' {8 ~3 Y: [5 F. g' C. h5 j
# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog
7 a- _9 f$ Y% Y
8 r* Q: x, |( N% Y/ I- # 增强- n( s3 k; a% m5 J
- 5 q4 O/ F k7 u( _1 W
- from PIL import Image, ImageEnhance
* y2 v0 l- x7 p\" o, I6 [4 G2 D% ~ - , @% o\" i4 G% i) y3 x9 J* A5 u
- 代码实现
+ N& ~5 L5 o% k- d6 j( l
4 T. `0 p. K1 m( K) v9 V- from tkinter import filedialog; z7 G4 v* k$ K1 X: {6 \1 R7 K
- ' B8 Y5 P8 V4 A, p1 K' e! R+ O2 V
- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
1 l\" c' x: @6 c& b: M6 t - 3 u; j7 G% C& z2 C
- file_path = filedialog.askopenfilename()
+ z' T3 a! R- A0 l8 M3 ] - : L! g: J5 O( _- }9 b
- # 在这里添加代码,处理文件路径0 e$ M6 p0 q: b, p1 i! U; Z2 o
- 8 M( L$ ?$ J5 i. i4 ~
- print("选择的文件路径:", file_path)
3 N3 Z) ]$ J% |\" d7 }7 g- X
c3 _' B! @5 Q- S- return file_path
复制代码
8 G2 r8 U4 D! s: O- # 打开原图像
! R: h0 V; H\" x+ `2 S0 y1 ? - `5 f5 \- e! _( _
- # img = Image.open('image.png')6 ?/ |+ a8 R; B ]
- 4 L& ]. k8 g0 k' b( `: X
- filePath = open_file_dialog()
4 @2 ?% B\" {/ w& g$ A9 E% e - ) H8 I7 I0 y H
- img = Image.open(filePath)
8 H- p% M' s$ v
& E' C* K+ g) ^0 C- # 设置增强因子5 T) X$ P& f& k& v
2 P3 G/ h\" Q: w% {$ G5 P! d6 ?, f/ V- factor = float(input('请输入增强系数(1.0~99.9):'))
; u- @3 `( l4 z) V1 r% s
6 U$ e6 k. p1 x0 w- : D/ |& X\" c! i/ x! D( ~
- , e\" G( R3 w/ q' S
- enhancer = ImageEnhance.Sharpness(img)( y g$ B8 W1 h7 l* w2 O8 _
) i- o& q+ Q, W% K, I
. ?& |4 G- L2 n3 d9 t' N. Y! U* }% M
$ x; C; P9 z Z. G- # 增强图片
7 |8 c$ b8 U6 y - 4 m3 v* \4 L6 S! r, L% k b6 h
- img_enhanced = enhancer.enhance(factor)+ b7 t5 V; Q7 Q
- - [4 y0 O! J3 t\" ~
- 7 a1 J/ Q) m: T( T+ t
- # Q2 @( ]/ u: [9 r2 k
- # 保存增强后的图像
% ~3 W. I( u$ D. o8 O5 `8 c1 X
7 T+ f4 L\" R& `2 t& h C; C$ A- arr = filePath.split('/')) K\" D9 }5 M! N( x
. e! Z0 Z, q0 x7 y4 r; a- i=0
F\" e2 d) `$ A% D2 E - / }! B) U: F v4 }) ~% j
- fileDir=''
; u: h2 y0 j: ]7 {
9 M D9 h& @4 M- len = len(arr)! p; |; a) A# J8 F5 U% z% U+ e4 I7 i
- f0 s/ Q; \) }1 P' w3 n( @\" Y
- while i < len-1:
4 d# X9 ]! b* w6 h$ o4 y/ C, ]0 V
+ }* _$ ^ q8 c3 J- fileDir += arr[i]+'/'
& w( t w: ?9 H
- @( n7 O) |; Z( y- i += 11 {5 I* J h4 z2 @9 n3 ]\" P7 J
9 K$ i9 ^) x5 A6 Q- w' X\" V+ H
- J\" ^\" G$ D7 U2 x
+ c. ^: e! |2 k1 \6 m# `* V0 `6 J- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])9 x. P2 r' _- k, z. R
- * H) a4 {* O% O6 Z9 R9 q
- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:% _( n; L% i: k, t; O3 A
; c* ]+ x( i& k& a增强锐度- from PIL import Image, ImageEnhance$ E9 P7 m, I9 L5 O+ E
- , A# E: @9 ^. R$ E$ I+ |5 c% G3 L
; t6 e) ~* s) D! t/ P/ U
: d2 J- a O8 L- # 打开图片
. M& D, ]# q; {% C# N
; J' D9 U2 }6 ~& _1 E) O# r- img = Image.open('image.png')+ B3 x0 b/ {\" O! @- g+ P
- + G+ r: [$ s5 }) O e; ]
- $ p# c3 E: C! l8 e; [) s2 A! Z
$ M\" p3 a: v' P& [( L. c- # 增强锐度; E3 N: T' }: G1 k4 t: E' u% O
- 8 H. A# u% x/ x8 Q; g) `
- sharpness = ImageEnhance.Sharpness(img) [9 P8 d* }2 q& j2 N
- + ?# v5 d( I% Q9 i3 @\" O
- img = sharpness.enhance(1.5)
7 S+ e G+ |& B7 u! N\" @ W0 K5 ? - . o- n\" a3 Z\" x9 c
- $ C+ j% O( R& z3 v I' `
- ( z8 l# n: Y5 U- @! F& {
- # 显示图片
5 S6 u& a. _\" z+ ]) ]1 x
. g/ J* i' l, P7 \4 u- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance
0 c D. _& ^! F$ H( ~( N6 b+ | - 6 e\" f! u* R% O4 C7 {\" N0 f+ F
. a: g, _\" k9 j6 _* M7 Q6 t! C
/ A1 v4 X- I. e. ~- # 打开图片7 R& t7 ^1 `7 i3 s) j
0 g0 Y+ D5 x. m, v+ Y# |- img = Image.open('image.png')$ k- F/ K\" f5 M7 S. d7 x
- 8 M7 a7 k- A% g. {
- 1 L8 w) `( p0 _3 Z! K$ V1 V& k
; G8 y$ a7 Q: a- # 增强对比度$ _- I) t9 ^- e8 j+ ]- j3 j
- 8 N. _$ v' L$ C# P% _4 R
- contrast = ImageEnhance.Contrast(img)3 z, F$ P# t7 C1 k
) b( e1 q\" `% P4 B* V- img = contrast.enhance(1.5)
6 W9 v) {/ E2 ~' @
# T: d7 R\" Y9 v E/ r- 8 N0 F4 ^+ ]; a& u- o3 v2 ~- X
; g6 s9 Y. k) Y: c; P. ]- # 显示图片% i3 v R\" I- [5 n+ v
' ~* W1 x0 O9 q1 M- img.show()
复制代码 9 t) q6 h5 @ v: v( J8 {# \+ A
|
zan
|