- 在线时间
- 478 小时
- 最后登录
- 2026-4-9
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7788 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2922
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1171
- 主题
- 1186
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件
- V) e; `& R. T _7 Q b5 O5 m4 t
- ]7 k; v0 z) i/ V- I& ?' |- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))6 @; B0 Q# Z* v3 |
- $ m Y) Z1 |2 W
- # 增强图片4 T; ], c+ M q; x, i: Z
- 4 I5 m' b- Z3 a- R, H
- img_enhanced = enhancer.enhance(增强系数float)
6 B) u3 K/ M. z# M% ~ - 7 \\" T\" s/ r* E\" o; i0 ^( l
- # 输出目标文件
+ `; J' i1 j7 R - / D6 Q. t1 H/ t( K9 D/ F9 }
- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致
. W4 ]7 e7 }* D% g+ B
) t6 s, F! |( |& Q' q3 e所需依赖) k0 p9 u" t0 X7 y
# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog8 }\" a\" A3 P- U6 ~& F
4 s( i$ Z# z0 B' T) ^- g7 Q- # 增强\" h' j% W$ |: j; M2 t2 ], ?
- $ z\" r/ u( ^) F
- from PIL import Image, ImageEnhance\" D; V5 ?$ R4 D3 [. d\" d( L& K/ d! b
- & f. F7 o. ~& |4 v; P
- 代码实现- b) q\" b\" {/ E- _& U
- : ], q* G6 ~\" v( L9 E7 X1 i
- from tkinter import filedialog/ N- a* r# E4 ?/ i% k. ~! [
- ~+ i0 c\" t: d' U2 H% L( p5 w
- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
, |0 d6 {: z. b* w7 T3 v( W* V+ ~ - 9 p6 \ i* D' ~
- file_path = filedialog.askopenfilename()5 G) L) s: d; J
, m) D+ Y4 q6 T6 L! C- # 在这里添加代码,处理文件路径
1 E- Z- ~: J0 B1 e+ U2 [2 q - , ]- r$ Y/ m3 u
- print("选择的文件路径:", file_path)+ k/ a6 T( p; D* P
1 ~0 P% f$ A \- return file_path
复制代码- ; R) { u& |5 d( \\" `; J( W2 b3 k
- # 打开原图像/ \7 ^ q\" \! E/ E, U
- ' o' e5 w; Z7 u& {\" }* L
- # img = Image.open('image.png')
) f) y2 b\" ], p% u - 1 i8 G. K* e% M( V
- filePath = open_file_dialog(): [. R4 P+ f4 x) ^2 X
- \" K& G. [7 i! c. c( R- b- T
- img = Image.open(filePath)! Y( {# [/ I0 L$ q
) r6 \+ {9 h& }- # 设置增强因子9 x: x3 V5 U3 X+ V1 U! e; J* a) a
z' R5 T- X8 K9 _( r- factor = float(input('请输入增强系数(1.0~99.9):'))
. q; Q! F/ D1 ?; A - . M1 @4 }) c1 k8 X# h- l
* z; B3 d- u# ^& ^# p- $ j$ S' C# ?, J
- enhancer = ImageEnhance.Sharpness(img)1 Y, |( [8 ?0 l+ S3 b. q
- ) @% z$ @$ O\" m9 l0 T
- ; t+ ?9 e6 {9 \: ?* ^1 y; h( ^
# E0 o# d; K. w0 K- # 增强图片- U0 F3 q5 P\" G& I
% L' U3 M6 ^( E0 h& ^- img_enhanced = enhancer.enhance(factor)
; X; @/ I7 u# Z! _ - ! D4 G, u: c+ l6 V
' S- [* U1 P$ u- K- U! s, v- \- \" o& o% _3 R6 X; K }, K
- # 保存增强后的图像
! h D: V V% c2 C, n- d6 H E- U - 7 [- i; x. A! P$ c! z
- arr = filePath.split('/')8 C* V5 s* p7 ~\" c
- ; B; p. I, v' o% Z+ r
- i=06 q A4 d# P/ H! V
- 9 l\" k7 X' w! ^. d2 d$ u4 r
- fileDir=''
* t; G0 s\" n# E) k! A
1 s! @, f3 e& ]+ W- len = len(arr)! \5 C# c; y# K- f( n6 d1 j- r+ D
6 o( g/ n. S, h9 U) |3 c- while i < len-1:. V. t [+ C8 _+ r7 m6 t; R4 W
: {0 v( l |1 G, D& w# _2 [- fileDir += arr[i]+'/'
8 P4 k, ~# b8 j7 U. o* p3 ?0 | - 0 m- j6 Z! R p6 k1 ~
- i += 1! }) W3 q E3 F: I
- 2 |9 O$ f& X3 F+ Y: d0 z
- , R! N! z% P k- b2 J
* ^\" L/ a0 I! S' U0 M- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])/ p( X' D) D1 E9 U6 k3 C
; \' l4 Z- U5 P' h9 r: O) A! T- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:. B3 F2 Z. K/ g6 u! \2 E3 V
h( T! i+ M& g* {4 |( x$ z* J9 J
增强锐度- from PIL import Image, ImageEnhance
6 ] N* T6 a9 S' L - : a- W: `* E1 K9 x$ I
- * c& v/ H3 a) Y, F% k
- 1 R( A J* w5 A0 u9 u
- # 打开图片
: T8 k, E' `4 m4 U
1 p( f( K+ {' v: s, Q$ u6 j- img = Image.open('image.png')3 t- ~1 ? j\" F8 t: M' x% d
! U& c! H\" L\" i2 c% J3 L
5 Q( r% X1 w4 b( J- . O8 ]1 ? S4 O\" |5 T- p9 M
- # 增强锐度0 @/ }5 w- e8 p0 j
7 C9 S2 t; A, i3 Q. x- sharpness = ImageEnhance.Sharpness(img)5 _9 p7 ~8 t3 o
- - w( P- u* D: m) _: p7 i, y8 q7 V, g
- img = sharpness.enhance(1.5)
! P- m/ p: r+ W4 B5 u# W# m - : L. ]( M+ I* c\" J( v7 \
2 ~# h. R( V5 T6 g8 E- / p4 Z6 ?4 ^7 K! n5 F: v v
- # 显示图片# M6 H( G0 e! v1 ^0 k! x* |/ H
- ' \' |- \4 m- d
- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance
2 A* @( h5 N) k7 i4 i
8 S. J: n1 ?: ^9 D+ q. N- % d( @\" T0 C$ I) i8 ~0 u
- 0 W0 ] Q; x1 ]9 U
- # 打开图片& U4 ?. ~$ H9 m9 q
- 3 c% g9 ~7 G( R7 o
- img = Image.open('image.png'), W/ _7 J6 N' e7 q% _0 p4 \
- ; y+ J, e* b: N' n: ?
- ; C# T\" f0 d/ p8 h
- , `: y4 p& c# A
- # 增强对比度. w/ p& t3 u' @2 ]' d
5 q2 [8 T# m. K6 f- contrast = ImageEnhance.Contrast(img)6 ?9 @5 f0 v* X, t1 P
- \" M6 m- B) ~* {7 H% X
- img = contrast.enhance(1.5)
1 u\" @2 A- |& P( _0 ^4 a) c N
9 d' }\" @3 P% [# q- 7 h\" ~# `1 o\" o9 W* R6 M6 |% r( @
- - E T# \! C: q
- # 显示图片2 O# D9 E; y; Y* K& N) t
+ N, d6 n8 d1 B7 A! } ]6 n- img.show()
复制代码 , i" B* J0 s: w4 { B; B
|
zan
|