- 在线时间
- 478 小时
- 最后登录
- 2026-4-9
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7788 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2922
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1171
- 主题
- 1186
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件
- S3 B. J' M1 h$ h8 N
% \ S\" y: r5 a' J+ w# |! N2 M3 F- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
( R5 S! r: ~% o: h& z
9 y7 R& s9 |+ p- # 增强图片
! ^& q: y( @% I% u
! |- G: e. J5 d6 [$ S: w7 [\" l- img_enhanced = enhancer.enhance(增强系数float)1 L2 w* b! X4 w' M
- : k% V: m6 [: r# K* _( z+ P
- # 输出目标文件) ^0 @2 ]4 L4 m# `6 D
5 P, I\" c7 o) r4 A- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致& }0 O% N; V# H5 M
1 \/ t1 o) E! l- q- u
所需依赖
: j. q& W7 Q& f3 X3 N! ~% y# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog( ^2 j S# r2 o6 m
- ) E\" O F5 ^% N/ d) C5 G
- # 增强
2 ?$ Y; t% t) r# _
7 p4 |0 A( w9 z' a7 E\" O- from PIL import Image, ImageEnhance
) I1 N5 m7 M0 ]. M - # f! h+ q: H$ ]: B3 Y6 f ]+ q1 E
- 代码实现! E9 p& G# n3 e$ D/ l. e! L
- 5 e6 x; \, k7 l' _* l' Y% n
- from tkinter import filedialog
% }0 ?+ P6 |5 n0 W - ' O1 \\" ?3 o- P. P s7 |4 ?
- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
\" Q+ y+ S3 @1 H' j3 f5 y9 B4 H
t. Z' F; P8 @: D& }$ `5 f7 ?' j1 e- file_path = filedialog.askopenfilename(); {, H0 F, e/ _1 m6 s: r2 w7 |3 n
3 R- F2 m/ X/ G; F7 }4 I* D- # 在这里添加代码,处理文件路径 _( s! m a& }6 T$ ?2 ?# v! l
- 3 G+ Y/ \3 z8 w9 k+ @6 V3 v
- print("选择的文件路径:", file_path)
5 \8 r; c+ g1 e* K% D - & y& \, U) t t: B( ^ M
- return file_path
复制代码
5 f- H$ _# Q# q4 ]- # 打开原图像
! \7 e, j& A\" h7 R/ j
$ R; T! _% f1 \! J5 I; \4 {3 ]- # img = Image.open('image.png')- @' w& k9 v1 b0 t$ [$ i) J
- ) k* ]6 z4 n, p7 {3 R+ }+ G1 B0 n\" }
- filePath = open_file_dialog()
% B3 o Z& ]% s! a
: [( l- d$ m' d6 G% L- img = Image.open(filePath)
\" H {) i r- ^7 l% ~ - % L2 P H( \8 k6 q) `
- # 设置增强因子
5 N K# J! G2 P0 T$ B$ S7 ?' y
, L3 u& i4 X$ y5 s- factor = float(input('请输入增强系数(1.0~99.9):'))
1 O6 z7 E4 A+ |) ?$ X! e9 D
% s( C+ `) L* f' N2 A- * q1 z8 F9 k' @: V
7 d' B2 t' r- W7 ]- enhancer = ImageEnhance.Sharpness(img)
$ h9 a5 V. i5 E0 V& _
! a/ r; C1 r2 j- . @3 Q2 O ^- @
- $ \* M( [8 l! U9 U; R
- # 增强图片
# @# y) I t9 u5 d2 \1 C C/ s - 8 T! s$ b5 V8 C1 X
- img_enhanced = enhancer.enhance(factor)1 ~\" f$ ?: \$ l7 c7 M\" c7 V' c) P
A) V. i7 F O0 ?' d9 U- G
( [: B5 l! }# Z$ a( D( n3 o
/ @1 T) |2 y6 l0 D- # 保存增强后的图像/ a9 o) @4 ?9 ?
- % ]4 ]7 a0 \. a
- arr = filePath.split('/') {( M$ {5 N2 C$ {; ?
- 8 s$ i' S, k# E! h& G& }1 t- t
- i=0
' K `2 J W5 i7 o1 ^5 k
6 @2 {3 {2 v+ C7 j- V; K3 ^+ j1 N- fileDir=''$ m/ V7 U+ t\" S( @) }' }
- ! B/ |& w: M; b! B3 ^
- len = len(arr)3 ] t5 l3 q: N/ `4 T
- ; p( v x- S; z6 X$ Y* X6 ]9 |- k
- while i < len-1:
1 k$ E( _1 v\" o9 L w) q
* |, \9 F7 c; f/ J6 a- fileDir += arr[i]+'/'* X7 v3 L1 f% b+ r
4 k! J/ E9 C5 i- O+ b2 b- i += 1' T$ ]$ e0 Y1 i$ E6 [# O
- 7 B2 v8 d, Y9 W4 Q% x' }
8 Q& B6 N; U5 a. V5 ~( U1 v7 d- Z; |) w& l. @+ m
- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])+ i/ W. \3 G D& G' Y# L
8 V( a% }4 t4 o- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:
! g) G2 D8 i7 y8 a" C4 a A* }: `9 z8 A
增强锐度- from PIL import Image, ImageEnhance3 \1 g) Z& y\" T- `
( Z* j A! E' X. W. T4 t8 F' c5 w
; N7 P8 U: T\" Q- k& H0 l- U/ w\" Q; G( H N; m; s9 |\" d. v
- # 打开图片( @9 K* G8 R\" P\" j) z
9 U% g. X* @( D- img = Image.open('image.png')
' ^ M* \5 Q- B - 5 e8 \8 R- {. Y ], K$ Z+ V: u
- 5 ~: K6 M9 r1 U3 J) F: V4 F
- f/ m4 n4 q1 A
- # 增强锐度
; h; x0 _, c' i3 S\" b5 s5 w3 j
\" r2 Y. f3 y/ V* K3 |- n- sharpness = ImageEnhance.Sharpness(img)3 q& u% E6 [- Z- h( A
- 2 [5 G9 h' U9 P2 [# |0 R+ t) a! ]
- img = sharpness.enhance(1.5)
9 ]. u) X) e2 ~* g\" u# O- z - + R/ Y, W; Y# g9 L0 G* U3 T* g
- + n: _0 e\" ^' m\" k. U' W6 j/ d
- 3 k0 E9 ^! ~( W* `* B2 u, N
- # 显示图片
: H& _: v+ J\" G7 K! y - 5 B1 }: B4 |6 C* V0 j
- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance
6 s) G- c0 c\" {: M& k% R
; m1 O0 Z! q$ B
, x- N! Z, \9 o- 7 @! g' {9 @/ L: ~6 T+ t2 o5 p! a. N
- # 打开图片
6 }9 E9 d1 f% N - 5 L# T. u1 q+ E- {, o4 j, _
- img = Image.open('image.png')
8 V2 R7 _7 I' H- i
5 u/ B0 N+ k* z& A
/ ?: r- ], s5 w
- ^# H! Y6 U) \ B/ j6 Q0 \; X- # 增强对比度
3 l; I) K. l7 x4 V( K4 t% @ - * h$ \4 D! h8 X/ ~
- contrast = ImageEnhance.Contrast(img)0 L, W. C* O. t
3 V; Q* |7 x6 f; K1 p6 M- img = contrast.enhance(1.5)
/ O6 K$ z$ [+ S5 I9 @
7 }/ t. y# e0 c/ Q! q7 h4 D$ j- ' D3 T4 i+ C- ]# k( R- k
5 Z# l5 T. a\" m& v# j: j5 r- # 显示图片7 E9 N\" X: T3 l6 I7 o
( I6 T u3 ~* E! Q9 h- img.show()
复制代码 % K& \& C5 Q8 K" m6 f. {" C
|
zan
|