- 在线时间
- 482 小时
- 最后登录
- 2026-9-11
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7949 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2976
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1183
- 主题
- 1198
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件8 k' i/ ]% a+ }& h `
- ( l9 W' V* Y) x4 w1 }
- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))3 g0 Y2 Q; R\" I, {0 P
0 s: {- @\" T% ?* d5 L3 t- # 增强图片
% t+ {# S3 B) X0 i- P1 ` - 0 C7 ~, h; v, m+ c `( S
- img_enhanced = enhancer.enhance(增强系数float)
- Z( E* `& L- Z- w( ~
+ w9 Z/ f: D( T2 _- # 输出目标文件6 O3 h/ t2 `, T, { ~) N
4 v! p; c$ J: X& _9 t2 N) |# q- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致
8 W8 c, n5 C' s
8 J, q. W) ?8 v$ |" j所需依赖; {5 ~9 B3 w" k/ o! l' ^+ N
# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog
( t# ]\" n! ~% m; G: r
$ o y9 }8 j0 |) @9 f9 L- # 增强
5 ]1 }3 F7 x/ Z\" h' P - & N. l6 A' y1 E9 h7 m: C7 y2 _0 O
- from PIL import Image, ImageEnhance
% [* }# z& T: a! j+ X1 q- ?( F
! o' c8 a% P. N) `- 代码实现
5 k* b& l- T7 x# r
& P2 @% Z; Z\" H: w0 e. {- Q- from tkinter import filedialog+ d- e0 k' p! x9 L. W
- % j3 Q% r! c4 }! g8 H) V+ c+ I
- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():$ W) s2 t8 U5 Y9 `. Z/ D\" g; f8 A2 z
; Z7 K* F2 P; z1 N) G/ p$ I5 N' A- file_path = filedialog.askopenfilename()
% ]\" e1 O3 }9 V4 { - + e; S* O% \6 B4 n7 |$ B7 i0 r$ s
- # 在这里添加代码,处理文件路径
% n9 F6 P- {( i* |; s3 W( T6 z5 f - \" k& i# w0 c- @. O6 f* e
- print("选择的文件路径:", file_path)\" X! e- i9 j7 {9 L
- 1 S- O) B1 [! q+ X7 Z% k& Q
- return file_path
复制代码
. p- O* w( y3 O+ J- # 打开原图像
1 J5 t) ]( H: l. v/ q% t
0 z+ R9 r7 T8 _. P* ]2 v- # img = Image.open('image.png')
6 R' W9 a7 d) [: i# ~& f - ) b$ F( \, Z4 O2 G: X
- filePath = open_file_dialog()
4 w8 c, j# r- m& B3 G - 8 q, g3 Y- x8 N
- img = Image.open(filePath)
% W! P6 S$ b- C0 J3 h8 l' `\" _* Y - ( X\" ~' |2 t- n) `# X7 W& U1 x\" p
- # 设置增强因子# ]4 \! K: M; u+ B2 i: `* I
- 6 U4 }8 I0 Y* W |
- factor = float(input('请输入增强系数(1.0~99.9):'))
5 S( X7 `# k5 I# }# s1 C0 R - 4 i3 S* N* t& Q+ a- }9 |7 p
4 A0 J+ n- E: y# W6 W3 i
: q1 p\" R/ n# _$ u; Y, w- enhancer = ImageEnhance.Sharpness(img)
; ]+ A) o. T8 C' } - , g X& p7 V/ z9 H6 x+ t
\" A4 S; ^5 \1 B
\" l# R3 n$ r [4 f- # 增强图片5 w1 |) u+ R W- p\" S |\" x
, e& H: ~$ l6 @2 L; y0 q) \8 r- img_enhanced = enhancer.enhance(factor)( H5 v* n5 [6 h9 t* |
K: W0 D0 b' {- [- ' w! W/ U9 I4 a. I1 R, C4 f
# y6 B& C' \/ S \2 D: o/ U- # 保存增强后的图像
0 y; Z7 @, {- I4 T2 | - $ G2 Z3 m2 o, r' s
- arr = filePath.split('/')
. J& q, o; G. z/ I D0 i - . n1 I E$ w# ], a5 X
- i=0
6 b\" T9 m- |% T2 b6 N) r- C: I - . Y% a- x9 b# e% a8 {* E2 T: y) R
- fileDir=''
, r# K' r, f S6 [0 M0 b1 {! D\" H5 y* P - * F% T# D% t* B2 B+ T O
- len = len(arr)
p& C$ r' u0 U
: \/ }, V- i3 }0 a5 y. E$ @( y( S) E' {- while i < len-1:
# M# c3 t# D0 ^/ u; P, Y# _ - $ F4 O8 N+ V* L$ @\" |/ l
- fileDir += arr[i]+'/': T( l0 d* _$ J; z
- 9 v5 s$ H! Y: f. X: e8 }/ k+ [6 q, v
- i += 1
; z\" M8 L7 ~$ S: [
0 e' w g$ p5 A& L\" g }
. M! G4 [- }- n- * o/ t t' Y. _5 J- U$ U
- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1]) \8 f4 l9 q/ H8 E
$ G3 B9 }6 j9 o: e! B7 y% i- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:
: E6 H/ F! r7 I+ ~, p5 l; X8 t% o V7 g( n
增强锐度- from PIL import Image, ImageEnhance1 V% l\" @/ d, U h: w
7 H5 P1 [8 Z8 |\" a# D
+ \3 N3 M+ Q# e+ D& o0 f+ m- 0 y. O) \$ H0 {, L5 G
- # 打开图片
( ]3 X* E& T1 w% x
3 d& ?2 A1 F' L4 v3 k! B3 B/ `- img = Image.open('image.png')
7 a8 G3 D. R: P: x9 P: q - 1 t+ G+ H\" h0 B k
- # S; N- i& [% {+ p8 U/ b5 h\" P
! ?0 a' C% R5 n, J- # 增强锐度. A* v6 N/ |( M
- . g2 S& o6 j, F\" M\" B+ j! w) }
- sharpness = ImageEnhance.Sharpness(img)1 k G% o0 M: [8 i) J2 `/ i
- 3 z# B' C2 e ^4 a
- img = sharpness.enhance(1.5)
8 d( ]! D) P! M3 _1 @3 S% C, J - 2 P8 M0 Z s\" ^5 a# J& e7 ]& x3 o* d* N
0 s3 o5 n1 M# z. D- / a$ f* v; y) z4 u% K
- # 显示图片: q1 I. n\" j( X7 Q A
- ! x1 s7 ]' r1 I7 S
- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance
\" B, D# F& N# ]+ d9 g) ?! n
- {- ]% X1 W4 h) X. j
8 K4 v4 C1 s4 n2 ?) o- 0 L/ R' A2 I& e7 i
- # 打开图片7 x( i- g2 c2 \- ^. l
- 6 I3 K* S8 P5 Y
- img = Image.open('image.png')/ T, r$ w0 R5 D, v
- 6 {, l# w: A1 B4 z+ _
2 F- Y* l7 R4 t! L9 k4 P7 Y- ' E1 U: Y9 Z0 R o8 p
- # 增强对比度
! t( |8 g, {, \ - ' V! [\" a4 W\" e! T J5 u, x
- contrast = ImageEnhance.Contrast(img)7 C- `( @3 N' O# q\" [( K1 a\" f
- ; w0 f$ q# o- @
- img = contrast.enhance(1.5)1 X1 z, ~\" e( i6 ~4 e
- : a; ]\" T* l. T* j1 x& G+ u
- : J f3 ?+ t( m7 s( u
- $ k, w1 j8 s) N
- # 显示图片
! N! q9 N/ T$ k6 p5 e\" ?0 L+ G& P' ~ - 4 h O9 I# l% V4 _7 X\" @
- img.show()
复制代码
1 A2 H! ~. ?, e. u7 {2 O- {1 d |
zan
|