QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-21 09:28 |只看该作者 |正序浏览
|招呼Ta 关注Ta
核心代码
  1. # 原始文件
    5 ]' h3 J( s+ `; z3 U, v
  2. 8 s7 ]4 R2 u1 p3 Y+ n: R' `
  3. enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))  r0 R7 `/ n9 @, r

  4. 1 l8 t9 n, B9 x1 Z2 g$ P- W, _
  5. # 增强图片
    \" Z' L0 ]) Z- L! ^! ]2 c
  6.   {% R8 `  l9 u* N, F, Q2 v# h% p7 z
  7. img_enhanced = enhancer.enhance(增强系数float)
    , Y, t% o# u; ]6 q7 K
  8. 2 A/ F- ^: J7 y: w2 i. Z) W  p
  9. # 输出目标文件
    % e; ?# s8 W( L& T9 f$ H

  10. ; g& ?  I\" S  f! i  r. t
  11. img_enhanced.save('文件名.png')
复制代码
注意,输入输出文件格式必须一致
+ G) b- P) R" o$ y# s5 S+ ~5 ^# i' v) S; x" N
所需依赖
, d1 r; X1 J, M+ `: p1 }* t, P9 P# 文件选择框,可以直接输相对路径不引入这个
  1. from tkinter import filedialog! A- B( k7 R9 p( b8 P. M9 h

  2. / ^* I& R( J9 s' e1 s5 l2 }
  3. # 增强
    / C& F  Q$ `\" y/ q6 h

  4. % K( K( F0 z  c$ ?6 D3 i, n0 N
  5. from PIL import Image, ImageEnhance' Z4 q$ X3 }  H  x/ B

  6. ; l/ a* y. C\" H6 Z% i; x
  7. 代码实现/ b) W8 ?1 i3 k  H0 v: s

  8. 7 y4 ?( Q- V5 E) l) I8 a
  9. from tkinter import filedialog. s& s( Q, n' K5 r2 F( |' F

  10. 3 L5 e: y# x; g  |
  11. from PIL import Image, ImageEnhance
复制代码
  1. def open_file_dialog():
    \" }2 \9 y: F5 d! ?$ s
  2. 1 d3 Y, ^+ B1 P6 X2 d
  3.     file_path = filedialog.askopenfilename()
    : L; I: H9 B0 A5 k7 T$ V2 L/ ]

  4. ( {& V2 P7 F$ Q# @6 x
  5.     # 在这里添加代码,处理文件路径
    4 [1 x% O* y( C5 U/ H0 D+ ~. J

  6. $ g5 L4 U- {7 v5 `1 {
  7.     print("选择的文件路径:", file_path)
    + t% A* l3 m4 M. j/ r

  8. . Z5 p3 N* I% H0 k
  9.     return file_path
复制代码
  1. 6 q$ k  |: u$ F8 a# Y! u. N, A6 l/ N2 ?
  2. # 打开原图像
    8 i( g5 B8 z1 w. L3 v5 T& m% X6 J

  3. : s8 z4 f' c& ^- h\" H- `8 Q* k
  4. # img = Image.open('image.png')5 A( o. N, r) |' V

  5. + e$ R& y  ~% ~/ @. b9 B! j
  6. filePath = open_file_dialog()+ j& B5 n( J/ v: R\" R: K+ }

  7. ; V8 t3 U7 x; u* h; y. \5 a3 f) Q
  8. img = Image.open(filePath)
    / l  {' I/ {1 d0 K% ?
  9. ' t0 i# p6 T: W9 ^- @3 P
  10. # 设置增强因子2 H8 X+ Y; T0 w

  11. & V1 s3 ], \\" e- M, h
  12. factor = float(input('请输入增强系数(1.0~99.9):'))
      V3 N5 a+ U+ L2 v
  13. % g( }8 w  N3 H/ h5 g* c& m
  14. 9 Q) r* B% o2 u/ X5 Q\" ]

  15. : s$ D, j$ n# }' p; b: P4 F0 \$ {
  16. enhancer = ImageEnhance.Sharpness(img)
    \" Y- {+ z  d7 [! j
  17. : I) a9 n+ W\" U- J  q& k% C: g& o
  18. 0 @/ D\" `  K4 c) Q4 M6 W4 V) l; H6 `

  19. 8 U5 m6 _* X. t) L% O! c) J4 o* j
  20. # 增强图片# r& E\" i\" E* y2 g* Z: y

  21. 8 j4 w- L% i: P+ E5 h
  22. img_enhanced = enhancer.enhance(factor)
    $ ^& \) o  O4 j6 @1 s. o
  23. \" p6 S6 R1 a9 K6 v+ G8 A& j
  24. . L' o1 i$ U/ _. Y

  25. 0 W% g- @# T3 w& s3 N  m
  26. # 保存增强后的图像
    ! I1 B/ o% ~+ h. G+ V. R
  27. , L; V\" Y$ L( y* |& |
  28. arr = filePath.split('/')
    3 @( t# j0 |* G8 `' w8 A% W
  29. , h+ u9 V) {' _\" p! H$ e. |
  30. i=0
    2 \  c% {; f) Z# |: U

  31. . d8 K7 C9 }3 e
  32. fileDir=''! R& z$ p; b2 F( ^

  33. 4 _: M5 ~1 Q\" b
  34. len = len(arr)
    ' x* r) X& M3 K9 E\" }$ w! [
  35. 9 n' r8 v2 R! o1 e/ G
  36. while i < len-1:' s0 s7 o! t4 m! a5 A2 l- c# x  `
  37. ( f\" O, P. `/ l2 d/ x
  38.     fileDir += arr[i]+'/'
    , w+ b) S) F% D) S# f; v0 u/ v! B
  39. ' v( ~3 c  i* Y8 l, o
  40.     i += 1% g; Z2 j% P, _9 R

  41. $ C3 h* q2 t2 m' q- |

  42. 0 J- C3 x' @; H' }6 ^8 y; e( }

  43. 2 t& W) I0 v  O: ^  _. \# H, `8 X
  44. img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])
    / p6 e; Z( E# z

  45. # i* K& l% w# ^7 F& k& K9 p
  46. print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码
应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:! V  |2 F2 S2 y

$ V, n$ p7 f0 e, W" `( ]: H增强锐度
  1. from PIL import Image, ImageEnhance
    3 O0 M  P/ ?1 |0 k& C
  2. / ?: T8 u4 p6 G2 ^/ ?, |. u: _

  3. * G: V  g: O! V4 i2 y6 _
  4.   Y2 F/ h0 \1 A3 X& q, w3 c/ g
  5. # 打开图片7 u4 X6 e7 o! R9 m- J
  6. . F# A# @3 k& n7 f. R0 H& N, D9 Q
  7. img = Image.open('image.png')
    6 \, M) J' B: i9 r) o, V+ S# @
  8. : P, ]* b8 }: r. L, D' w
  9. + V0 q- b; W$ P
  10. 7 B$ B2 ?7 s8 u8 ~* Q0 _2 R
  11. # 增强锐度) M! e5 _# l! o# i& Y6 w1 l
  12. : f  q: b3 _( I0 O+ |4 _' |
  13. sharpness = ImageEnhance.Sharpness(img)
    6 n$ ^8 m% r7 E( T5 M
  14. 9 M( ~! ?1 m0 I
  15. img = sharpness.enhance(1.5)9 U4 G9 s6 d0 T7 |
  16. ( G, B; x& I5 T7 E
  17. ; ^& H  b9 n: t* s( t$ P0 X& A
  18. 6 e\" L' P- t  m1 }: _+ B& [
  19. # 显示图片, w) @  N/ d! `
  20. % E1 e  S! c8 U- i9 v( }
  21. img.show()
复制代码
增强对比度
  1. from PIL import Image, ImageEnhance
    9 m* U* d. h% P* v6 s6 ?

  2. ; a  `\" d$ t* q# D9 Q+ a+ G) x. F
  3. 4 X! Y! C' a, B2 ~+ {
  4. $ A2 {/ N/ M) u- U( `% W
  5. # 打开图片- }4 G7 T9 A4 N) ^9 C+ y) m

  6. 8 T% K: `0 \6 Z( P' a
  7. img = Image.open('image.png')8 O4 s; u; Y\" G$ j4 b/ C% `4 \6 p
  8. 2 k9 N0 p& r9 w/ Z
  9. 5 w0 o$ B+ ^4 e& Q) ]; p  C: R- n
  10. - C9 H6 ]+ ~( e- ^- z2 n
  11. # 增强对比度
      _' W5 _/ b6 M$ E' X8 _. g
  12. ! l8 \; h8 x4 t0 N
  13. contrast = ImageEnhance.Contrast(img)
      s- N# {1 O: X. _
  14. 8 }  ^. I, s/ S3 K\" ?
  15. img = contrast.enhance(1.5)
    $ l: E9 Q4 I1 b6 x* p; k: q% ~! y

  16. ; }2 ?- i% J, b9 Q+ i: L2 x# W2 s3 G
  17. 6 b+ g* |. @$ q

  18. # f) B+ Q( F. g3 r
  19. # 显示图片
    : b0 D- f. R: t
  20. + o8 _2 q0 Q4 u4 N2 D, D7 n
  21. img.show()
复制代码

3 _2 G# F: x# f! o
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-4-13 18:32 , Processed in 0.396166 second(s), 51 queries .

回顶部