QQ登录

只需要一步,快速开始

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

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

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

1198

主题

4

听众

2977

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-21 09:28 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
核心代码
  1. # 原始文件6 M3 y' l; G. v6 f1 u1 z8 j0 w

  2. \" B4 U  J7 {7 ]1 v* ?
  3. enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))+ |: W& X. K# c3 Q4 ?( u* u, H9 L

  4. # z4 I  J, ~  o4 S
  5. # 增强图片/ g0 x) a+ ]\" Z\" R4 a# m$ W3 o

  6. 3 N2 c' q( h' k$ ~
  7. img_enhanced = enhancer.enhance(增强系数float)
    , V: `# `$ p6 _6 |- L\" k
  8. 9 l3 n' H% X( a3 Z; m, v+ h$ x\" x4 {
  9. # 输出目标文件
    4 `6 C) u* k; F9 I
  10. : |, M! E0 }' l$ c; ]7 `
  11. img_enhanced.save('文件名.png')
复制代码
注意,输入输出文件格式必须一致
+ u; h" V+ A( r9 I; d
! G: j( l. E% v4 `所需依赖5 A7 m- e: L7 @* a* x
# 文件选择框,可以直接输相对路径不引入这个
  1. from tkinter import filedialog( R& J: C\" b- ^
  2. : ?. C, L$ T2 e0 e# W: F. R
  3. # 增强
    * o\" g\" g8 X9 t. W. O+ O/ Y; e4 k\" a
  4. : Y4 }( h. A' ^0 V
  5. from PIL import Image, ImageEnhance. R5 p$ o( K' t\" ?

  6.   D. M8 c\" v0 R* _# [
  7. 代码实现$ ]; ~% k$ s9 i  ^, i
  8. ; I0 T% M0 \% m
  9. from tkinter import filedialog
    , ?. L7 `1 X* w3 I
  10. 1 @\" C' r% }* S9 j\" M4 B
  11. from PIL import Image, ImageEnhance
复制代码
  1. def open_file_dialog():\" x9 a4 E* X1 H' \\" _
  2. 4 H( |5 {6 T5 ~; q# J# O
  3.     file_path = filedialog.askopenfilename()
    # N; ?; a4 R9 u

  4. 9 @. E' _8 N6 `4 M' U. u- {
  5.     # 在这里添加代码,处理文件路径8 g$ y$ w: I1 Q3 W9 [! L
  6. % n3 ]+ J% e, k\" k3 D
  7.     print("选择的文件路径:", file_path)9 J- R3 s1 ?; K! I. P
  8. ; B+ \3 {8 _2 a7 k2 Y
  9.     return file_path
复制代码

  1. 7 E' t( P$ V$ _8 j. k
  2. # 打开原图像
    $ R# n\" q2 P5 e

  3. : I9 _! y4 v$ S! M
  4. # img = Image.open('image.png')
    8 `  x; U1 S5 A4 A, i% I6 ?' k

  5. ' y7 `7 n' x& r3 o# a8 N+ s
  6. filePath = open_file_dialog()6 o8 Y- ^& R- P

  7. : B: H/ u+ _- ~4 {( q\" F
  8. img = Image.open(filePath)
    $ h3 P1 n; [. N

  9. 6 [; Y/ S( N- C& [
  10. # 设置增强因子  S/ w& T$ _% S  }7 L2 }

  11. & p; H\" l4 B% n  h- n
  12. factor = float(input('请输入增强系数(1.0~99.9):'))
    7 U1 Y4 b* |% g% ~$ d

  13. \" b1 F( u0 V8 L' i/ r- N, M9 u
  14. 8 D9 Y8 j* M, E8 I* y& m6 m7 T! ~
  15. & y9 i& {# B) Y
  16. enhancer = ImageEnhance.Sharpness(img)
    # y  `7 u1 t. S9 Q

  17. % @\" k1 o# t6 z, W8 Z% ~

  18. * A8 g+ `8 x% r

  19. + x4 m/ \0 d8 [\" I, L
  20. # 增强图片
    ! e% W. U. p3 {1 R. K8 S

  21. 1 I/ o5 M5 V$ \9 N
  22. img_enhanced = enhancer.enhance(factor)
    + e# O( E. E% j) E6 h/ `5 _

  23. 1 ~( N\" @3 |4 J* Y' c% K0 X9 \

  24. ; b1 T& M+ ~; E2 @
  25. 4 k& W# C& ]+ l9 _5 k5 ^
  26. # 保存增强后的图像
    0 ]1 w+ P) k* H\" I
  27. $ U6 k' I; X) y' e- T( E2 k
  28. arr = filePath.split('/')
    * ?1 p- J% S( ?$ u! o# I+ M9 W

  29. # k5 D2 l  s2 `+ J' U+ J
  30. i=0
      d$ o( b0 O8 f9 Q

  31. * v9 R$ Q+ t  M2 Y5 f6 e
  32. fileDir=''
    9 f$ u/ c& m4 b7 p, X: c: k: n

  33. 0 d$ v( k: @: e( E8 _, H1 B
  34. len = len(arr)9 `; P) ?: v! N
  35. - {' i9 c0 L) |\" F3 j
  36. while i < len-1:$ c7 q: \+ U9 [
  37. 7 m. {7 z. i9 r- m, I
  38.     fileDir += arr[i]+'/'
    \" U1 I4 l$ ]9 M
  39. 7 C0 r1 y9 X1 Z) s
  40.     i += 1
    6 f( N1 U6 c) F0 w- l# {* {/ W: X
  41.   ?1 Q$ t\" Z0 m# g  @

  42. # c+ @9 f2 i6 b+ M3 o
  43. : m: K: J2 e. `1 N: I7 v& X
  44. img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])
    \" ?6 j/ {; m: k\" K0 X

  45. : F, Q1 l2 h\" k. ^5 O
  46. print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码
应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:
" k3 r6 g# m' `' W9 F& @3 Z
4 c* ?. S4 ]& z增强锐度
  1. from PIL import Image, ImageEnhance8 s+ ~& {9 A; ~/ g# t& d; y. X2 b

  2. 1 Y. X7 e\" k: ~) a- c0 E

  3. ( H1 b\" q% e1 @8 D7 S
  4. \" b; m3 A8 n& K1 Z9 D: K
  5. # 打开图片7 l, x+ B1 L1 Z; k
  6. # R8 z3 {. s8 [4 ?# s8 z
  7. img = Image.open('image.png')
    ; D. j6 D$ d% l* L& x$ w

  8.   A8 b' O) W& q1 f1 k( A5 L7 y

  9. 4 h, n; E! v5 Y- O* E2 {0 P

  10. & p2 U# O6 ~+ X0 x3 H
  11. # 增强锐度
    - q( V8 T; S5 n1 ^8 S* n' B

  12. $ i) d4 S% o2 D3 _+ M& [
  13. sharpness = ImageEnhance.Sharpness(img)( f, }5 W5 Z$ o4 v7 T
  14. : S6 u2 A0 E- z9 \( W$ I% O\" E% x
  15. img = sharpness.enhance(1.5)
    : a3 M4 W* L2 x# P) M: @9 O

  16. 7 @3 c4 z* a1 X6 t% M0 |1 Q! J
  17. . B% v\" }& N' ^) i( d8 v
  18. / |! T  ~  J8 m
  19. # 显示图片
    4 _7 v+ `2 r% Z\" z7 u' v
  20. 2 X% }$ W1 |. z' U
  21. img.show()
复制代码
增强对比度
  1. from PIL import Image, ImageEnhance
    / M' O* W4 L& y. K+ K
  2. $ Y1 [/ Q5 s% `! |' ]3 Y( o4 q
  3. ! K* H# p9 f  D$ c& `) f
  4. 7 Z( h4 ?% `/ A1 Z  b/ `$ |
  5. # 打开图片
    . W; {. g- I7 J$ ~

  6. 1 A5 y- N$ s2 L
  7. img = Image.open('image.png')
    $ G; b6 p& L6 k1 L

  8. ; V. L6 s0 e# ]# b) B

  9. & I% q# x7 n# N' k9 \* L$ `6 |
  10. * l& R/ r. @- {
  11. # 增强对比度8 k! N' m\" [. P& w1 i5 Q

  12. & s  E8 Q4 Q\" h+ t: a5 C
  13. contrast = ImageEnhance.Contrast(img)
    + c( \: O. \, s% e8 q

  14. * R9 z4 K% o0 b. r, s) Y
  15. img = contrast.enhance(1.5)0 S  M7 v\" K$ c$ o$ I4 s

  16. : c0 s: P) c3 t! Z& C

  17. & d  w! x6 ?; z
  18. - o4 Q* R8 {4 p& S+ m7 M9 q% O+ h1 h
  19. # 显示图片
    5 I! @7 e2 D0 M$ U* E
  20. 9 u+ E5 C& H. I, C4 y
  21. img.show()
复制代码

  `" T" h; l$ s0 Q% N0 }: j! 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-9-22 16:58 , Processed in 0.921506 second(s), 51 queries .

回顶部