QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2991|回复: 0
打印 上一主题 下一主题

三行代码实现图像画质修复,图片清晰度修复,清晰度提升python

[复制链接]
字体大小: 正常 放大

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-21 09:28 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
核心代码
  1. # 原始文件
    ! X: x$ B' z2 i: P4 ~& p
  2. 4 Z9 f' o4 I. c
  3. enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
    & D. J# Q& G1 h* s
  4. : b$ F; e2 a* K4 e
  5. # 增强图片% ?, l; H+ z( A! {

  6. 7 K; i) O4 o! y% m( C4 Q* F& N
  7. img_enhanced = enhancer.enhance(增强系数float)- Z  h. O4 [8 W, E; E
  8. 6 G2 Q) U! Y! u# p9 p( H# u& r
  9. # 输出目标文件
    \" p8 `6 i. `  `9 E. k2 j+ I

  10. ' A; V1 {, h7 ^0 [, X$ L
  11. img_enhanced.save('文件名.png')
复制代码
注意,输入输出文件格式必须一致6 m+ ?: ?4 S3 w% v9 }# j

% }4 T8 M) U! f& _3 d) q' Z所需依赖
+ u7 t/ S  w0 L3 a$ N. W& G( K- Z# 文件选择框,可以直接输相对路径不引入这个
  1. from tkinter import filedialog3 S1 @& U2 i8 w1 |% V8 b* A
  2. % W6 x( C) Z5 L3 t* _& u
  3. # 增强
    4 X/ H- T3 H) ~

  4. ; a( R0 Q) K+ F% n4 m; U
  5. from PIL import Image, ImageEnhance
    6 l4 P& M8 L( d
  6. - |3 R' m! }2 ?  A- U2 [! l
  7. 代码实现
    ' A; v! {/ ^! s9 u4 o5 i* |

  8.   `! P/ f- C0 o- ^  I
  9. from tkinter import filedialog5 U$ l, u\" Z( F6 v
  10. 6 t3 T8 c  N& h2 k4 A) s1 X9 c
  11. from PIL import Image, ImageEnhance
复制代码
  1. def open_file_dialog():
    2 l9 p\" g+ [% `) w8 Z

  2. 2 E# j$ Z) ?9 H7 u
  3.     file_path = filedialog.askopenfilename()& p  R. O0 ~\" I1 s

  4. ' c; V$ n5 N/ h  w/ s
  5.     # 在这里添加代码,处理文件路径
    6 _\" x$ M5 a8 c5 H- C. R
  6. ( z$ X' g: ~0 V. t/ Y
  7.     print("选择的文件路径:", file_path)
    + B8 J! c5 z& t# v
  8. 4 A/ R: R! Z4 M. p& V
  9.     return file_path
复制代码

  1. + M, t% k7 Q9 c9 K  k
  2. # 打开原图像
    $ Q9 |5 |5 D# U6 i2 h. r
  3. 6 G1 `2 Q  P4 ~, l
  4. # img = Image.open('image.png')
    & h/ j/ ~* m\" _8 Z0 m
  5. % Z2 D/ Q: f, r& {& D, V2 u
  6. filePath = open_file_dialog()- f' z; ?  t! Y& x

  7.   h, |% l; V7 B' f
  8. img = Image.open(filePath)
      K+ H4 r6 k8 E2 u( f, ~4 m

  9. , }3 t  f# j1 u/ V8 Q
  10. # 设置增强因子- ?5 c8 q; @/ @. O* I

  11. . ^5 \; T3 \+ _. R  p0 C) B
  12. factor = float(input('请输入增强系数(1.0~99.9):'))4 A\" v6 Z5 l  H
  13. 8 s6 A. B4 Q, e! |  `

  14. : L: ^4 N* E) H
  15. & m\" ^, Z2 Y/ _: P# [) o' k$ c
  16. enhancer = ImageEnhance.Sharpness(img)
    ; J9 ]! E- w5 v9 _, p9 `% V
  17. ' N8 @6 J& ~4 j

  18. 7 I- t6 }' o0 G' X+ G7 @3 A& |
  19. + ?0 e8 r* K6 N
  20. # 增强图片9 }7 e8 J, r; P6 e# q& `3 w& i( _
  21. ' q3 `1 Y( p5 k5 u/ B# m. q: _
  22. img_enhanced = enhancer.enhance(factor)7 ?9 i) ~0 \* S4 k\" o% l

  23. & \' n8 A0 y- i; g3 X# e\" M
  24.   g6 g* `! x* W
  25. , {. S1 W! ?& Q: G/ A. P
  26. # 保存增强后的图像! A6 ]. F: r# x# \$ I3 z\" Q5 M\" U

  27. / d! S5 a3 u0 f3 z
  28. arr = filePath.split('/')
    % J4 b% G0 U( }* _6 S# S8 `
  29. ( s. y6 S0 H$ P4 u! ^8 O+ C
  30. i=01 `+ q3 z2 A/ ?

  31. 9 O) Y: O9 {/ T7 c
  32. fileDir=''
    ! T  c( w- m5 O1 d* q/ K1 n

  33. ' {! H! u1 }+ |
  34. len = len(arr)
    ! D  F0 H8 w# a; |+ m
  35. 8 N9 u; B1 F- [% O
  36. while i < len-1:
    5 W) `5 j' Z7 R7 A/ ]+ ^3 ]\" I$ k

  37. ; M' r2 L( F5 L
  38.     fileDir += arr[i]+'/'& x* W  @% `9 w( x* h. f

  39. % D: P\" T6 q! @& }( ]+ p$ x4 T
  40.     i += 1
    ' `% u: z5 X- c1 d8 L7 q
  41. : u* \; f) M5 x; e+ H

  42. \" f: M( ?* }. T; v# m+ Q

  43. 7 q' g8 |( |* H% o3 L* T+ o
  44. img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])% s8 v3 F4 d/ \8 I( y& i

  45. \" B4 P8 p0 w0 J2 U\" Q' l
  46. print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码
应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:
- K2 I* y# ]5 _' e4 Y1 V# h
7 }6 c) j1 r3 W增强锐度
  1. from PIL import Image, ImageEnhance
    4 q: w3 ^* x2 w3 E0 R

  2. \" x3 |* n1 F( N$ D5 \

  3. , p5 G9 u+ Z/ ~6 I
  4. 9 z: a3 u3 ]# Z
  5. # 打开图片0 d3 n8 }8 `' L7 ]

  6. 8 T! \0 ?8 Y4 |) {  u* z
  7. img = Image.open('image.png')
    9 m2 B  k  V: f( E4 n1 E

  8. ' b; g\" M& G\" E

  9. ' }' n) _- ], X& C* @) v
  10. 9 X2 ^5 e, D. a
  11. # 增强锐度& \' V* M* C+ N

  12. 7 k7 |1 v; \) J' H) W: o
  13. sharpness = ImageEnhance.Sharpness(img)+ }- |  c2 N$ p' B) ]
  14. 9 `- E+ J7 w& r/ U
  15. img = sharpness.enhance(1.5)
    2 X7 q0 x( o5 Z5 A3 [# O. D7 b8 a

  16. 1 P; s( v3 A# R$ `% E$ n
  17. ; G  U+ D9 w. F$ q( L# V( c
  18. ! A2 T! m3 ]+ f\" V( o0 i4 G, w3 H
  19. # 显示图片5 L7 f$ E( i. L5 _& O
  20. , k) t+ B  j. B
  21. img.show()
复制代码
增强对比度
  1. from PIL import Image, ImageEnhance. E% B  @$ m3 g1 K8 N. d7 z% y

  2. , x5 N5 D: o' \3 K& u7 c
  3. ' H6 v1 E  W0 z: o# v% D
  4. \" }! f3 K+ ~( {0 b0 ]8 B4 \
  5. # 打开图片
    8 V( n\" z. H( b2 [4 b
  6. * \4 V+ p7 m% r1 ^
  7. img = Image.open('image.png')/ p% F  ^  c3 T; n' R\" L  ?2 F# x
  8. * q% O# V' w\" [0 b\" [

  9. . [3 S3 j7 d' q8 q& E5 F
  10. 5 a) |* T\" e8 U$ C3 j1 }
  11. # 增强对比度
    1 v+ j( s9 }% p, T6 X) K
  12. 1 c6 h! C, N' K3 \# }
  13. contrast = ImageEnhance.Contrast(img)
    & P3 w: f7 y: l1 F7 F! d# Y0 F1 l

  14. $ G* S* p) H; T3 J
  15. img = contrast.enhance(1.5)3 Z7 U% H+ K' _3 r

  16. 6 |8 Q; K% M( N; W
  17. - k  g& K# u& D/ `6 @) U% m

  18. + J* i/ o7 q( S9 t8 L' y
  19. # 显示图片* t& F6 ~0 ?0 Y: d& N+ j, u

  20. 4 d. G3 U4 W( R
  21. img.show()
复制代码

9 G7 k/ Y! e( F4 V2 w, Q+ k
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-7-31 03:39 , Processed in 0.448677 second(s), 50 queries .

回顶部