QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-21 09:28 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
核心代码
  1. # 原始文件
    # T\" p( N4 b. [) L' j2 Y/ X  m
  2. 4 Y! y\" w\" ~0 H3 C2 y
  3. enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
    % ?% U9 j  Y7 a! f  y$ W& o$ |
  4. ( d. f9 @9 W% V1 E\" A1 p. _! h
  5. # 增强图片
      W8 _/ G2 m9 Q$ d, n! I

  6.   f8 @: W* \9 p: j  E8 g
  7. img_enhanced = enhancer.enhance(增强系数float)  V; P2 j! C( U) k1 L
  8. 2 ?, ~5 H1 e; Y
  9. # 输出目标文件
    - J& L5 Y: N  M8 K# p

  10. $ ~! V+ f$ ?2 b+ `# V\" j7 y
  11. img_enhanced.save('文件名.png')
复制代码
注意,输入输出文件格式必须一致; v" k* j* F; N

3 a& P+ w3 B4 M' M/ j0 M所需依赖' r: V( h* y9 N  q* t' g; {
# 文件选择框,可以直接输相对路径不引入这个
  1. from tkinter import filedialog
    . o1 d9 M: V# u. I$ v+ X
  2. 3 v- b% k6 ?, W: \2 U
  3. # 增强+ F' `9 P\" m3 |7 b
  4. $ J  }- n$ I- e7 r+ K  N- O
  5. from PIL import Image, ImageEnhance4 v3 }1 l9 X. O  ^1 u5 a5 P
  6. - W1 O! X! o+ R) D' p
  7. 代码实现
    / A3 V2 r8 r6 P7 G

  8. # Q- F. G+ @, s, o7 y9 [( g% g
  9. from tkinter import filedialog
    8 c- A; z) h& ~7 l3 d, V
  10. . G( l  s+ E) U
  11. from PIL import Image, ImageEnhance
复制代码
  1. def open_file_dialog():
    # {2 Y' E4 F8 Y4 G' G8 X8 g

  2. ' {( j1 F0 t5 m6 M# o3 a
  3.     file_path = filedialog.askopenfilename()
    ) U- ^# u+ r\" j! ]/ N. w

  4. % I, }* N2 m/ ~, B0 h) l\" D9 [6 J
  5.     # 在这里添加代码,处理文件路径% a( N\" [1 n; X

  6. 1 ^9 y6 k) B8 Q) B
  7.     print("选择的文件路径:", file_path)
    $ x8 P7 T\" H) m) G# k9 W- F

  8. 8 G. W6 u1 P) b/ i- z5 |
  9.     return file_path
复制代码

  1.   P+ L\" J/ g. Y+ [5 d7 @
  2. # 打开原图像
    2 f3 w% M4 Q- N
  3. ; \* S2 x! H' H7 G1 ^
  4. # img = Image.open('image.png')
    ( r  A* V5 U! ~- A  R( z' V

  5. 7 }- v' B8 F  _5 g
  6. filePath = open_file_dialog(), M/ C; [  l& J- ?8 z2 v! P1 e  [* u/ w

  7. * Y3 c8 i\" y1 c- n0 ?4 v
  8. img = Image.open(filePath)
    ) }1 s7 r1 C$ i+ g; M( I; v
  9. 0 {* }% c0 J# _\" R5 p& ~5 U6 t
  10. # 设置增强因子
    6 u7 A: n' A/ G  S( j

  11. * @$ R; G% ]4 O4 ~
  12. factor = float(input('请输入增强系数(1.0~99.9):'))( W' f\" }8 {3 X5 Q3 P! _/ K! n

  13. / _$ `( ~8 J: f+ Y! }6 w
  14. / z8 U$ k4 A$ f7 t- k, Z
  15. 5 a, {3 F3 r9 q$ m! m* V% W  M1 u
  16. enhancer = ImageEnhance.Sharpness(img)
    0 ]. n5 D\" p! ?% \& p# q$ ^2 q
  17. 1 i# U& F4 p, p+ x/ ^5 p0 z

  18. 5 W6 `- \$ S4 y' {

  19. ) {( O1 |, p5 f! F0 y: t* h
  20. # 增强图片1 ~' O1 K  V( \$ u
  21. 3 s\" z  e$ T4 j6 a2 E) f2 ?9 s  |
  22. img_enhanced = enhancer.enhance(factor)+ b6 z3 j9 q2 L3 I8 \0 u5 Q

  23. 8 M* Z3 l- s4 o: F$ f8 k

  24. & Z1 l0 |: A: |; a
  25. 7 T3 F% A, J( [3 E6 r* t
  26. # 保存增强后的图像/ o\" ~8 w8 Q. ]8 ~3 ~, L. Z0 w
  27. 3 `7 d6 i0 b% w; U1 A2 R/ G
  28. arr = filePath.split('/')% |8 ?5 D4 w, N3 {( u3 `! i5 O
  29. 5 d* s4 {2 g8 J
  30. i=0; d, ^  H7 |: D+ X$ x
  31. 7 X. a6 o# ]7 }6 `2 ?. z2 w9 ?$ d) K9 K( G
  32. fileDir=''
    ; ^3 e5 f1 [0 _: w& j0 I* P. ?

  33. 1 o2 m  s  U' O! {
  34. len = len(arr)\" `+ k# [0 h$ {0 v, k2 N
  35. * @1 _% v8 Q4 u* P
  36. while i < len-1:8 J- {% M( D3 ~0 v0 p

  37.   L+ i7 |/ W1 J2 o' X6 A& B7 Z% D
  38.     fileDir += arr[i]+'/': c! |% I- t2 F* S/ w
  39. - h) @# J8 _: i# d4 d7 x
  40.     i += 1
    # Q3 y; J) y1 v; y

  41. 4 i) [! Z6 t/ X# T2 r& f& K

  42. / L8 W, w\" ^. w3 g3 @

  43. ; W; `9 m+ ?$ B; a( }
  44. img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])7 \8 v/ n  E! E5 Q\" f1 B! S, C

  45. \" V7 n$ C5 s; T6 ]  T: k
  46. print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码
应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:
5 E8 N0 O5 e5 c! J( b+ H2 i! R
; z4 z' p& Q8 e7 y2 W$ I增强锐度
  1. from PIL import Image, ImageEnhance; z$ y% L+ T  V( A/ m
  2. 6 i% j- Z. E/ C& k4 N. i

  3. 7 c, v& c. F0 f7 }
  4. + _, _! o$ i+ E- S
  5. # 打开图片, R+ ^9 L- M* X& I
  6. & O+ n  z: e- n# p6 H
  7. img = Image.open('image.png')
    % w1 W; @# S6 G* E

  8. $ q# X) f# y* q  |/ n\" z' p! _' b- S
  9. / y( ?7 g4 n; \5 e1 ?

  10. ! z( y# B5 e% g' m2 f# x7 U
  11. # 增强锐度# Z; J3 ^4 ?5 e8 V0 |& ]: O9 o: Q- \

  12. 7 U7 R\" v' C; @9 d$ M6 S
  13. sharpness = ImageEnhance.Sharpness(img)) n: Z' C. I/ ?

  14. - t$ n# ^8 B  }. S! p  V
  15. img = sharpness.enhance(1.5)4 b/ I$ _' v! B: ]1 ?; ~

  16. 8 ^6 r  v# t. `( a& W4 ~

  17. ! d: @; Y6 q; J% X# e  `; a

  18. 4 w\" ^% |6 @/ v7 o9 X
  19. # 显示图片
    1 @$ r$ E: H7 Z4 ?! q; [8 |9 _

  20. 2 [! h  o; B5 o0 N+ R
  21. img.show()
复制代码
增强对比度
  1. from PIL import Image, ImageEnhance# |6 a9 g+ `\" J  B5 k

  2. 1 g, ]5 _7 ]; M, d: R

  3. \" O9 [* C& P* N9 X% a! F7 G
  4. ( w) J5 F$ \4 l5 V( g4 ^
  5. # 打开图片
    ) S) T9 Q3 S4 H% w9 \  C# b
  6. - T) v' {7 g6 B: K
  7. img = Image.open('image.png')
    6 s* B4 g1 W! i, m3 E1 h
  8. 1 v9 Z. w, F# g* s
  9. 0 [; H$ p\" ]1 B\" r
  10. 6 S* n\" }6 w, i+ f2 c
  11. # 增强对比度% A0 e$ q5 I' F: J

  12. ( C% C% ]6 X5 |
  13. contrast = ImageEnhance.Contrast(img)2 b+ z8 q; T1 q- C

  14. 4 ~8 R; H) ]( u: w\" L2 ~. `6 g2 g
  15. img = contrast.enhance(1.5)
    ) {. [4 V. _$ L/ V' l$ e

  16. 9 a) y! |  E- ~! S7 k. _
  17. % E( V  ^, ]5 ^9 ?
  18. * u) ?( t1 h/ ~3 u: }\" `; o  X
  19. # 显示图片
    & Y4 ]. ~; ?! q  i
  20. 9 {( d8 f, L1 |( I
  21. img.show()
复制代码

5 e% S# F3 w! \% B2 s- g7 V
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-17 01:54 , Processed in 0.424361 second(s), 51 queries .

回顶部