- 在线时间
- 472 小时
- 最后登录
- 2025-9-5
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7679 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2884
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1161
- 主题
- 1176
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件
' G! N2 p \0 D8 j$ Z - 1 @/ d/ z5 k. t& J# ^ K\" [$ g
- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))3 T( I6 a N M0 G5 C
- ( K4 k0 x9 L- ~
- # 增强图片: n1 b2 [( z7 ~! w
- H. Q9 w5 [8 J5 L! l% ]' z. o- img_enhanced = enhancer.enhance(增强系数float)
& v- f, E& Q\" ~- t
- e. z; v! [1 Y9 v\" K2 O* w8 h1 F9 w- # 输出目标文件* }4 E; U$ i7 G; t: y W/ w$ M
9 x. \. ~% O4 X\" C: g7 c% _7 Z- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致2 w& W- N B* T) q, ~
1 [0 m1 U& Q: ]+ g# z4 A所需依赖
3 u5 N8 Z8 W/ x( Z1 X# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog0 L7 m7 b! a) ~& M
% b, v$ Y# O. N) f2 X( w6 U: X, \- # 增强
2 M+ D; C f( d6 }
9 x* e1 t }7 X4 m8 S( K$ E- from PIL import Image, ImageEnhance, w# R6 I% v# A
- & ~7 _2 Y. ~7 E; Y\" o3 F4 @/ M
- 代码实现% z @' Q1 F! V% Q& N
3 S! n( q# c. F- from tkinter import filedialog
/ }) t5 E% x\" O7 y
2 s1 y\" F; e1 X/ P0 t w$ Q- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():. `, Z x j& h4 d' `
% Y7 V9 g0 V. W& J- file_path = filedialog.askopenfilename()
. G\" d+ G, x* f e
# c4 _4 \ a+ ^- # 在这里添加代码,处理文件路径
5 K9 r1 i* D9 ` - % B- j; ]. b$ |6 U$ p& g6 M. ?
- print("选择的文件路径:", file_path)
4 L% O) S A- p
9 i7 ~% u0 X- q; ^- return file_path
复制代码
7 l3 |( `' ^% [: G+ n- # 打开原图像
+ z1 }. u3 J% [; p) e2 O' s
& p$ ]) X: u# C/ ]5 M6 L/ M: g2 h- # img = Image.open('image.png')1 x: W8 H1 j: v# t# z2 |8 P8 |
6 }+ O& w& ^\" @\" u5 Q2 A$ O- filePath = open_file_dialog()
0 t4 Q& }; C3 u
8 {/ V$ b1 Y2 E) z. C6 e9 j- img = Image.open(filePath)
I9 ^$ U) ~# y$ U8 o3 k, D' z
% Z, X$ B+ \% \9 J- # 设置增强因子# W4 n2 `3 M0 c2 ^( n2 ?
7 a' B' d+ M$ @! o. D\" T& y' d+ c- factor = float(input('请输入增强系数(1.0~99.9):'))
\" H6 q! B! g# y( ^
) P\" W; b' B. ?2 Q6 X
( E! q5 Y# \\" k% r/ P5 g
; U& f1 z7 x; B/ X7 h6 M% A# W! |- enhancer = ImageEnhance.Sharpness(img)5 o4 ^- Z1 p& p. e! M# @/ x
& {7 _4 \# F8 G. K7 {$ }
1 V5 N/ f2 }4 p
7 l7 ?6 q7 [- `, F( o% o4 B- # 增强图片
+ y( a. ?( R1 V: P! A' y0 { - y* i* t9 ?0 V6 D% x
- img_enhanced = enhancer.enhance(factor)
; e+ Z5 n2 X+ Y, A9 | - 1 n\" T! ~2 `( j) t* z6 b
\" B1 s$ q. T t- p; j$ t/ T
* m7 V5 a* k6 K g# }, Q1 \# J- # 保存增强后的图像0 w8 p6 n& w\" u. z$ J
- . z# l5 m6 W- C) X4 |. z# I3 B
- arr = filePath.split('/')
3 S& |4 I* r3 H7 D* e - 8 A/ ]7 w1 b- r/ r. E
- i=0: N& k7 I% }; Z3 T
- + l( a+ G: ?: V
- fileDir=''
3 p\" D6 q3 _0 B# C; Q! i - 1 [% b, m1 O\" `+ R3 {9 I* m2 ]4 |\" R
- len = len(arr)6 l! U1 V) U( J/ X) E. h; I
- ( ]/ g0 ]3 H8 g0 g$ k. O
- while i < len-1:
, I, Q2 [# N5 n8 A1 w* k
\" T) k! a' G0 G$ K9 k- fileDir += arr[i]+'/'
2 b/ x3 n$ F& g. j& l2 ~5 T8 Y7 t. X
' q+ @\" N$ E9 h; O6 F- i += 19 L\" t2 ]6 ?' F* K# ]
. y\" @* T' {! {4 `' L6 n
+ V' |: |8 E/ O6 {3 C: B3 j& e
6 |, i+ j9 @5 m+ i0 X- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])
: {. {9 j. H4 j8 S3 w4 b4 l& i - , c1 |& Z) Y, L3 @
- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:7 P+ C q2 f' ^
7 s3 q" q3 M( W0 K& e( }# S
增强锐度- from PIL import Image, ImageEnhance
v& l2 \6 j0 C6 i# [6 s9 }' z
/ ~* A7 z/ e( g2 K$ p- / d* R r+ Q- c8 D\" _\" J
- E; Y c5 a8 J9 R
- # 打开图片
6 J3 l) i9 M& _, E7 \$ c
9 f) j4 v; z- y: E7 {- img = Image.open('image.png')
. `/ p2 O9 i9 E$ w# b( F* M4 E - 8 c& i' H4 S' R6 f9 I
- , c1 e\" r3 z. p/ Q
7 i0 ?1 ?( [6 P$ N: P2 E/ Q* K- n- # 增强锐度% A& j, J9 Y' O
4 z# f$ O* _) V1 {- sharpness = ImageEnhance.Sharpness(img)
& T0 k; B9 U* L - 6 e# [' h& t. E7 p I2 ^
- img = sharpness.enhance(1.5)
L4 ?2 L! W7 {/ a! T$ @
# q' {0 @) x: T/ a& j( W1 Y
. E\" H6 `3 u* I$ w\" w
0 q: \, [% Y, A/ \; X4 o, Z- # 显示图片* i2 Y! L8 g( I; N: ^# I
- & ]- j: Y* P- o) `! M
- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance/ u: x! {6 L1 n/ o$ E) y9 C
- ! I3 K% }7 G0 Q3 `8 b0 _$ Z0 V
- M v, Y1 o& H- ?0 e\" z- $ I8 A: Q$ w& X+ j
- # 打开图片# a0 {6 y7 D) s( `
! M5 r% ^! Q5 T4 `\" ^- img = Image.open('image.png') O5 M4 } ^0 d1 ?/ b c4 h, P
- ) Z; f+ _$ [9 G\" s9 k5 b
- . ]+ A0 A! v+ x\" a% O\" z! f
- * K# `* w2 W3 [+ t0 ~, e
- # 增强对比度
1 O/ ~, T! f; [8 g ~2 y - 7 a\" F5 f$ v+ ~
- contrast = ImageEnhance.Contrast(img). A\" c/ N5 |+ J& I! |
3 C! z/ R: M. z3 D3 R+ ~/ l& O- img = contrast.enhance(1.5)
0 Y# y9 w( s) f9 W1 J5 ~* b: u
( d$ ]9 p( ^& [% x9 \+ Y; t- 1 g\" i. z( A! h% f) k
- $ X( A& p/ V3 p9 j; f7 x
- # 显示图片
( \( T: m( V8 E; G& n - \" V6 T0 X8 r7 g3 T; e- O) i
- img.show()
复制代码
6 @2 D, V2 P% U |
zan
|