- 在线时间
- 481 小时
- 最后登录
- 2026-8-25
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7859 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2946
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1177
- 主题
- 1192
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件* o4 k9 u2 |9 @3 E& X
& M7 Z: i2 c( ^4 y- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))% l9 B. a9 f8 T
- ; f( T2 B5 ]( O. M0 B* u
- # 增强图片7 ? r! v( J# p2 [; g
- # C( u* s( f0 Y+ o\" p. g1 Q
- img_enhanced = enhancer.enhance(增强系数float) n0 U5 y# r5 f( ]1 R
\" F( N' l& J+ P' |& B- # 输出目标文件: t; r; Z\" ?4 \. G
9 H) l% X$ h# r- Q. }# `# R+ f- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致
# v1 w" K2 @+ n7 D& m7 N: O& ?" B) f5 m9 q+ O9 x
所需依赖
' P) F B {; m# b& X' u2 M3 H; V# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog6 b2 W$ }7 I Q5 T& |( f\" y7 l
% c0 o$ K+ ~0 I$ N, f/ v- # 增强
9 ?9 r' i: ` G. P9 Z0 g - & T, B\" p( Q6 ~* ~0 \% y7 k) r
- from PIL import Image, ImageEnhance\" d; q$ U\" E; k- e5 r& _! u\" W
- , D5 e7 b) L. k0 N* p( v4 I
- 代码实现* [8 u+ L+ e! O2 n( O- V8 N
- : U# c3 s! `6 V( w
- from tkinter import filedialog
( S6 f3 _1 f- i, k - ! I1 h* ~! ]/ z/ e* }$ P# _% C
- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
\" ~5 p/ q; X# Z- m$ Z8 a1 l; ] - $ P4 A( }) V5 Z
- file_path = filedialog.askopenfilename()
9 `/ ?; I& L: T7 v! i0 b - : B) ]: h; |: _9 a, H6 I
- # 在这里添加代码,处理文件路径
8 T& h3 `; x; m- O# \\" h& N - 8 s) C4 y+ Y( n$ b0 d& i6 r2 l9 b* m
- print("选择的文件路径:", file_path)
2 j- g0 a/ Z: k1 I E5 `: | - ( {: s) h1 j$ u& U0 f S
- return file_path
复制代码
% {3 j3 T' T\" m# Y- # 打开原图像
* l, p1 ?9 H\" |1 P6 r
. p* a7 p( _. y( w+ m$ S' W. r6 T4 k2 C- # img = Image.open('image.png')4 E' V9 l% A3 k, l% D+ }
- ! u* \, B8 z. @& x7 H% L
- filePath = open_file_dialog()$ d6 ~1 @2 D\" h+ p; N
9 L7 K& ?7 r* j( {- img = Image.open(filePath)- f# h; r1 u; p0 g5 w
. ? `# C( O! j% I: t. {- # 设置增强因子
# ^1 |, R7 B( X0 C\" [- @( B6 g/ d
( Q5 f( p0 m$ D$ k5 p6 h* B- factor = float(input('请输入增强系数(1.0~99.9):'))
0 m3 s; t6 _7 L$ L m7 Z- C
3 S. ^2 {. C% r( R3 }/ U5 Q' M- * k. S( y! B7 \0 H, J4 f; m4 \2 n
- ; L; K+ Z$ E U- f: R: y
- enhancer = ImageEnhance.Sharpness(img)- R- d/ k$ y* ~0 G, u\" t
# r+ E; |7 M\" ?6 L- ) T3 y1 h! D) R
0 Y\" u7 ]8 T4 e A3 F6 ^- # 增强图片
\" z2 r0 g& L( N - / Y) c6 f1 }& T; t; @1 j' o+ k( c8 x
- img_enhanced = enhancer.enhance(factor)
% Z5 A/ h: Q8 C8 V: n- {
/ V# c0 @. X7 C
0 }! B+ t! M, K- M; B! Y
+ z# ^# v6 v9 ~- g\" _- # 保存增强后的图像
0 z# a5 k, m2 a
* b& Q q* |( v& ^! ]6 b! E. b- arr = filePath.split('/')
7 K# N5 w, W: S# \ u+ V - * T7 ?1 p! L1 c7 Z- }5 S\" Y3 z\" U
- i=0
0 R7 w4 L o9 O0 p- W1 `& O - , |\" D- f9 F: {# L& Z, S+ w8 S7 f
- fileDir=''* p# l* |8 X+ x+ B$ f5 y' s
- ) ~/ ~( f/ n0 g' T6 n
- len = len(arr)* m. j& Z4 N! X0 [
\" N8 |5 O3 Q$ N\" {- while i < len-1:9 Q\" e% i5 ^3 F8 ~# a: d G
; z0 d) Y3 V& b: x4 q/ k/ Y- fileDir += arr[i]+'/'. B! x$ g0 l% O- }! }
1 Y% S( l) L. I8 N/ K4 h0 D- i += 1
5 f- r\" A* ^% V - - T9 T0 t9 n; y/ N- y3 P) z0 N- G
- ; P/ q- |; U8 P0 X( h
: b. |4 o! F2 T: [$ s) t- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])1 \9 S3 n; p: m1 t* C+ T
+ G\" K; s! |0 M\" R2 s& S. L- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:, h7 y6 u* E# i1 x; l
- l( r* d$ A: L0 h6 l: E2 Y' j8 d
增强锐度- from PIL import Image, ImageEnhance
7 v3 j6 _3 ^( x e, _7 }- `# J5 ~0 p' X - # r8 G\" q2 d, w\" N
+ d& v9 ^' [6 f& [' a& s; m+ f- ' n) Q5 `\" R% A\" T
- # 打开图片5 z- A( p8 f/ ^+ F; A+ y; E; s/ }$ x
* F2 q* R& o, F! J; s, L) G- img = Image.open('image.png')1 `! z; _& ]. z7 F- b4 i' Q. X
/ z2 X2 H, T% s/ ]# t4 [
4 z: G/ H\" {' O3 b- \" m6 B5 W- k1 \$ D# \
- # 增强锐度% ]! Z- h1 P6 {+ {# N+ n, [. D\" q' l
% p. I\" k/ q3 t* P' o5 b8 P- sharpness = ImageEnhance.Sharpness(img)
- P0 {. @% M$ y g# T
- v1 _& {\" T6 n2 M+ H- img = sharpness.enhance(1.5)
+ a\" `+ I\" S8 r - 5 H1 \+ s* n; P, Q; S6 D2 Y5 L
- : f) k' Y T$ l; Q7 ^
6 P2 i f7 W$ W& ?0 D- # 显示图片
b+ n$ U3 {& e/ H' o3 s6 z
, G/ y1 C# G3 l5 t) `. }- {- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance
1 y1 W6 N& N3 T( w2 I
( S4 v+ H/ Y+ `- 3 T0 J3 L$ k$ p$ y( M
- , p+ u' \4 m: O/ V
- # 打开图片$ A4 e6 Q1 i+ L& G
; u8 D* d; ~9 k- img = Image.open('image.png')
6 Y: w% p/ k2 W9 M
1 M U# S0 z* ^- i( U- ! ^# b2 v, c% _# U* U4 `& t
' b8 s7 O9 o8 q B6 C9 d3 J% w2 X- # 增强对比度& o* X9 y* _7 H
3 _6 }- \3 v/ \: t- contrast = ImageEnhance.Contrast(img): e. n5 d- F\" s3 h
- 3 q; G: j# m\" _# _2 q2 x+ A
- img = contrast.enhance(1.5); {1 f r$ ]3 B6 \5 z: q9 ~
- - @6 K2 s% Z% u5 ?
: R# t. k. m+ [- M t5 { k. q- 5 V ?# P, n/ w
- # 显示图片
+ |4 t\" f( O\" I- l, f n
9 T9 Y8 Q. L# J6 u @( @- img.show()
复制代码
" g& C: |0 K: R |
zan
|