- 在线时间
- 478 小时
- 最后登录
- 2026-4-9
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7788 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2922
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1171
- 主题
- 1186
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件1 n# t1 p4 F& H* K. _& F4 F
- 9 |7 Y. k, e. ` a, E
- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
) {6 L) h0 v4 t9 n5 h - ( S, r: e+ r% V! w
- # 增强图片, @2 v8 S, ^- U1 I. g0 Q
7 ` ?' U- b7 ~3 ]+ ?) s. _- img_enhanced = enhancer.enhance(增强系数float)! A; H$ e1 Z% J
- ( F n( H* c! e; B
- # 输出目标文件
9 K! I8 C/ s+ U
! A( `: N; G% N$ o- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致9 [; }8 [% {4 u% p- C2 ]9 O4 U5 ?
8 d' E. {0 z& r所需依赖* N& p9 p; H# B% o+ i
# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog6 y& V- h7 c- ?0 Z7 k7 }4 v2 L
: B, e1 }) t- s: h5 n- # 增强
3 ?' m, Q( Z h. b' B ?- a7 { - , F( l0 y9 {4 B7 K- n: }# n9 A0 C
- from PIL import Image, ImageEnhance
: o7 T4 \/ w# }
q8 {\" D( F' y* e& c- 代码实现
+ u) n* A7 [1 ?; f - - D9 V( c' O4 `\" Y' G0 }! }3 _
- from tkinter import filedialog
' W* z. h8 P0 l\" |& u
8 ?5 j! N, t\" Q- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog():
# F6 e) y& f: l# |, I+ a - . w/ ~$ B: R% Q) o$ B. f. x M
- file_path = filedialog.askopenfilename()
$ s( i x, C2 C2 g% b& Y5 |' o\" f/ x - - J3 ^3 e' Q7 m p; G
- # 在这里添加代码,处理文件路径, s0 Z E$ t. m W8 k( l
- : h9 o$ t5 B! k\" y* }4 g
- print("选择的文件路径:", file_path)/ S$ X9 t2 q+ _2 @. H+ f9 F6 B
- 4 X6 N7 B5 E+ {9 ?9 ?
- return file_path
复制代码- 1 K; U8 X7 |2 ~4 D0 `
- # 打开原图像1 E4 v% t6 g( N' e4 }4 v6 v3 r7 H
- 2 k6 z- a8 {: `0 g
- # img = Image.open('image.png')& G$ }+ a. I5 z r+ M
; E$ B# s# M3 K# t) Z* }9 j' z9 _% f- filePath = open_file_dialog()
2 U. _$ m1 o+ l# p9 R, D3 {$ N
5 F, S; \ [7 X @+ I- img = Image.open(filePath)- Z' a1 [: C( ?' w. B+ A
& J' N5 x1 L- z; O- # 设置增强因子: a: r6 ^8 ^8 i
- , E# Y1 N$ w/ G' \% s6 w
- factor = float(input('请输入增强系数(1.0~99.9):'))
2 Z* L0 W/ K1 _0 k - 0 _: P( O% S\" F9 B! Z' l% g! `. X! R
- - a3 i- R( E. P1 V' {/ r1 K! q& e
1 E, p) W0 {7 l! K\" @- enhancer = ImageEnhance.Sharpness(img)\" w3 D% q* a( v) a( c
8 H5 G* k, N+ a7 x' b) b% c
# P: i5 j) U P3 \+ `0 o- 1 x1 h/ Y: N$ D; B5 X. c6 f- @3 h, _
- # 增强图片
* I. s3 b3 e' _' o! n5 W7 C\" M' n
, D- q( Q9 g7 T! f/ ~/ r6 S6 H\" e- img_enhanced = enhancer.enhance(factor)
' j! [' V6 [7 X! [9 }) B* W, B
- L% D M3 s& L l6 `5 L4 P
; x }\" `2 Q- T- : H1 X6 e! u( n
- # 保存增强后的图像) f/ H- P4 C/ c- X8 d
- * R1 m# A; h& |- j* X
- arr = filePath.split('/')
- ^; \( |% c( q) @* b9 S\" X) T/ C - ( C9 d& c+ i6 x( h- Q9 F
- i=0
\" Q# Z6 b' a# I
8 f8 K! s% V7 N. P& |! x5 u- fileDir=''
! ]% d5 X5 [2 P, i - , i, |# |# l; u8 |3 t9 w& Y
- len = len(arr)
6 |9 F7 G$ [+ y' H
+ O4 {$ B+ }0 |# G+ s! c- while i < len-1:
\" v) p9 n2 |\" g: c7 s\" e
2 f8 i. D- Z\" Y' U\" V- fileDir += arr[i]+'/'
\" t, Z\" {# p# D5 }
* o$ E4 c3 }+ y/ r/ ?2 E- i += 14 m( b2 i6 A3 i3 `
# |( D* W' S2 M# a& _! Z
; A# m2 Q V. @/ _
# f\" ^ N; }+ }1 i' Q4 Z! `- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])
5 D! F\" Q' ~\" r6 T2 Z1 d- d# ?/ Z
. p- q, s0 U6 t( F, R! k- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:5 R; N8 ` W8 p% f
: e3 q" s3 k4 h& x
增强锐度- from PIL import Image, ImageEnhance
\" M( F# s. X. |# ?9 d4 N' P - # W$ c1 n3 ?3 B
- 4 @. c1 B- ^) M- N9 X- a
- ( X, s4 V+ M# X% }$ s8 e
- # 打开图片3 C: {( I& a7 _- V5 p: v: j
- 0 W- d4 q2 G: c, X4 [8 |
- img = Image.open('image.png')$ J$ {\" T) s: N! E8 T
- - Q3 v* G4 o! F! `
, `( |1 r/ |$ l* ~2 ]: p0 Q7 ^
3 u/ A9 H+ J |' k- # 增强锐度
, ~4 c% Q. `' {: Q - * {6 h\" w, ?8 V5 j8 n5 v
- sharpness = ImageEnhance.Sharpness(img)! U @* j# @# v* D# N
$ I6 D1 g% P' m7 H. @. d7 `/ X9 x- img = sharpness.enhance(1.5)
$ A1 o$ }% R. s. ~. k; ]; |; M( l) u5 T - 3 h* L8 n2 y5 h4 v! b
q* {% s( }; n9 i3 q8 \
/ C* z1 O- ?8 R( x/ U\" h- # 显示图片
. {0 }/ ~5 h% H7 Q1 ?* X - 0 G+ ~ o$ X! l6 y0 T7 ~
- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance
1 x. e. [6 H$ y
, t4 C2 Q0 k$ z* v% ^
' S( J' q% @) H1 X' Y' h- 7 r3 P% f# q( {\" X4 ]
- # 打开图片
! ?4 Y8 Z' ~7 y - % R# n7 a, D6 q2 N$ M% x
- img = Image.open('image.png')
9 L# p3 T8 C+ [3 d
; p: c; D5 p3 ]\" k
9 b' x0 }1 `% M$ O( X4 E- ( ^' u; Z2 `5 A! Q\" g, r
- # 增强对比度
\" g5 i8 w+ V2 _1 E. `
) ]$ T0 c8 |/ M1 d- R- contrast = ImageEnhance.Contrast(img)
. N& U* z; M* N0 V - - y: Q/ }1 |4 @: a* s
- img = contrast.enhance(1.5)/ F- ^* B% Z\" q8 ]
2 r/ V T. D0 U: D2 @0 q- % A' y$ |- t; O
0 S2 t5 q2 _: U. t J Q+ m- # 显示图片3 C4 v$ I- A! v9 g! {+ P, h+ `7 v
- 3 S: G1 S) }5 x9 Z7 N, `
- img.show()
复制代码 ' J+ I$ z& Q* Q
|
zan
|