- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件
- c: S1 f1 u\" _* q - 6 v# p6 O\" M\" O- u% r1 o
- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))+ \8 K. j# X8 E
- 6 }5 ?& r) T: e; [- J+ ~% K: c% i
- # 增强图片3 c! i2 U w- l l! I
- - w( [1 b k1 \- Y% r7 q& \& ^8 o
- img_enhanced = enhancer.enhance(增强系数float)
/ S# N: x4 I$ Z5 H9 t - # X# a# D! V( c* p3 E7 \5 W
- # 输出目标文件' U. y! `! W. `$ K0 R3 ^8 ]
+ T& I& z6 y1 d- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致
$ ?2 G J8 A: d9 `3 C% m' O
. \4 K8 c" P, L7 e+ r, O所需依赖
" q% M/ R- p) _0 W8 O2 L) R' W9 T# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog
2 M\" P# {( a) h: T* L/ d' P - 6 o% W3 R: D' q, B4 o+ g
- # 增强+ c* {1 R\" [$ `8 C, ~4 W
- 0 f& c; Z$ M2 w6 J, [
- from PIL import Image, ImageEnhance
1 Q- l: ~ f4 g7 H& x - ; j\" n. ?5 T\" x: ^2 U# }6 T
- 代码实现
! B6 P\" O0 \ v
# i, N) I% [8 v) y e& ]- from tkinter import filedialog7 ~3 ~+ c, g% t. I
- 7 H* ] Y' a$ s\" @; [1 n
- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
, ] x9 y6 ]2 E7 Z
; J4 n( |& B( X m6 G- file_path = filedialog.askopenfilename()
' ] o4 c- W$ q& g6 p* J - 5 ?: f; r6 I8 O* k& m
- # 在这里添加代码,处理文件路径1 V/ [2 Z* |+ d3 t: b
- \" j) n3 T6 ^4 @8 P
- print("选择的文件路径:", file_path)
6 r9 ?( l5 ~$ r4 B* Z( H
9 n. Q- j7 H5 S% n! M8 `# s, @- return file_path
复制代码
7 Z' T5 \\" D- v6 M- # 打开原图像
# V9 A5 T5 g9 B- A& d1 _6 M - 4 {. C4 `0 c# [2 t6 t
- # img = Image.open('image.png')
/ }/ B8 \$ G, T) q - V# |) j0 }7 x\" n
- filePath = open_file_dialog()
; @, s* D6 F\" q
4 H# H. b& p2 D. m# o$ ]- s! N; d- img = Image.open(filePath), T, x2 s. J) `0 M& z+ f
- & [- ] N* H: n1 ^9 \3 _
- # 设置增强因子
% J S\" G, z4 f# s; M/ | - 5 V0 G6 C( @3 [\" d. ^
- factor = float(input('请输入增强系数(1.0~99.9):'))
1 P1 Y9 v+ V% q: a* A+ f, h8 @ - ! V* Q$ d. V% V8 O2 @+ ?& g
- ; l( N8 _6 Y* [) m
- 0 K1 P9 M. \5 }- M P; f
- enhancer = ImageEnhance.Sharpness(img)) F2 B$ [, G: M/ O1 [/ q* E/ o. t
- ( q A! |! [5 W6 A! \
- b1 a$ @+ W1 l. v; W( y
- 1 q3 \$ J0 O& M5 j) U$ c/ q
- # 增强图片
: {+ X. S: s1 r8 y
8 h6 ]3 E: v. {' O/ j- img_enhanced = enhancer.enhance(factor)4 Z, Z6 L% d+ i9 q ?
- # c& {% O) q) P, [4 d/ [
- $ W5 y- ~6 G% X9 \9 _
- 7 K\" R+ W0 J& ` j4 ]9 n
- # 保存增强后的图像6 T5 U6 U7 A; w' b5 G1 [
6 Y8 y' ?7 K, _# W* Q. Z; _* t6 h* Z2 G- arr = filePath.split('/'). k. o& \! y6 _$ N: F Z
- $ d: p\" c% W( s, D/ j: i4 H
- i=0
0 S0 f3 l8 A: y1 q9 O4 n
. q4 _8 j9 @1 a' E9 o# O- fileDir=''% \- y0 o+ | Z/ \, ~6 u w+ R
- , M; x6 n: f& K8 \
- len = len(arr)
+ e1 Z6 ^: R' F+ W# @$ y+ Y- i0 Z - 4 A3 `. d( }4 d8 F; a; K Z
- while i < len-1:
5 C v; r ?; N& ]- \2 O' O
! [! E M1 ~5 \* c1 W& p. Y5 h- fileDir += arr[i]+'/'( m, L% }. u1 |2 {8 D
- 1 U; \! M0 }5 @+ Y/ \8 q
- i += 1, f6 U% M# v$ N& }3 p
- 7 f' _# A+ I4 {
+ e0 x% s* N# c: g
; I1 w/ n I1 S, w: q- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])/ y7 t5 ]( Y7 ?% C
8 A- g4 h; b\" }- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:
. y& t. z) u3 {8 ~2 z4 l
! j2 @3 t- ^1 p- e6 }增强锐度- from PIL import Image, ImageEnhance! x/ G\" j- C* h# N\" F
- 3 U b8 o6 k- W2 V8 S\" z
- ; x4 X; y6 _\" r# [; b
. M1 C. \8 D6 ]& u; O- # 打开图片4 G8 r( `0 S b& e% l
- ! s2 ^1 G p/ x! [1 {1 Z
- img = Image.open('image.png'): W& N% m, E/ |9 m! Y a/ b' g
' ?\" F- F( V5 c% _) p9 O7 _. N
/ K4 @9 n4 E: w$ X- d3 w- . H4 Z. A: F* p0 V8 e
- # 增强锐度
, m2 H9 e% x8 j, P - : z& q4 C8 N @+ f
- sharpness = ImageEnhance.Sharpness(img)/ C. H8 L8 e3 o C0 o0 z
! I' Q: J9 l0 a2 {5 f8 B- img = sharpness.enhance(1.5)
5 ^: H; D\" M9 w
& R+ A( R: I' D$ ?6 J3 x- D/ t
2 V: B7 D; h. R! C. H1 T% T6 K
) o& C- `# k$ u8 `% c7 s- # 显示图片
: B& n# S C5 d t; H7 q - 4 N+ _- f: Z. h9 y T/ K
- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance2 W, K8 ?, J# N1 D
0 z) P4 U/ A\" ]7 T8 ?3 i* w- ) @( [) f6 [0 d\" u
! E' \2 _, j6 N9 @- # 打开图片# R' N; ?8 k2 `5 g! O
- % I( H8 {1 D0 ]7 X: ~
- img = Image.open('image.png')4 ]9 q. G% j }* v
7 H. } Q# P ^
( H% v2 s$ L/ F5 r2 t4 I+ j- 1 b! |- ]8 T x$ f8 C
- # 增强对比度5 Q3 Y) [/ y- E& L* t9 h, Y5 B0 V
( K- ]7 @* Z# O e- contrast = ImageEnhance.Contrast(img)0 R& j7 \5 O* N- A& V
, N5 V( D# P# B$ L& i$ U7 U- X* R* b4 x- img = contrast.enhance(1.5)# ]/ w- i) l0 Q
2 q. }4 |4 h9 H5 q; C\" {$ C- , @, b* O, J h; k2 P\" f
' a0 \, P( }% {- U6 z/ ~) }: q- z0 |8 g* F( T- # 显示图片- V0 y$ s' S) ]. ~# g
- 3 L$ J% M2 c0 c6 R) C6 h) a c6 l5 z
- img.show()
复制代码
1 W9 F! R. M; ?5 b |
zan
|