QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-21 09:28 |只看该作者 |正序浏览
|招呼Ta 关注Ta
核心代码
  1. # 原始文件7 W5 T7 r+ I8 T- Q0 Y$ q: A

  2. & P+ t# N8 G2 T0 O4 [: R
  3. enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))
      Z% d( v, z( c8 ?# g

  4.   C4 q2 T; Z# ?) x0 k# q) o
  5. # 增强图片7 c/ u+ T; H: P$ N$ b
  6. 2 i8 i1 B2 u7 z
  7. img_enhanced = enhancer.enhance(增强系数float)2 i\" S\" [0 m) P* p! [
  8. 2 @. a9 N0 t- s; A/ C5 K1 W
  9. # 输出目标文件
    4 x% j: j; U, h; _
  10. \" F- h. o* I3 {; r2 F
  11. img_enhanced.save('文件名.png')
复制代码
注意,输入输出文件格式必须一致* Z6 ~( [9 I( Q. J8 ?

! R, ?( J- d; p0 p5 c所需依赖- v' {8 ~3 Y: [5 F. g' C. h5 j
# 文件选择框,可以直接输相对路径不引入这个
  1. from tkinter import filedialog
    7 a- _9 f$ Y% Y

  2. 8 r* Q: x, |( N% Y/ I
  3. # 增强- n( s3 k; a% m5 J
  4. 5 q4 O/ F  k7 u( _1 W
  5. from PIL import Image, ImageEnhance
    * y2 v0 l- x7 p\" o, I6 [4 G2 D% ~
  6. , @% o\" i4 G% i) y3 x9 J* A5 u
  7. 代码实现
    + N& ~5 L5 o% k- d6 j( l

  8. 4 T. `0 p. K1 m( K) v9 V
  9. from tkinter import filedialog; z7 G4 v* k$ K1 X: {6 \1 R7 K
  10. ' B8 Y5 P8 V4 A, p1 K' e! R+ O2 V
  11. from PIL import Image, ImageEnhance
复制代码
  1. def open_file_dialog():
    1 l\" c' x: @6 c& b: M6 t
  2. 3 u; j7 G% C& z2 C
  3.     file_path = filedialog.askopenfilename()
    + z' T3 a! R- A0 l8 M3 ]
  4. : L! g: J5 O( _- }9 b
  5.     # 在这里添加代码,处理文件路径0 e$ M6 p0 q: b, p1 i! U; Z2 o
  6. 8 M( L$ ?$ J5 i. i4 ~
  7.     print("选择的文件路径:", file_path)
    3 N3 Z) ]$ J% |\" d7 }7 g- X

  8.   c3 _' B! @5 Q- S
  9.     return file_path
复制代码

  1. 8 G2 r8 U4 D! s: O
  2. # 打开原图像
    ! R: h0 V; H\" x+ `2 S0 y1 ?
  3.   `5 f5 \- e! _( _
  4. # img = Image.open('image.png')6 ?/ |+ a8 R; B  ]
  5. 4 L& ]. k8 g0 k' b( `: X
  6. filePath = open_file_dialog()
    4 @2 ?% B\" {/ w& g$ A9 E% e
  7. ) H8 I7 I0 y  H
  8. img = Image.open(filePath)
    8 H- p% M' s$ v

  9. & E' C* K+ g) ^0 C
  10. # 设置增强因子5 T) X$ P& f& k& v

  11. 2 P3 G/ h\" Q: w% {$ G5 P! d6 ?, f/ V
  12. factor = float(input('请输入增强系数(1.0~99.9):'))
    ; u- @3 `( l4 z) V1 r% s

  13. 6 U$ e6 k. p1 x0 w
  14. : D/ |& X\" c! i/ x! D( ~
  15. , e\" G( R3 w/ q' S
  16. enhancer = ImageEnhance.Sharpness(img)( y  g$ B8 W1 h7 l* w2 O8 _

  17. ) i- o& q+ Q, W% K, I

  18. . ?& |4 G- L2 n3 d9 t' N. Y! U* }% M

  19. $ x; C; P9 z  Z. G
  20. # 增强图片
    7 |8 c$ b8 U6 y
  21. 4 m3 v* \4 L6 S! r, L% k  b6 h
  22. img_enhanced = enhancer.enhance(factor)+ b7 t5 V; Q7 Q
  23. - [4 y0 O! J3 t\" ~
  24. 7 a1 J/ Q) m: T( T+ t
  25. # Q2 @( ]/ u: [9 r2 k
  26. # 保存增强后的图像
    % ~3 W. I( u$ D. o8 O5 `8 c1 X

  27. 7 T+ f4 L\" R& `2 t& h  C; C$ A
  28. arr = filePath.split('/')) K\" D9 }5 M! N( x

  29. . e! Z0 Z, q0 x7 y4 r; a
  30. i=0
      F\" e2 d) `$ A% D2 E
  31. / }! B) U: F  v4 }) ~% j
  32. fileDir=''
    ; u: h2 y0 j: ]7 {

  33. 9 M  D9 h& @4 M
  34. len = len(arr)! p; |; a) A# J8 F5 U% z% U+ e4 I7 i
  35.   f0 s/ Q; \) }1 P' w3 n( @\" Y
  36. while i < len-1:
    4 d# X9 ]! b* w6 h$ o4 y/ C, ]0 V

  37. + }* _$ ^  q8 c3 J
  38.     fileDir += arr[i]+'/'
    & w( t  w: ?9 H

  39. - @( n7 O) |; Z( y
  40.     i += 11 {5 I* J  h4 z2 @9 n3 ]\" P7 J

  41. 9 K$ i9 ^) x5 A6 Q- w' X\" V+ H

  42. - J\" ^\" G$ D7 U2 x

  43. + c. ^: e! |2 k1 \6 m# `* V0 `6 J
  44. img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])9 x. P2 r' _- k, z. R
  45. * H) a4 {* O% O6 Z9 R9 q
  46. print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码
应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:% _( n; L% i: k, t; O3 A

; c* ]+ x( i& k& a增强锐度
  1. from PIL import Image, ImageEnhance$ E9 P7 m, I9 L5 O+ E
  2. , A# E: @9 ^. R$ E$ I+ |5 c% G3 L

  3. ; t6 e) ~* s) D! t/ P/ U

  4. : d2 J- a  O8 L
  5. # 打开图片
    . M& D, ]# q; {% C# N

  6. ; J' D9 U2 }6 ~& _1 E) O# r
  7. img = Image.open('image.png')+ B3 x0 b/ {\" O! @- g+ P
  8. + G+ r: [$ s5 }) O  e; ]
  9. $ p# c3 E: C! l8 e; [) s2 A! Z

  10. $ M\" p3 a: v' P& [( L. c
  11. # 增强锐度; E3 N: T' }: G1 k4 t: E' u% O
  12. 8 H. A# u% x/ x8 Q; g) `
  13. sharpness = ImageEnhance.Sharpness(img)  [9 P8 d* }2 q& j2 N
  14. + ?# v5 d( I% Q9 i3 @\" O
  15. img = sharpness.enhance(1.5)
    7 S+ e  G+ |& B7 u! N\" @  W0 K5 ?
  16. . o- n\" a3 Z\" x9 c
  17. $ C+ j% O( R& z3 v  I' `
  18. ( z8 l# n: Y5 U- @! F& {
  19. # 显示图片
    5 S6 u& a. _\" z+ ]) ]1 x

  20. . g/ J* i' l, P7 \4 u
  21. img.show()
复制代码
增强对比度
  1. from PIL import Image, ImageEnhance
    0 c  D. _& ^! F$ H( ~( N6 b+ |
  2. 6 e\" f! u* R% O4 C7 {\" N0 f+ F

  3. . a: g, _\" k9 j6 _* M7 Q6 t! C

  4. / A1 v4 X- I. e. ~
  5. # 打开图片7 R& t7 ^1 `7 i3 s) j

  6. 0 g0 Y+ D5 x. m, v+ Y# |
  7. img = Image.open('image.png')$ k- F/ K\" f5 M7 S. d7 x
  8. 8 M7 a7 k- A% g. {
  9. 1 L8 w) `( p0 _3 Z! K$ V1 V& k

  10. ; G8 y$ a7 Q: a
  11. # 增强对比度$ _- I) t9 ^- e8 j+ ]- j3 j
  12. 8 N. _$ v' L$ C# P% _4 R
  13. contrast = ImageEnhance.Contrast(img)3 z, F$ P# t7 C1 k

  14. ) b( e1 q\" `% P4 B* V
  15. img = contrast.enhance(1.5)
    6 W9 v) {/ E2 ~' @

  16. # T: d7 R\" Y9 v  E/ r
  17. 8 N0 F4 ^+ ]; a& u- o3 v2 ~- X

  18. ; g6 s9 Y. k) Y: c; P. ]
  19. # 显示图片% i3 v  R\" I- [5 n+ v

  20. ' ~* W1 x0 O9 q1 M
  21. img.show()
复制代码
9 t) q6 h5 @  v: v( J8 {# \+ A
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-29 07:35 , Processed in 0.402681 second(s), 51 queries .

回顶部