- 在线时间
- 478 小时
- 最后登录
- 2026-4-9
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7788 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2922
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1171
- 主题
- 1186
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
核心代码- # 原始文件
, C, y F1 d& Z5 q( [# g. h+ ^ - / J7 z2 e3 I+ i8 a( h$ I
- enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))+ v1 ~9 x6 i* ~; J- q9 U2 c; V
- 0 t0 `* w1 u/ F4 D\" C& d
- # 增强图片
, c: M! C' z\" v U9 W) `9 x; L+ _5 O
+ a9 n' u5 K\" ^0 R B3 ~4 x# S- img_enhanced = enhancer.enhance(增强系数float)
: h2 Z- ]& j$ d4 ?7 V. ] - 2 H( A+ o$ d; C7 C
- # 输出目标文件6 B- s5 {* |# C. W' w$ Y3 p
- 2 o# R- U: d7 y\" @% k. o' E4 j$ t7 q# F
- img_enhanced.save('文件名.png')
复制代码 注意,输入输出文件格式必须一致7 A3 h# O9 x) I9 R5 Z4 E8 v2 L
0 y3 h$ J" n" u# G$ `
所需依赖- C6 r2 G3 {; X A) K: ~
# 文件选择框,可以直接输相对路径不引入这个- from tkinter import filedialog
+ D! R) p j0 X) ~5 { - Z) _8 `- b: ?- R. B8 G
- # 增强$ E/ V4 q8 f) v- k7 e
- $ {# \' x) ]. a) O) z# d3 X
- from PIL import Image, ImageEnhance4 B$ N4 L% p4 w+ w5 N
' ^9 X5 P' F8 y( r& s' J' K6 `- 代码实现- Z# x: N! b5 k
2 y, i3 {5 |' F# v0 O' G6 e( j1 x- from tkinter import filedialog
' q+ h& `3 X4 T; |8 h8 Y - \" d' b# ^\" f) Z$ b
- from PIL import Image, ImageEnhance
复制代码- def open_file_dialog(): t+ @- q7 u. K* y: ^- A
0 n- L6 q# O& s& l$ {. T6 w- file_path = filedialog.askopenfilename()
. `3 ?: q. f9 Z# S8 D1 l
8 A( ~* v+ k/ _; b7 i$ v9 B# [/ @ e- # 在这里添加代码,处理文件路径( @# {& |# Z% n1 X+ Y
- 8 X# L& Y* c8 P7 g* {% Z. E\" V
- print("选择的文件路径:", file_path): ^$ o2 u& a Q/ @3 L; P6 g' z) T) x
- * g) T& e0 M' {
- return file_path
复制代码
$ B: [4 a/ S' M7 f' `- # 打开原图像
9 J4 r- k. k/ X - # @5 _8 S7 f. j9 I5 ]% n& T
- # img = Image.open('image.png')( \4 C6 q/ Y. m
, X! _, @9 L, V) M/ _- filePath = open_file_dialog(), N' k# C\" R/ T0 U/ Z
- 2 W- K) M7 r9 q+ G7 W1 d/ S
- img = Image.open(filePath). ~3 ~$ p7 t/ t
- * W3 t1 _1 Y+ u
- # 设置增强因子
% X0 I: }7 u4 e\" _
/ z# \$ |' K5 B9 y, ^- factor = float(input('请输入增强系数(1.0~99.9):'))
( @$ R- @1 \5 K; U3 ?! f
. U, o+ Q' Z d: |+ }+ O- 3 f# C' _\" a, L v
3 u\" \$ W9 g( [1 W, c0 s5 V1 A3 L! s' v- enhancer = ImageEnhance.Sharpness(img)2 b0 s+ |/ J' S. n; V0 t& r
- $ x# z/ v8 j9 x( `9 p8 f
; j; n$ H& I4 f
4 l! u0 {7 N1 z' N) Q$ K- # 增强图片( d. M$ L; ]) Z7 a) s
# _% A# y( ]$ e\" ~! c3 e& J7 `- img_enhanced = enhancer.enhance(factor): X. q. b! {! p) W- N1 h
- # J3 |. K x# v- W) x% o
+ r( b$ q, q, w
6 Z1 J6 h# i: O( d+ N- # 保存增强后的图像
2 w, _+ I$ J5 s: U) K
; L; j( ~4 s* C' A+ S+ B- arr = filePath.split('/')( h8 W2 B- @% x& p) a( B
( ^8 l. f7 |$ B, Z2 W- i=0( k6 k w, S5 u- G4 b% ?, ?: m4 J
6 D% e. Y) I4 N0 E, {8 P) R- fileDir='': U0 K5 F [% L' F5 O' L
3 b2 r; S. `: l2 V ]3 c- len = len(arr)
g\" ?( Z* g( \( E
8 X+ P0 B% O7 O* ^6 S u4 m- while i < len-1:1 [5 V' {+ k- X8 o( d\" _! v. _
% O: ]. J- L3 ^- fileDir += arr[i]+'/'
/ H0 e( C F' P9 u: t
S+ }7 c: S7 x! T6 m5 U7 Y b' G- i += 1+ x- a. b% _- d/ B$ G! K e7 F
- 1 c( `\" _8 X1 b+ a, m. S
- # L: q4 l7 P( _5 T$ [1 v5 M: Z
( C; {$ f% M$ A9 V& @; }4 |$ E- img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])( v- \. E) ?2 {$ b) A
; C) Y9 e# ]$ e2 E3 w+ F3 V- print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码 应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:
( B' j, ?$ w$ u! y% d m# p& U7 R% J. g8 k; J6 p2 q9 c2 W
增强锐度- from PIL import Image, ImageEnhance
% z; x- ^, J# ]3 K - - U1 u9 F* [$ R2 ?
! o s* b( ^4 o. n- - `7 X6 L. k( P% b( g
- # 打开图片
O W5 u: g8 o8 K' A6 g
/ d* m4 M, H\" R- img = Image.open('image.png')
\" {( \\" y: J8 ?. ]# A& n- l\" `/ W - ( r, l. I, _2 e, X! Y6 p
* b8 W; A ^( J8 K% S) ]/ L5 r
- G a% v. f0 J\" N! H1 L) h\" `: I- # 增强锐度
: a2 l/ h& q; `& m
! t* d U9 X$ q8 b0 i/ j y- sharpness = ImageEnhance.Sharpness(img)
4 R( b9 G5 i5 K$ ]
3 S( i# M6 \/ m' A7 t5 m% ~! r6 K- img = sharpness.enhance(1.5)
0 O* d\" o4 t K2 Z+ h: j+ Z' D\" i0 j3 ]2 M - ( E7 f; f2 Z& a
- 2 x& L5 h$ b, A, k; B. R
0 D. Z$ U\" n, a+ w1 H- # 显示图片, z5 r- z1 D* I0 w9 X% n
7 N- v; x( X+ K; M+ Z7 U/ L# d- Z- img.show()
复制代码 增强对比度- from PIL import Image, ImageEnhance7 T8 o) T9 _- @0 W5 A! z9 { m
- 9 u5 c9 s# p! z; a; u( L
- * D2 N4 Q! O\" N( q b/ z2 b2 |
' D3 c4 `8 s) J, u+ ?6 d: m0 R\" d- # 打开图片
2 O5 F% c/ Y3 t0 ?& Y, _
\" i r* D' Q: J0 a9 N3 ]- img = Image.open('image.png')! T\" X( r4 s3 F3 i. A0 C ?
- 2 ?, i8 z# d4 H; m% f& m4 h( e\" N
) k. ]/ h7 C* ^2 q2 N- I! Q6 H0 [: ]3 s* e1 U. V6 j
- # 增强对比度
3 _* f, k6 M. `3 j! p/ P
$ d ~6 V; N& F5 P( u; N% q- contrast = ImageEnhance.Contrast(img)4 `9 g; _: f6 c; R$ G9 E- ^
8 L# H) r( V8 g0 [4 k' X! q- img = contrast.enhance(1.5)
- [1 x3 O. Z! Q l2 _1 T - 3 ^/ o p; e$ @
- 7 C- S' f, o6 b3 Y
+ k) m7 Y( e: {& p) F- V- # 显示图片( U$ Y0 c% B0 _1 F4 {1 r. W
0 Q' v3 M3 l7 m: F: o0 T) ]- img.show()
复制代码 7 S% G, I N }5 A7 w
|
zan
|