- 在线时间
- 482 小时
- 最后登录
- 2026-9-11
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7951 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2977
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1183
- 主题
- 1198
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件6 M3 y' l; G. v6 f1 u1 z8 j0 w
\" B4 U J7 {7 ]1 v* ?- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))+ |: W& X. K# c3 Q4 ?( u* u, H9 L
# z4 I J, ~ o4 S- # 增强图片/ g0 x) a+ ]\" Z\" R4 a# m$ W3 o
3 N2 c' q( h' k$ ~- img_enhanced = enhancer.enhance(增强系数float)
, V: `# `$ p6 _6 |- L\" k - 9 l3 n' H% X( a3 Z; m, v+ h$ x\" x4 {
- # 输出目标文件
4 `6 C) u* k; F9 I - : |, M! E0 }' l$ c; ]7 `
- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致
+ u; h" V+ A( r9 I; d
! G: j( l. E% v4 `所需依赖5 A7 m- e: L7 @* a* x
# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog( R& J: C\" b- ^
- : ?. C, L$ T2 e0 e# W: F. R
- # 增强
* o\" g\" g8 X9 t. W. O+ O/ Y; e4 k\" a - : Y4 }( h. A' ^0 V
- from PIL import Image, ImageEnhance. R5 p$ o( K' t\" ?
D. M8 c\" v0 R* _# [- 代码实现$ ]; ~% k$ s9 i ^, i
- ; I0 T% M0 \% m
- from tkinter import filedialog
, ?. L7 `1 X* w3 I - 1 @\" C' r% }* S9 j\" M4 B
- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():\" x9 a4 E* X1 H' \\" _
- 4 H( |5 {6 T5 ~; q# J# O
- file_path = filedialog.askopenfilename()
# N; ?; a4 R9 u
9 @. E' _8 N6 `4 M' U. u- {- # 在这里添加代码,处理文件路径8 g$ y$ w: I1 Q3 W9 [! L
- % n3 ]+ J% e, k\" k3 D
- print("选择的文件路径:", file_path)9 J- R3 s1 ?; K! I. P
- ; B+ \3 {8 _2 a7 k2 Y
- return file_path
复制代码
7 E' t( P$ V$ _8 j. k- # 打开原图像
$ R# n\" q2 P5 e
: I9 _! y4 v$ S! M- # img = Image.open('image.png')
8 ` x; U1 S5 A4 A, i% I6 ?' k
' y7 `7 n' x& r3 o# a8 N+ s- filePath = open_file_dialog()6 o8 Y- ^& R- P
: B: H/ u+ _- ~4 {( q\" F- img = Image.open(filePath)
$ h3 P1 n; [. N
6 [; Y/ S( N- C& [- # 设置增强因子 S/ w& T$ _% S }7 L2 }
& p; H\" l4 B% n h- n- factor = float(input('请输入增强系数(1.0~99.9):'))
7 U1 Y4 b* |% g% ~$ d
\" b1 F( u0 V8 L' i/ r- N, M9 u- 8 D9 Y8 j* M, E8 I* y& m6 m7 T! ~
- & y9 i& {# B) Y
- enhancer = ImageEnhance.Sharpness(img)
# y `7 u1 t. S9 Q
% @\" k1 o# t6 z, W8 Z% ~
* A8 g+ `8 x% r
+ x4 m/ \0 d8 [\" I, L- # 增强图片
! e% W. U. p3 {1 R. K8 S
1 I/ o5 M5 V$ \9 N- img_enhanced = enhancer.enhance(factor)
+ e# O( E. E% j) E6 h/ `5 _
1 ~( N\" @3 |4 J* Y' c% K0 X9 \
; b1 T& M+ ~; E2 @- 4 k& W# C& ]+ l9 _5 k5 ^
- # 保存增强后的图像
0 ]1 w+ P) k* H\" I - $ U6 k' I; X) y' e- T( E2 k
- arr = filePath.split('/')
* ?1 p- J% S( ?$ u! o# I+ M9 W
# k5 D2 l s2 `+ J' U+ J- i=0
d$ o( b0 O8 f9 Q
* v9 R$ Q+ t M2 Y5 f6 e- fileDir=''
9 f$ u/ c& m4 b7 p, X: c: k: n
0 d$ v( k: @: e( E8 _, H1 B- len = len(arr)9 `; P) ?: v! N
- - {' i9 c0 L) |\" F3 j
- while i < len-1:$ c7 q: \+ U9 [
- 7 m. {7 z. i9 r- m, I
- fileDir += arr[i]+'/'
\" U1 I4 l$ ]9 M - 7 C0 r1 y9 X1 Z) s
- i += 1
6 f( N1 U6 c) F0 w- l# {* {/ W: X - ?1 Q$ t\" Z0 m# g @
# c+ @9 f2 i6 b+ M3 o- : m: K: J2 e. `1 N: I7 v& X
- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])
\" ?6 j/ {; m: k\" K0 X
: F, Q1 l2 h\" k. ^5 O- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:
" k3 r6 g# m' `' W9 F& @3 Z
4 c* ?. S4 ]& z增强锐度- from PIL import Image, ImageEnhance8 s+ ~& {9 A; ~/ g# t& d; y. X2 b
1 Y. X7 e\" k: ~) a- c0 E
( H1 b\" q% e1 @8 D7 S- \" b; m3 A8 n& K1 Z9 D: K
- # 打开图片7 l, x+ B1 L1 Z; k
- # R8 z3 {. s8 [4 ?# s8 z
- img = Image.open('image.png')
; D. j6 D$ d% l* L& x$ w
A8 b' O) W& q1 f1 k( A5 L7 y
4 h, n; E! v5 Y- O* E2 {0 P
& p2 U# O6 ~+ X0 x3 H- # 增强锐度
- q( V8 T; S5 n1 ^8 S* n' B
$ i) d4 S% o2 D3 _+ M& [- sharpness = ImageEnhance.Sharpness(img)( f, }5 W5 Z$ o4 v7 T
- : S6 u2 A0 E- z9 \( W$ I% O\" E% x
- img = sharpness.enhance(1.5)
: a3 M4 W* L2 x# P) M: @9 O
7 @3 c4 z* a1 X6 t% M0 |1 Q! J- . B% v\" }& N' ^) i( d8 v
- / |! T ~ J8 m
- # 显示图片
4 _7 v+ `2 r% Z\" z7 u' v - 2 X% }$ W1 |. z' U
- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance
/ M' O* W4 L& y. K+ K - $ Y1 [/ Q5 s% `! |' ]3 Y( o4 q
- ! K* H# p9 f D$ c& `) f
- 7 Z( h4 ?% `/ A1 Z b/ `$ |
- # 打开图片
. W; {. g- I7 J$ ~
1 A5 y- N$ s2 L- img = Image.open('image.png')
$ G; b6 p& L6 k1 L
; V. L6 s0 e# ]# b) B
& I% q# x7 n# N' k9 \* L$ `6 |- * l& R/ r. @- {
- # 增强对比度8 k! N' m\" [. P& w1 i5 Q
& s E8 Q4 Q\" h+ t: a5 C- contrast = ImageEnhance.Contrast(img)
+ c( \: O. \, s% e8 q
* R9 z4 K% o0 b. r, s) Y- img = contrast.enhance(1.5)0 S M7 v\" K$ c$ o$ I4 s
: c0 s: P) c3 t! Z& C
& d w! x6 ?; z- - o4 Q* R8 {4 p& S+ m7 M9 q% O+ h1 h
- # 显示图片
5 I! @7 e2 D0 M$ U* E - 9 u+ E5 C& H. I, C4 y
- img.show()
复制代码
`" T" h; l$ s0 Q% N0 }: j! v |
zan
|