- 在线时间
- 472 小时
- 最后登录
- 2025-9-5
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7679 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2884
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1161
- 主题
- 1176
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件$ e1 ~& l7 c# p2 q/ K/ Z
' L9 v/ H. e3 r( i' I- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))7 \% ^& I/ S2 t4 T
6 u\" ?# y P/ B- F0 W\" o) m- # 增强图片& z( H6 S3 l! X8 F I
2 `0 [2 S7 r( ]; S6 E. \! P- img_enhanced = enhancer.enhance(增强系数float)
* S5 B# S! q$ e! h/ r5 U4 m; f - * n: P5 |7 P8 Q
- # 输出目标文件
8 n+ m% Y+ v0 F
5 p, q* o! |+ x0 U, c: O- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致9 Y) v; `) F9 q
8 h( ^; R |5 ^" d9 I" I
所需依赖9 j0 C' N9 Q: j( N; W4 J1 m( Q
# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog. n& K2 t9 l5 D k\" R+ H
; z1 L\" K6 p, d2 `1 H, l! s- # 增强
2 a$ f& \8 \& z\" ~\" ]1 n\" T\" O - % p# m8 Q# N\" O5 ]+ ?
- from PIL import Image, ImageEnhance
4 ?' R. U/ B, V# ^. f( h - ) ?4 \' P7 P' w& b
- 代码实现8 I) M; ? H3 ?2 `
- 8 }; u9 ^4 R% I e
- from tkinter import filedialog
, G* n# F3 K/ m- k g% P) K\" p
0 C' _& j, o# O8 W9 S- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():, W2 c; @ v9 M3 g! H5 k
- 7 }+ [, N3 e& B
- file_path = filedialog.askopenfilename()6 c1 U' x% y7 |2 U
- \" s\" o\" V# G {! s. s7 D
- # 在这里添加代码,处理文件路径' z/ H. X5 K0 ^/ b& \ x; g! d
- # V( i\" |2 ^4 _4 a* P
- print("选择的文件路径:", file_path)+ a0 O& L6 @' p7 A! t8 B( Q/ W( E
# c5 \/ F6 F [ D- return file_path
复制代码
( F0 a! w/ ]$ D* v9 R- # 打开原图像( ^9 b- Y- V2 E& }0 _
- \" K1 `& C+ y2 ~8 k0 u
- # img = Image.open('image.png')
6 t9 K+ Y9 f/ P& Q U# h - / {# k0 l, i+ W
- filePath = open_file_dialog()0 E/ @9 w3 f p3 V$ o
) f3 F) e9 r+ T5 ?8 V' U, P6 l- img = Image.open(filePath)
' F0 x2 h& f) p+ G1 j, `6 L/ @ - ) E- W5 f1 m F9 ? e
- # 设置增强因子3 Q# _+ g: O* D1 B% J( \
8 j6 j: ?* Z. _: {- \9 \- factor = float(input('请输入增强系数(1.0~99.9):'))
; q* e7 s- W/ M: Y\" E
% q. Q' D- z) A% ^& |
0 r+ x2 U$ B) B& f0 X- 0 v) q# I8 t0 [; z
- enhancer = ImageEnhance.Sharpness(img)9 E+ k6 y- q, Y' x+ R9 [ e
# o% C& v3 @5 M ]) q- ; }& x9 n4 G' ]. q3 X, }\" b# o
( [$ c$ o( N) X- # 增强图片
/ K) t6 q. h1 p2 q6 | - ; }9 Y# `' P1 g9 _
- img_enhanced = enhancer.enhance(factor)
) l) m. j3 F; c; H, Q4 J, v - 2 T9 J/ }# f# D7 h# I B
- 8 S6 u4 a* C* \' f C+ d. K0 F
8 ?6 O: t. F. C' [6 C# N- # 保存增强后的图像9 P( F, t9 U) x9 Z/ Z6 M7 y
5 P+ S$ k; M6 ]\" n* c6 {0 d8 n8 Y- arr = filePath.split('/')
: T2 E$ A\" X' H1 c N$ V - ) q0 y! m# L: ]9 t! u, ]
- i=0/ L+ t6 n: _/ t+ @/ ?
2 X. C5 o3 M; n% C$ }3 ?- a- fileDir=''* K% V( D) ?\" L9 q+ Q* u6 @0 R1 n
- # l# q) e$ v5 y1 J* I\" n
- len = len(arr)\" Y7 @' ]8 C G! ^0 a# n6 n- k- F) L
- ( L0 }9 _/ G. L0 E1 M% i7 o, e\" I
- while i < len-1:\" ]: H8 C' a+ d H
# I, [: \6 g/ }4 V# \, ^- fileDir += arr[i]+'/'
$ ]3 T# t& t, ?' W3 s: U) B1 [) Z - % Z6 D4 z& f2 b* N$ i2 m; F% D& N; O
- i += 1/ F) e e0 P' k2 z1 n
: D* }- a- `0 W& A! x0 ?$ y4 i
; G# R: |6 W; B. N8 g& w- \" r# m O; [8 s1 N* Z3 O
- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])' R, F$ d+ E* K, Z# z% n1 L8 M; [
- : x6 I$ ]$ a; J! N$ Z5 N
- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:1 y- v2 d( M6 s
3 X/ l6 K: g0 s% l; V3 U, ]9 p4 `% h增强锐度- from PIL import Image, ImageEnhance
: l) s\" n8 @; f& t# ]. p* G; N - 6 g1 V1 b) U$ h9 \8 }, U2 C
* z) u2 j7 w0 O1 V& l
* p1 D/ t' G\" t5 ~0 z4 I9 H% V- # 打开图片
' Z; J! }; f9 e9 C& M0 ?. V) s - . A0 E o; M. O6 F/ m
- img = Image.open('image.png'). S3 b3 U! b% f7 f6 f& c* y; E. I
- $ j. |: x- ?& {' B2 G+ B) l
\" \+ S4 w& n. K\" t0 i- 6 A$ k1 w% d- D
- # 增强锐度* i+ Y$ v6 d) o7 S8 Q: c
% Z, J) {# H4 i- sharpness = ImageEnhance.Sharpness(img). v9 J; a\" C; p( L/ F8 J N& a
- 9 Y6 S4 ^' v! a6 y- D4 |# ?2 ^
- img = sharpness.enhance(1.5)
- A8 I3 m: b' } Y5 m/ k. U; G, M - 7 X( M5 b, C# n/ ]( m4 l
: U, D: D. E# b6 Y- 0 F9 p# g$ L4 c$ c6 f. P
- # 显示图片
0 @- } s* ?, ]\" ~) ~) x- ^
# K8 `- I8 F5 _$ F4 A( @9 t2 j7 r- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance
! p! r3 N3 t: N4 ~$ B - 7 d8 ~: O* a\" m7 r0 X5 R* h
9 y2 f1 o! h: G4 w- % W; ?# F$ p: h0 Z, M/ k' D8 x7 R
- # 打开图片4 S! m0 Q- C& g8 u
- 9 \8 d' G* m( o* P. B. R
- img = Image.open('image.png')
' v3 k3 @5 J F0 A, A - % j0 d& `5 |- F
0 P/ }; o v- j) N% U' ~- + g; t2 ^ r# u. }3 a
- # 增强对比度
: n% x: g- [7 J$ ?3 v! `4 g& X
& h3 \: b6 ^$ T- contrast = ImageEnhance.Contrast(img): v, I! A0 i0 ?: b7 a
- ! e& q1 m/ }# s, w; e; ?& o
- img = contrast.enhance(1.5)- h) t) _& O, ~8 A0 h& D/ c
- 9 W. i% l0 S* p5 m' I' ?
- : r8 S, @& x& W- d9 P
) K$ K) ?: J( m. j+ T+ ]' p3 Y- # 显示图片4 t1 {1 B9 u4 P/ B( w' U
4 H' [* i& b, n' W5 M- img.show()
复制代码 . ]0 X& h1 F. n9 |
|
zan
|