- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件( \3 K8 ^7 G; Y# G7 Q& s# _! y
- 7 ^ ]; B6 Z1 P7 ]6 ^3 Z
- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))+ S. B9 F/ \ ^! [ D
- $ f* l0 M% T, \$ X3 ]
- # 增强图片! T! U- E- W' _- b\" \9 W
- p* i& Q/ c- x2 R0 o
- img_enhanced = enhancer.enhance(增强系数float)
( ^: ^7 p$ n5 l3 ~; `# C - 1 |' ?' Q3 V9 F7 |& y
- # 输出目标文件
# g! f# l0 ?\" @) X
8 {6 O I5 z% G# A- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致
R5 Y ?6 @- _5 @
2 f G7 d7 F+ l8 H所需依赖
! U0 A& G( e0 K* c x# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog3 |# ]+ y- s/ n& S
- ) ^: \5 I# F+ Q& R1 L
- # 增强
7 N' ]$ u- j0 k5 v4 N* T# J
& @: z8 m1 `) V\" f B5 ^- from PIL import Image, ImageEnhance
) C* p, s\" r9 c) _' R, Q
' @% g$ H4 W6 w6 b8 N- 代码实现
) I7 Q. \$ B\" \ g+ B( c - 0 y2 M$ g4 c, l0 i\" j( w$ K
- from tkinter import filedialog
0 g6 c9 [' R! \5 d+ T
% O) X$ r' \1 _- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():: M* k/ E' L2 O\" D/ P6 Y
- ) R4 N) P\" e2 l. t0 y/ \% }\" C
- file_path = filedialog.askopenfilename()- Y8 C5 {; d3 x# Q1 {
- , ?4 R\" d9 k z; H
- # 在这里添加代码,处理文件路径
/ l6 \% i( t' s' p$ f
& v% L* a; U% Y! f ]- print("选择的文件路径:", file_path)
$ g$ W7 x# l7 F9 y8 S; [) t/ A0 ] - 0 w\" o* Y6 D- \7 p8 f! @1 u; Y6 }
- return file_path
复制代码- ; J9 j& Z2 y* x
- # 打开原图像
( m0 ^. i P# G - 9 \; B! E. }/ @' T& X
- # img = Image.open('image.png')
( C- p, @6 ]2 W0 n\" Z6 w- n8 X
/ e) ^% Z# Z e- filePath = open_file_dialog()
! S7 p* m; t% H2 _ M& f; o - ~: J5 Q l+ j1 O- p
- img = Image.open(filePath)
2 X4 e. I, g5 d/ J - ; o- D A( Y& c- q* e
- # 设置增强因子! ]4 i2 H0 Y- i: q\" n! e
0 \6 q7 R\" Y3 Q1 p3 k- factor = float(input('请输入增强系数(1.0~99.9):'))
7 B0 G. O) h, m! E7 H - 2 M; B6 a% f; Z6 s' c
+ l3 }8 D( V/ \! O: c- 0 c' Z4 P1 {1 X
- enhancer = ImageEnhance.Sharpness(img)
& ~% g9 m8 G, V! E0 s3 Q1 y1 q; x - 8 s. l6 l1 F( j! Z+ P( H9 y
- ) L( A5 N+ G {! B\" f# M, |
k9 c5 a% @; P0 K; O- # 增强图片/ {7 M- G: r5 R# O
5 A1 S8 C' G\" C0 S8 ^ n- img_enhanced = enhancer.enhance(factor)
6 g* N9 [- H- c1 j - - ~' R3 G# ?8 f% f8 x0 [% ^
- # R' |3 G& E6 n3 f' Y: \
- 5 l, ^: ^4 t# f+ A
- # 保存增强后的图像, K- s+ J! ?+ T. l
* a' C9 J: J1 I2 n, S- C. x4 a- arr = filePath.split('/')
1 B. U: {\" o% H$ w& `
\" x- J/ v! \4 a2 D: P- i=0
\" P! @! b6 ?% H - & _- M: g. H' ~* i8 u+ I
- fileDir=''% U# Z c3 }, ]; L* `
& ?; G: d/ Z+ [9 _1 S- len = len(arr)\" ]& v7 R6 y. j3 `. |2 s3 T
- & m& l3 n! I: H, A! v
- while i < len-1:- Y% ?% D, y: j\" m8 n& D
- \" h+ B; m$ n8 \7 n7 R% V) b& H
- fileDir += arr[i]+'/'& |1 \5 O( y' C& }5 ]
- # B\" z\" o. d! I; X. A0 e8 P, L
- i += 1
1 d, `0 l6 e+ X0 ^6 j
- ~2 a( O3 Z. W, _
! [2 K9 g2 ? T+ `- - c q3 T/ u& X% v$ a: s' L
- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])
$ ~ k9 q# }7 _: t8 y6 [, r4 } - . X: v. i. v0 q8 g! Q) Q
- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:2 q7 [) x! A8 `( o
$ n- E/ q0 `, {增强锐度- from PIL import Image, ImageEnhance% @# W& f7 j; N! t
- 2 e. l1 a6 p4 H6 A( r6 y
! e O\" w: g. n+ u; ? _
1 m7 D% J+ [0 m8 ~- # 打开图片
- u- `2 T* ?2 j; _ - ( J6 ^8 \\" k9 T- r3 ]/ |) y4 s# v
- img = Image.open('image.png')7 J$ a! G5 S6 t$ z0 D2 d
; R- J. V6 N) @/ G
% h7 V& D) D6 I: t6 y' T; e- 6 n) y2 r. _3 R
- # 增强锐度: L9 i0 z% @, _
- + R( f7 b D8 Z) \3 s J
- sharpness = ImageEnhance.Sharpness(img)
$ T+ R$ R w\" _& Y# `( r - % o7 g) u9 q8 V6 o! I7 }/ D. ~
- img = sharpness.enhance(1.5) Y) B$ |) a, V& |& Y: P( m2 b
- # r\" L% W( z4 j3 W8 G/ K! J
- 5 S/ I1 q6 X' i$ F
- 3 ? H0 ?+ W' w8 F) V3 C/ ^7 z, H
- # 显示图片
* w7 z* b5 C9 A G1 a- r
! g1 k5 d8 [& k' K- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance; o# q$ s' V/ \3 x4 S
- 1 T* N# K1 d3 J5 {6 e
, G: C& N* X* C& ]% i- ; `8 ^2 C5 }& x/ A9 U
- # 打开图片& n* R) [+ A3 t5 _, q4 t D
- # O5 [- B# ] ~
- img = Image.open('image.png')4 H/ W/ ]; |) Y/ I: [
5 M( |$ Q9 R0 z- # B! i, x/ G3 t) C6 S; g0 v. D+ Q/ G
- 2 e3 G J2 P; L) F' c5 F
- # 增强对比度) c+ L \0 H& U0 \1 `/ M6 v
- ! O* W* `/ Y( R: r
- contrast = ImageEnhance.Contrast(img)
$ c) E, m# [! V7 Y - % v4 I) y% S& }0 Y# w
- img = contrast.enhance(1.5)
. F) Y& |: v& Q4 D\" `\" f2 r
/ B$ u2 y1 p! W: a: p
9 I8 K: S- E5 c\" u& {# |- ) v0 b& B4 @& {1 C) v
- # 显示图片
$ M& Q2 ^ E9 `9 o: B
% o9 E' p. @. A' J1 J: [: V- img.show()
复制代码
! _4 G/ c1 @8 G$ o: h |
zan
|