QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-21 09:28 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
核心代码
  1. # 原始文件( \3 K8 ^7 G; Y# G7 Q& s# _! y
  2. 7 ^  ]; B6 Z1 P7 ]6 ^3 Z
  3. enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))+ S. B9 F/ \  ^! [  D
  4. $ f* l0 M% T, \$ X3 ]
  5. # 增强图片! T! U- E- W' _- b\" \9 W
  6.   p* i& Q/ c- x2 R0 o
  7. img_enhanced = enhancer.enhance(增强系数float)
    ( ^: ^7 p$ n5 l3 ~; `# C
  8. 1 |' ?' Q3 V9 F7 |& y
  9. # 输出目标文件
    # g! f# l0 ?\" @) X

  10. 8 {6 O  I5 z% G# A
  11. img_enhanced.save('文件名.png')
复制代码
注意,输入输出文件格式必须一致
  R5 Y  ?6 @- _5 @
2 f  G7 d7 F+ l8 H所需依赖
! U0 A& G( e0 K* c  x# 文件选择框,可以直接输相对路径不引入这个
  1. from tkinter import filedialog3 |# ]+ y- s/ n& S
  2. ) ^: \5 I# F+ Q& R1 L
  3. # 增强
    7 N' ]$ u- j0 k5 v4 N* T# J

  4. & @: z8 m1 `) V\" f  B5 ^
  5. from PIL import Image, ImageEnhance
    ) C* p, s\" r9 c) _' R, Q

  6. ' @% g$ H4 W6 w6 b8 N
  7. 代码实现
    ) I7 Q. \$ B\" \  g+ B( c
  8. 0 y2 M$ g4 c, l0 i\" j( w$ K
  9. from tkinter import filedialog
    0 g6 c9 [' R! \5 d+ T

  10. % O) X$ r' \1 _
  11. from PIL import Image, ImageEnhance
复制代码
  1. def open_file_dialog():: M* k/ E' L2 O\" D/ P6 Y
  2. ) R4 N) P\" e2 l. t0 y/ \% }\" C
  3.     file_path = filedialog.askopenfilename()- Y8 C5 {; d3 x# Q1 {
  4. , ?4 R\" d9 k  z; H
  5.     # 在这里添加代码,处理文件路径
    / l6 \% i( t' s' p$ f

  6. & v% L* a; U% Y! f  ]
  7.     print("选择的文件路径:", file_path)
    $ g$ W7 x# l7 F9 y8 S; [) t/ A0 ]
  8. 0 w\" o* Y6 D- \7 p8 f! @1 u; Y6 }
  9.     return file_path
复制代码
  1. ; J9 j& Z2 y* x
  2. # 打开原图像
    ( m0 ^. i  P# G
  3. 9 \; B! E. }/ @' T& X
  4. # img = Image.open('image.png')
    ( C- p, @6 ]2 W0 n\" Z6 w- n8 X

  5. / e) ^% Z# Z  e
  6. filePath = open_file_dialog()
    ! S7 p* m; t% H2 _  M& f; o
  7.   ~: J5 Q  l+ j1 O- p
  8. img = Image.open(filePath)
    2 X4 e. I, g5 d/ J
  9. ; o- D  A( Y& c- q* e
  10. # 设置增强因子! ]4 i2 H0 Y- i: q\" n! e

  11. 0 \6 q7 R\" Y3 Q1 p3 k
  12. factor = float(input('请输入增强系数(1.0~99.9):'))
    7 B0 G. O) h, m! E7 H
  13. 2 M; B6 a% f; Z6 s' c

  14. + l3 }8 D( V/ \! O: c
  15. 0 c' Z4 P1 {1 X
  16. enhancer = ImageEnhance.Sharpness(img)
    & ~% g9 m8 G, V! E0 s3 Q1 y1 q; x
  17. 8 s. l6 l1 F( j! Z+ P( H9 y
  18. ) L( A5 N+ G  {! B\" f# M, |

  19.   k9 c5 a% @; P0 K; O
  20. # 增强图片/ {7 M- G: r5 R# O

  21. 5 A1 S8 C' G\" C0 S8 ^  n
  22. img_enhanced = enhancer.enhance(factor)
    6 g* N9 [- H- c1 j
  23. - ~' R3 G# ?8 f% f8 x0 [% ^
  24. # R' |3 G& E6 n3 f' Y: \
  25. 5 l, ^: ^4 t# f+ A
  26. # 保存增强后的图像, K- s+ J! ?+ T. l

  27. * a' C9 J: J1 I2 n, S- C. x4 a
  28. arr = filePath.split('/')
    1 B. U: {\" o% H$ w& `

  29. \" x- J/ v! \4 a2 D: P
  30. i=0
    \" P! @! b6 ?% H
  31. & _- M: g. H' ~* i8 u+ I
  32. fileDir=''% U# Z  c3 }, ]; L* `

  33. & ?; G: d/ Z+ [9 _1 S
  34. len = len(arr)\" ]& v7 R6 y. j3 `. |2 s3 T
  35. & m& l3 n! I: H, A! v
  36. while i < len-1:- Y% ?% D, y: j\" m8 n& D
  37. \" h+ B; m$ n8 \7 n7 R% V) b& H
  38.     fileDir += arr[i]+'/'& |1 \5 O( y' C& }5 ]
  39. # B\" z\" o. d! I; X. A0 e8 P, L
  40.     i += 1
    1 d, `0 l6 e+ X0 ^6 j

  41. - ~2 a( O3 Z. W, _

  42. ! [2 K9 g2 ?  T+ `
  43. - c  q3 T/ u& X% v$ a: s' L
  44. img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])
    $ ~  k9 q# }7 _: t8 y6 [, r4 }
  45. . X: v. i. v0 q8 g! Q) Q
  46. print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码
应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:2 q7 [) x! A8 `( o

$ n- E/ q0 `, {增强锐度
  1. from PIL import Image, ImageEnhance% @# W& f7 j; N! t
  2. 2 e. l1 a6 p4 H6 A( r6 y

  3. ! e  O\" w: g. n+ u; ?  _

  4. 1 m7 D% J+ [0 m8 ~
  5. # 打开图片
    - u- `2 T* ?2 j; _
  6. ( J6 ^8 \\" k9 T- r3 ]/ |) y4 s# v
  7. img = Image.open('image.png')7 J$ a! G5 S6 t$ z0 D2 d

  8. ; R- J. V6 N) @/ G

  9. % h7 V& D) D6 I: t6 y' T; e
  10. 6 n) y2 r. _3 R
  11. # 增强锐度: L9 i0 z% @, _
  12. + R( f7 b  D8 Z) \3 s  J
  13. sharpness = ImageEnhance.Sharpness(img)
    $ T+ R$ R  w\" _& Y# `( r
  14. % o7 g) u9 q8 V6 o! I7 }/ D. ~
  15. img = sharpness.enhance(1.5)  Y) B$ |) a, V& |& Y: P( m2 b
  16. # r\" L% W( z4 j3 W8 G/ K! J
  17. 5 S/ I1 q6 X' i$ F
  18. 3 ?  H0 ?+ W' w8 F) V3 C/ ^7 z, H
  19. # 显示图片
    * w7 z* b5 C9 A  G1 a- r

  20. ! g1 k5 d8 [& k' K
  21. img.show()
复制代码
增强对比度
  1. from PIL import Image, ImageEnhance; o# q$ s' V/ \3 x4 S
  2. 1 T* N# K1 d3 J5 {6 e

  3. , G: C& N* X* C& ]% i
  4. ; `8 ^2 C5 }& x/ A9 U
  5. # 打开图片& n* R) [+ A3 t5 _, q4 t  D
  6. # O5 [- B# ]  ~
  7. img = Image.open('image.png')4 H/ W/ ]; |) Y/ I: [

  8. 5 M( |$ Q9 R0 z
  9. # B! i, x/ G3 t) C6 S; g0 v. D+ Q/ G
  10. 2 e3 G  J2 P; L) F' c5 F
  11. # 增强对比度) c+ L  \0 H& U0 \1 `/ M6 v
  12. ! O* W* `/ Y( R: r
  13. contrast = ImageEnhance.Contrast(img)
    $ c) E, m# [! V7 Y
  14. % v4 I) y% S& }0 Y# w
  15. img = contrast.enhance(1.5)
    . F) Y& |: v& Q4 D\" `\" f2 r

  16. / B$ u2 y1 p! W: a: p

  17. 9 I8 K: S- E5 c\" u& {# |
  18. ) v0 b& B4 @& {1 C) v
  19. # 显示图片
    $ M& Q2 ^  E9 `9 o: B

  20. % o9 E' p. @. A' J1 J: [: V
  21. img.show()
复制代码

! _4 G/ c1 @8 G$ o: h
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-6-11 20:45 , Processed in 1.504661 second(s), 51 queries .

回顶部