- 在线时间
- 479 小时
- 最后登录
- 2026-5-9
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7813 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2931
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1173
- 主题
- 1188
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件
8 G6 f, p h+ K: I, W: ?8 n
6 i/ j1 E0 S# L3 S' C& ^\" k- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
6 B- b3 V. c. }( c b% f, P - $ q) e8 F# W9 K
- # 增强图片9 h+ g8 t# z3 f K
- % h8 ?4 l' B+ J1 r\" J% g1 N% y
- img_enhanced = enhancer.enhance(增强系数float); O: U4 k' ~+ X; ]& I1 h: U
- ! [( {) Q8 v\" g% r
- # 输出目标文件
\" E+ ^/ h! p\" c, d' R/ m
& Q1 z8 x o5 H5 `9 E4 ]1 ] n, P8 w Q- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致
$ c4 {; H, H; Y2 j6 F3 u1 S
& N \# g) n! ]6 z9 o所需依赖2 m* \& u/ W/ _5 Y' ]7 e- J
# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog! W6 h\" l3 `7 S5 s0 w7 D5 H
3 H) ^) L2 B5 z( E- # 增强* ^% D+ Z6 ?% V% l/ [
% f1 D. {, g8 D/ U# y8 n+ ~/ {* s- from PIL import Image, ImageEnhance+ m0 ~7 V b( a) y
- . E6 a. [* Y& Q! }5 H3 O
- 代码实现
\" ]/ }( Y( q+ P% [
8 y% k\" k0 M' E- X, Y2 K- from tkinter import filedialog
1 G* b. {; o1 n2 w3 j- g2 k
) m0 L% b) J3 p; h- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
9 o3 u, e% q+ u( E- d' {6 [ - ) I2 a5 {5 @7 P1 e
- file_path = filedialog.askopenfilename()9 @, Y( m0 Z' A# L' B6 h- h
- : q' v2 M* j. V. e M8 c
- # 在这里添加代码,处理文件路径, O4 ~7 {) {. _% l4 M) M+ o
x0 Z6 F/ i3 g9 q6 {\" C$ H) r- print("选择的文件路径:", file_path)! j* g# M+ ]# e$ e! Z0 i
- + m\" `1 D$ o/ w& @
- return file_path
复制代码- 6 R2 s3 I0 o+ L3 j2 ^
- # 打开原图像
7 W% [\" J( Y5 Y7 R y4 W- O
& I( s5 u# w4 R5 M3 ]( X. F/ ~: U- # img = Image.open('image.png')7 L4 ?1 W/ X9 E* y/ _! n4 G
* O\" w1 |# U1 l3 s7 L- filePath = open_file_dialog()
3 a# O- N) j! `& _' S\" X
! T6 b& G& Y+ G' J J! ?) }- img = Image.open(filePath)- S* @* ~) D' ?0 y2 S/ x. H8 G
# ~0 I% n! `4 F2 N4 R! R4 f- # 设置增强因子
6 s; W F\" }, ]. V! C- E# z: ~
' h+ v' w3 ~% C' z( g8 i4 f6 q- factor = float(input('请输入增强系数(1.0~99.9):'))
6 v6 ?; ~, s$ l$ R( B( K# r\" k
/ d8 k2 U; H) k Z, e
7 c' |9 a# h2 v. t\" H
o. w9 o. y0 v. T% S( N! B: t- enhancer = ImageEnhance.Sharpness(img)
. i' Y) S7 K: b: J; }4 H - % g, h& S/ b) m: d: v3 _
+ a/ Y% K8 h! M& y6 z4 ^* ]4 t9 f
5 h% n) C\" `2 \6 S/ D- # 增强图片0 V$ h( d8 ~- J- H
0 a p8 j# J( @* g- img_enhanced = enhancer.enhance(factor)
2 C2 E% Y3 a3 `1 ]' ~ - 0 C' H/ x7 }: N' \3 s$ N
/ ^5 l, Z+ i J( t' ?- 1 F' ?# X% v7 c z3 m
- # 保存增强后的图像
3 u D+ z; c9 s, s! ~5 h
' m' S7 n; C0 Y* z5 S2 U- arr = filePath.split('/')9 `2 y+ u+ Q/ p6 A& d2 B. F- V
+ h7 B. j# @5 h) }- i=0
9 [6 Y\" B3 L F% M: S4 b& f
3 |' \4 `2 d4 \8 G\" N2 f1 K+ K/ K- fileDir=''\" h2 x9 {8 J; G/ f9 d2 a
( ~- `* D2 a* ^\" h- i- len = len(arr)
; @2 y\" }6 \3 E) p1 g
L. r s: R7 y9 g1 ]- while i < len-1:
7 \3 T$ j+ E# a2 ?. E
% t* V+ z) K4 {0 J- fileDir += arr[i]+'/'
; D# [8 l& J/ ~. z) v
; k8 {. h: h0 O9 ]- i += 1
) p6 G2 A. F$ K# Q
( b1 D4 E; ?7 }1 D' A# U- $ v% A( K, x5 l! I$ S
N\" g3 Y5 x O% M# }- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])
5 a) R' T6 m7 q - - ]$ W# S2 Y( O
- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:
* i6 L1 L2 g# I! W/ _5 }' Z
# F j, [5 w# L. x增强锐度- from PIL import Image, ImageEnhance; Y5 U) Y% t: A% ]9 o
- , O- j; I8 P9 _/ R; N5 J
2 Q+ J6 ?7 }* I+ S) a- 2 ]! e: r* T- d7 X) S2 s0 s& c
- # 打开图片( w8 F- F b9 {7 m% i1 s+ p! ^
0 X9 X/ R$ v- J7 u- img = Image.open('image.png')* [6 f0 R# b g1 H
- , z# d* T& A3 u) l
- ) ~9 l* O1 d8 ~- z: \; P
/ R8 `) S8 D/ F: f) z' i# F- # 增强锐度# H: G) z! e; O7 l8 Q, l& W5 B2 L
5 o2 y1 n) Z) @- sharpness = ImageEnhance.Sharpness(img)' }* o5 h1 O5 v0 ^* X' S8 C( e
# Z( ?8 C6 W9 e( @. Z. A) v- img = sharpness.enhance(1.5)
% S# J7 z+ g6 W# i2 _5 D
b\" I! t5 @$ t- ' n) Y$ P9 S/ R; ~. N! K3 B( P
- 3 I$ F: V8 u6 r
- # 显示图片
# _) G0 a$ }/ h- x9 G
* L% n. V, u$ n+ I' ~0 x- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance6 K& F4 X\" c( Q) d1 L; Z$ I% ^ o, ? I
# M4 Z H3 w\" Y3 Y4 U
7 F5 F1 |& i! t/ q
3 f# g* K: y# q1 w ^- # 打开图片
1 V' g8 |5 p$ V\" _- I C* ?3 M# J
) ^) v$ H9 T( H' U5 o$ n- img = Image.open('image.png')) j, k0 I* k n; O
' n+ X1 y$ G4 ]: V O( c ~0 `/ i- . p& l9 y- F# r# I' r& T- p
- M' j. v+ G0 b; Z
- # 增强对比度: Y7 p( Q( S/ v5 C; |. k
+ R4 N. V! ~3 Q( e3 V' q\" o- contrast = ImageEnhance.Contrast(img)
; b( T, E0 u$ H) {5 B - , Y0 _8 [7 j' Y! l, ?+ A3 q
- img = contrast.enhance(1.5)$ r6 J\" [' r/ @1 G( w9 N& ~
; u) k2 D: f* Z% K; y- $ _& J4 v# K# I6 n V0 K
8 S- e: g2 O) ], |- # 显示图片- X0 H4 f\" \! s7 e9 p% O, ^( y
k+ u6 N C4 x% v% A- img.show()
复制代码
7 s% l$ G0 m' a |
zan
|