QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2024-3-21 09:28 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
核心代码
  1. # 原始文件
    - V) e; `& R. T  _7 Q  b5 O5 m4 t

  2. - ]7 k; v0 z) i/ V- I& ?' |
  3. enhancer = ImageEnhance.Sharpness(Image.open('文件路径.png'))6 @; B0 Q# Z* v3 |
  4. $ m  Y) Z1 |2 W
  5. # 增强图片4 T; ], c+ M  q; x, i: Z
  6. 4 I5 m' b- Z3 a- R, H
  7. img_enhanced = enhancer.enhance(增强系数float)
    6 B) u3 K/ M. z# M% ~
  8. 7 \\" T\" s/ r* E\" o; i0 ^( l
  9. # 输出目标文件
    + `; J' i1 j7 R
  10. / D6 Q. t1 H/ t( K9 D/ F9 }
  11. img_enhanced.save('文件名.png')
复制代码
注意,输入输出文件格式必须一致
. W4 ]7 e7 }* D% g+ B
) t6 s, F! |( |& Q' q3 e所需依赖) k0 p9 u" t0 X7 y
# 文件选择框,可以直接输相对路径不引入这个
  1. from tkinter import filedialog8 }\" a\" A3 P- U6 ~& F

  2. 4 s( i$ Z# z0 B' T) ^- g7 Q
  3. # 增强\" h' j% W$ |: j; M2 t2 ], ?
  4. $ z\" r/ u( ^) F
  5. from PIL import Image, ImageEnhance\" D; V5 ?$ R4 D3 [. d\" d( L& K/ d! b
  6. & f. F7 o. ~& |4 v; P
  7. 代码实现- b) q\" b\" {/ E- _& U
  8. : ], q* G6 ~\" v( L9 E7 X1 i
  9. from tkinter import filedialog/ N- a* r# E4 ?/ i% k. ~! [
  10.   ~+ i0 c\" t: d' U2 H% L( p5 w
  11. from PIL import Image, ImageEnhance
复制代码
  1. def open_file_dialog():
    , |0 d6 {: z. b* w7 T3 v( W* V+ ~
  2. 9 p6 \  i* D' ~
  3.     file_path = filedialog.askopenfilename()5 G) L) s: d; J

  4. , m) D+ Y4 q6 T6 L! C
  5.     # 在这里添加代码,处理文件路径
    1 E- Z- ~: J0 B1 e+ U2 [2 q
  6. , ]- r$ Y/ m3 u
  7.     print("选择的文件路径:", file_path)+ k/ a6 T( p; D* P

  8. 1 ~0 P% f$ A  \
  9.     return file_path
复制代码
  1. ; R) {  u& |5 d( \\" `; J( W2 b3 k
  2. # 打开原图像/ \7 ^  q\" \! E/ E, U
  3. ' o' e5 w; Z7 u& {\" }* L
  4. # img = Image.open('image.png')
    ) f) y2 b\" ], p% u
  5. 1 i8 G. K* e% M( V
  6. filePath = open_file_dialog(): [. R4 P+ f4 x) ^2 X
  7. \" K& G. [7 i! c. c( R- b- T
  8. img = Image.open(filePath)! Y( {# [/ I0 L$ q

  9. ) r6 \+ {9 h& }
  10. # 设置增强因子9 x: x3 V5 U3 X+ V1 U! e; J* a) a

  11.   z' R5 T- X8 K9 _( r
  12. factor = float(input('请输入增强系数(1.0~99.9):'))
    . q; Q! F/ D1 ?; A
  13. . M1 @4 }) c1 k8 X# h- l

  14. * z; B3 d- u# ^& ^# p
  15. $ j$ S' C# ?, J
  16. enhancer = ImageEnhance.Sharpness(img)1 Y, |( [8 ?0 l+ S3 b. q
  17. ) @% z$ @$ O\" m9 l0 T
  18. ; t+ ?9 e6 {9 \: ?* ^1 y; h( ^

  19. # E0 o# d; K. w0 K
  20. # 增强图片- U0 F3 q5 P\" G& I

  21. % L' U3 M6 ^( E0 h& ^
  22. img_enhanced = enhancer.enhance(factor)
    ; X; @/ I7 u# Z! _
  23. ! D4 G, u: c+ l6 V

  24. ' S- [* U1 P$ u- K- U! s, v- \
  25. \" o& o% _3 R6 X; K  }, K
  26. # 保存增强后的图像
    ! h  D: V  V% c2 C, n- d6 H  E- U
  27. 7 [- i; x. A! P$ c! z
  28. arr = filePath.split('/')8 C* V5 s* p7 ~\" c
  29. ; B; p. I, v' o% Z+ r
  30. i=06 q  A4 d# P/ H! V
  31. 9 l\" k7 X' w! ^. d2 d$ u4 r
  32. fileDir=''
    * t; G0 s\" n# E) k! A

  33. 1 s! @, f3 e& ]+ W
  34. len = len(arr)! \5 C# c; y# K- f( n6 d1 j- r+ D

  35. 6 o( g/ n. S, h9 U) |3 c
  36. while i < len-1:. V. t  [+ C8 _+ r7 m6 t; R4 W

  37. : {0 v( l  |1 G, D& w# _2 [
  38.     fileDir += arr[i]+'/'
    8 P4 k, ~# b8 j7 U. o* p3 ?0 |
  39. 0 m- j6 Z! R  p6 k1 ~
  40.     i += 1! }) W3 q  E3 F: I
  41. 2 |9 O$ f& X3 F+ Y: d0 z
  42. , R! N! z% P  k- b2 J

  43. * ^\" L/ a0 I! S' U0 M
  44. img_enhanced.save(fileDir+'output'+factor.__str__()+arr[len-1])/ p( X' D) D1 E9 U6 k3 C

  45. ; \' l4 Z- U5 P' h9 r: O) A! T
  46. print('输出文件为:'+fileDir+'output'+factor.__str__()+arr[len-1])
复制代码
应用层面的话复制上面代码直接执行即可,唠叨两句讲讲我的实现思路:open_file_dialog()函数使用 tkinter 实现文件获取拿到文件名,用于识别需要修复的image;然后使用 PIL 的增强功能生成好画质修复后的图片;路径拼接确定输出路径和文件名为原路径下的output+原文件名,下面附上PIL的另外两个基础功能,如果有提升锐度和对比度的需求也可以自行改写相关代码:. B3 F2 Z. K/ g6 u! \2 E3 V
  h( T! i+ M& g* {4 |( x$ z* J9 J
增强锐度
  1. from PIL import Image, ImageEnhance
    6 ]  N* T6 a9 S' L
  2. : a- W: `* E1 K9 x$ I
  3. * c& v/ H3 a) Y, F% k
  4. 1 R( A  J* w5 A0 u9 u
  5. # 打开图片
    : T8 k, E' `4 m4 U

  6. 1 p( f( K+ {' v: s, Q$ u6 j
  7. img = Image.open('image.png')3 t- ~1 ?  j\" F8 t: M' x% d

  8. ! U& c! H\" L\" i2 c% J3 L

  9. 5 Q( r% X1 w4 b( J
  10. . O8 ]1 ?  S4 O\" |5 T- p9 M
  11. # 增强锐度0 @/ }5 w- e8 p0 j

  12. 7 C9 S2 t; A, i3 Q. x
  13. sharpness = ImageEnhance.Sharpness(img)5 _9 p7 ~8 t3 o
  14. - w( P- u* D: m) _: p7 i, y8 q7 V, g
  15. img = sharpness.enhance(1.5)
    ! P- m/ p: r+ W4 B5 u# W# m
  16. : L. ]( M+ I* c\" J( v7 \

  17. 2 ~# h. R( V5 T6 g8 E
  18. / p4 Z6 ?4 ^7 K! n5 F: v  v
  19. # 显示图片# M6 H( G0 e! v1 ^0 k! x* |/ H
  20. ' \' |- \4 m- d
  21. img.show()
复制代码
增强对比度
  1. from PIL import Image, ImageEnhance
    2 A* @( h5 N) k7 i4 i

  2. 8 S. J: n1 ?: ^9 D+ q. N
  3. % d( @\" T0 C$ I) i8 ~0 u
  4. 0 W0 ]  Q; x1 ]9 U
  5. # 打开图片& U4 ?. ~$ H9 m9 q
  6. 3 c% g9 ~7 G( R7 o
  7. img = Image.open('image.png'), W/ _7 J6 N' e7 q% _0 p4 \
  8. ; y+ J, e* b: N' n: ?
  9. ; C# T\" f0 d/ p8 h
  10. , `: y4 p& c# A
  11. # 增强对比度. w/ p& t3 u' @2 ]' d

  12. 5 q2 [8 T# m. K6 f
  13. contrast = ImageEnhance.Contrast(img)6 ?9 @5 f0 v* X, t1 P
  14. \" M6 m- B) ~* {7 H% X
  15. img = contrast.enhance(1.5)
    1 u\" @2 A- |& P( _0 ^4 a) c  N

  16. 9 d' }\" @3 P% [# q
  17. 7 h\" ~# `1 o\" o9 W* R6 M6 |% r( @
  18. - E  T# \! C: q
  19. # 显示图片2 O# D9 E; y; Y* K& N) t

  20. + N, d6 n8 d1 B7 A! }  ]6 n
  21. img.show()
复制代码
, i" B* J0 s: w4 {  B; B
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 00:25 , Processed in 0.406023 second(s), 51 queries .

回顶部