- 在线时间
- 478 小时
- 最后登录
- 2026-4-9
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7788 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2922
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1171
- 主题
- 1186
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件
, K- j9 h4 B: ] - J6 Y1 q6 S0 f: j
- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
P j7 n: u0 S3 i/ m+ K: o9 X - 0 |, t1 C2 O3 z
- # 增强图片
: O/ d% _* L2 ^5 @& r1 s - 0 j B5 J$ z+ F! L
- img_enhanced = enhancer.enhance(增强系数float): }6 r- h& V2 }0 T. i
- . u9 f, a% a$ Y( H7 S- {% q# ~
- # 输出目标文件, j/ {3 `' G# k( }' w\" |8 q
- ! d' l\" l* f/ u4 ~( g% _2 B& a- i/ s
- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致+ t' A, u- W8 U) o) g" w; m
2 e' l: a# o5 G( I
所需依赖9 c5 i% f5 |+ \( `0 p' B
# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog
G* T0 `- a5 `, l. c
( p* r# T+ v+ A4 C- # 增强
2 e- m9 r4 O) R/ r - \" n7 j- v+ R( V6 A
- from PIL import Image, ImageEnhance
: \# Q9 ^+ r; R& e9 J9 A/ q
- I: P! N# n3 Z8 H- P3 V- 代码实现1 I% H7 y% O |; I2 Z3 C
& A9 S9 @* O5 o7 U9 T) ^% j- from tkinter import filedialog/ q% d5 C# j# n5 O5 i8 _- U' @9 q
h( L) Z% E1 w- O8 x- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():1 u4 _1 N! M, g( d
- & t+ ~0 v6 A$ B/ B( M3 K/ O( E7 Z
- file_path = filedialog.askopenfilename()
2 w4 z! g6 o+ O5 O4 s: \ - s; G4 g' X2 b0 z; o
- # 在这里添加代码,处理文件路径
6 H! C7 J# s& }$ Z! ~6 z
8 C. A! {, F8 G, N. v, |. D- print("选择的文件路径:", file_path)
\" Z2 J5 x! _4 w/ T! K
/ j4 P& q! X8 k6 B# y W* h- return file_path
复制代码- : e\" T) f# S\" u/ h% ^. P6 G7 {3 v$ W) D
- # 打开原图像
$ a; V: {: [$ F( w% g - 1 |. j; e, Q& Q
- # img = Image.open('image.png')
/ d- I4 E, t) l9 l* f
( W6 ^- T\" `; i- filePath = open_file_dialog()1 v+ r% J, ~. Z9 j. m
- - J' X3 `4 g\" k4 Z1 m1 {
- img = Image.open(filePath)
. Z# S\" X) f& C. C* d# `
# F) N8 s7 [: P$ i; E& D- # 设置增强因子9 H5 r& J y7 u& @+ m2 Q
9 \3 k' h% O, U\" x- factor = float(input('请输入增强系数(1.0~99.9):'))
# ?' h3 L/ E4 f9 b' _
! h' u# T, b1 J; p' Z- q
' I& |* h% G. K) X2 g+ U; r: `- 7 q$ B3 ^9 Z: S9 A- B& X. |
- enhancer = ImageEnhance.Sharpness(img)4 T; p( T1 ~. H E7 d. W; n9 R7 D# A% S
- 5 b' A+ K8 e& a, {, `
\" s0 L: Y: F4 W4 \- W
; I* G% L, e q# u- # 增强图片
* E0 V2 s# d+ X2 x8 B& Q& g - 0 o- g: r3 ~, W) f* N
- img_enhanced = enhancer.enhance(factor)
9 y; q8 Z, C$ R - % C9 D) }9 o; q
- ' @\" S/ X+ j/ l- v\" S. R5 q2 q
* d\" x: {6 b. O- E% ^- # 保存增强后的图像6 y, C. L/ y2 C/ Q) L\" q3 q' h
6 ?& }2 s$ N- I0 V: `1 d& G1 T- arr = filePath.split('/')
. o) z* O: `6 s - 0 v5 P' I* T; p8 N\" }$ K U
- i=01 ?$ n. a! d- `+ W\" n! f
- & ^) N& h: \# ^. H; c; i7 w
- fileDir='') ^2 _. v- b; @7 G( `\" b# d
$ p# |$ W: R8 n1 N1 N8 X- len = len(arr)\" h6 E8 r4 B& H. F, G& \4 V; b
- 8 K& j3 ]% G% T4 I* E
- while i < len-1:- u+ u9 y5 [7 X( O3 Z: ?& Z
- $ D: ^& C. d0 Q+ ~# A
- fileDir += arr[i]+'/'
; `! W- t, ?9 G
\" x7 N\" F( m- \% W# v* p0 o6 q- i += 15 d: t/ v. B: q5 j* L
8 H( b5 R f% f7 i
$ f% W8 w, R) \& G8 o
( w; |' [0 o2 _$ d8 f8 u- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])3 v1 X. y' f- E& `
( l9 k3 m- ]; T! ?+ Z( C9 d- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:& u$ N" U& n+ v, e- B% p
, _; Q" k1 t8 \6 K$ f
增强锐度- from PIL import Image, ImageEnhance6 s3 _1 K0 Y* s! D* d
Z8 z6 B1 \5 H$ ^7 `
8 S; F+ O+ G\" P7 J# T9 q; H\" c- , K/ ]7 G3 g1 U+ \4 U% Z
- # 打开图片
. s( p+ B6 t. ^3 {; t
' c- a8 r$ y: H3 l- img = Image.open('image.png')
1 r9 t) T8 [/ T L4 @
: r/ L4 A# P# F& H: v\" P9 \1 J b
; t L: E5 t! G' }8 c
, y* T) d9 o6 w U- Y+ e- D$ l/ A- # 增强锐度4 n/ h. W! a: O3 S- w\" h
) q% w4 C* {! q1 W3 y o- sharpness = ImageEnhance.Sharpness(img)
' q ^& h* A1 F$ z9 h: x P - Y. ^2 I3 T$ M$ K
- img = sharpness.enhance(1.5)
4 e/ m( t+ N* K& J9 Z
# V8 W9 Z# A5 }, K6 N. ?0 E
* i5 q5 p\" i2 s
4 y. V& C7 B/ Z8 t& P9 H1 p$ s- # 显示图片
) q6 P' m/ b* d& Q - 1 m, L: {0 A% J0 R
- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance/ ^' Z3 x) ]3 I; Y- u/ V8 K
- # V9 X2 t/ T- c# D6 H0 K
- ! }' Z5 U' g! v* c: d* s
- / ] v# n* ]5 k' e9 m: m# l
- # 打开图片
7 o9 p5 p$ B3 U: m; b - * h5 S6 Y8 E. D9 V. M& p# E
- img = Image.open('image.png')
- c6 C; @3 z9 i% p- D
6 W9 I; I7 k; v! g/ Y- # b. c5 q/ D. t; Y, H! i
- # a\" L3 W\" N' l
- # 增强对比度, ~7 v6 T; [( w* e# _, g
! ]5 q$ {- x5 g& H\" H( b$ W- contrast = ImageEnhance.Contrast(img)2 e* o$ y1 n) W* L& r* M7 j
% I9 u! B4 `\" m& V$ }; A- img = contrast.enhance(1.5)1 d$ u& L+ g2 M
' j1 y% H* X, C- P$ q\" ^1 ]7 t6 A# j7 `
0 J; n; r% U8 L7 f' b) k- # 显示图片
3 A9 s6 V: }# c5 n3 X - 4 i/ Q$ _\" h\" V: Y
- img.show()
复制代码
5 p* Z# Y# \" u |
zan
|