【326】PIL 截图及图片识别
参考:Python人工智能之图片识别,Python3一行代码实现图片文字识别
参考:Python实现截图
参考:Python编写屏幕截图程序方法(clipboard)
一、定位截图
安装库:pillow(PIL 是 2.x 版本的,pillow 是 3.x 版本的)、pytesseract(需要修改配置)
代码实现:(全屏 - 对于双屏幕来说,只能截取主屏幕)
1 2 3 | >>> from PIL import ImageGrab >>> pic = ImageGrab.grab() >>> pic.save( 'D:/tmp/4.jpg' ) |
代码实现:(全屏 - 通过 PrintScreen,可以实现两个屏幕截图,获取剪切板的图像)
1 2 3 4 | from PIL import ImageGrab # 可以实现 printscreen 按键,获取全屏截图 pic = ImageGrab.grabclipboard() pic.save(r "D:\tmp\save.jpg" ) |
代码实现:(按照范围截屏)
1 2 3 4 | from PIL import ImageGrab # 输入屏幕左上角和右下角的坐标 pic = ImageGrab.grab(bbox = ( 0 , 0 , 100 , 100 )) pic.save(r "D:\tmp\4.jpg" ) |
代码实现:(按照范围截屏,但是对于双屏幕,需要通过 printscreen 获取截图,再按照坐标点进行剪切)
1 2 3 4 5 | from PIL import ImageGrab # 通过 printscreen 获取全屏截图 pic = ImageGrab.grabclipboard() pic_mini = pic.crop(box = ( 200 , 200 , 400 , 400 )) pic_mini.save(r "D:\tmp\save_min.jpg" ) |
二、图片识别
安装库:pillow(PIL 是 2.x 版本的,pillow 是 3.x 版本的)、pytesseract(需要修改配置)
安装软件:tesseract-ocr
代码:中文(修改 lang 为 eng,可以用来识别英文)
1 2 3 4 5 | from PIL import Image import pytesseract #上面都是导包,只需要下面这一行就能实现图片文字识别,中文识别 text = pytesseract.image_to_string(Image. open ( 'D:/tmp/1.jpg' ),lang = 'chi_sim' ) print (text) |
实现将截图直接进行识别,不需要存储~
1 2 3 4 5 | from PIL import Image import pytesseract pic = ImageGrab.grab(bbox = ( 200 , 200 , 400 , 400 )) text = pytesseract.image_to_string(pic, lang = 'chi_sim' ) print (text) |
三、获取 RGB 值
1 2 3 4 5 6 7 8 9 10 | >>> from PIL import Image >>> lena = Image. open ( "D:\\Code\\Python\\test\\img\\lena.jpg" ) >>> lena_L = lena.convert( "L" ) >>> lena_L_rgb = lena_L.convert( "RGB" ) >>>lena.getpixel(( 0 , 0 )) ( 197 , 111 , 78 ) >>>lena_L.getpixel(( 0 , 0 )) 132 >>>lena_rgb.getpixel(( 0 , 0 )) ( 132 , 132 , 132 ) |
posted on 2018-06-23 20:23 McDelfino 阅读(7151) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)