这个答案实现了我在评论中所说的。在

我对你的代码做了一点修改,用opencv避免了形式的变化。代码是用python3.5编写的

为了提取数字,我将图像按列求和并缩放结果数组以得到check。我在这里操作您已经剪切的gray图像,有效地去除了下划线。在x_sum = np.sum(gray, axis = 0)

check = ((x_sum)/np.max(x_sum)*10)

该数组现在可用于与阈值进行比较,以识别字母/数字所在的区域,例如:

^{pr2}$

现在,我们将使用此信息修改图像并删除check数组值为0的区域,例如:

^{3}$

因此我们有这样的形象:

你已经在做的事情还可以进一步处理。这提供了独立的字母/数字,然后可以进行后处理以供学习。在

下一步是缩放字母/图像的大小,这些字母/图像由相同数量的特征描述。在

最后,您可以使用预训练分类器来预测最可能的字母/数字。在

完整代码如下:import numpy as np

import os

import matplotlib.pyplot as plt

from scipy.stats import mstats

import scipy

from matplotlib import gridspec

from PIL import Image

image = Image.open("testl.png")

f = image.convert('I')

gray = np.array(f)

gray[gray<200] = 0

gray[gray>=200] = 255

gray = gray[~np.all(gray == 255, axis=1)]

gray = gray[:,~np.all(gray == 255, axis=0)]

gray = gray[~np.all(gray == 0, axis=1)]

plt.imshow(gray, cmap='gray')

x_sum = np.sum(gray, axis = 0)

check = ((x_sum)/np.max(x_sum)*10)

plt.plot((check<8).astype(int))

plt.show()

plt.matshow(gray)

plt.show()

for idx,i in enumerate((check<8).astype(int)):

if i < 1:

gray[:,idx] = 255

plt.matshow(gray)

plt.show()

words = np.hsplit(gray, np.where(np.all(gray >= 200,axis=0))[0])

gs = gridspec.GridSpec(1,len(words))

fig = plt.figure(figsize=(len(words),1))

i = 0

for word in words:

word = word[:,~np.all(word >= 230, axis=0)]

if(word.size):

ax = fig.add_subplot(gs[i])

print (word.shape)

i = i + 1

ax.matshow(word, aspect = 'auto')

plt.show()

最后生成所有独立的字母/数字,例如:

python识别电脑图像_计算机屏幕图像识别相关推荐

  1. python识别滑块验证码_干掉验证码!使用Python图像识别移动滑块验证码

    文章来源:python干货铺子 ❞ 前言 验证码往往是爬虫路上的一只拦路虎,而其花样也是层出不穷:图片验证.滑块验证.交互式验证.行为验证等.随着OCR技术的成熟,图片验证已经渐渐淡出主流,而「滑块验 ...

  2. python识别魔方色块_【雕爷学编程】MicroPython动手做(08)——零基础学MaixPy之识别颜色...

    早上用百度搜了一下"颜色识别",多少有了一点大致的概念,还是老办法,动手做,多实验,往前走,还请各位老师多多指点. OpenCV(百度百科) 是一个基于BSD许可(开源)发行的跨平 ...

  3. python识别音乐歌曲_如何轻松识别您正在听的歌曲

    python识别音乐歌曲 Do you have a song stuck in your head? Did you listen to a new song and now you're humm ...

  4. python制作电脑软件_利用PYTHON制作桌面版爬虫软件(二)

    今天继续新的专题.主要讲解[利用PYTHON制作桌面版爬虫软件]下的如何实现界面功能(一).该讲主要包括以下三个内容:掌握如何编写主函数,运行界面. 了解pywin32模块. 如何用python识别Q ...

  5. python识别图片文字_如何利用Python识别图片中的文字

    一.前言 不知道大家有没有遇到过这样的问题,就是在某个软件或者某个网页里面有一篇文章,你非常喜欢,但是不能复制.或者像百度文档一样,只能复制一部分,这个时候我们就会选择截图保存.但是当我们想用到里面的 ...

  6. python数据处理电脑配置_『大数据python计算机基础教学视频教程』入门学python需要什么配置的电脑...

    x = 1 if x 4.2 1) else匹前的缩进相同且最接近的if 2) 改之前y=x 2行,之后是y=x 1先执行 第5题 代码还n = 1 while n <= 5: i = 1 wh ...

  7. python修改电脑名称_修改计算机名称

    思路: 1.拿到注册表计算机名称 1) 打开注册表句柄获取键值并显示到文本框 2.输入新的计算机名称.并写入计算机注册表 1) 将新的计算机名称写入到文本框.通过命令行写入注册表 os模块 syste ...

  8. python识别文字坐标_【Python 教程】使用 Python 和大漠插件进行文字识别

    家里有一台win7系统的电脑,平时可以用来玩玩游戏消磨时间.但是有时候有一些重复的操作实在是无趣,所以打算写个脚本,让其自动化执行. 最终的目标就是把游戏里一些常用的操作都集合到脚本中去,且无序随机执 ...

  9. python识别文字软件_【Python 教程】使用 Python 和大漠插件进行文字识别

    家里有一台win7系统的电脑,平时可以用来玩玩游戏消磨时间.但是有时候有一些重复的操作实在是无趣,所以打算写个脚本,让其自动化执行. 最终的目标就是把游戏里一些常用的操作都集合到脚本中去,且无序随机执 ...

最新文章

  1. 「干货」小程序风头正劲,传统商家该如何把握机会抢占红利?
  2. linux下sql查询的使用,sql-server – 如何在Linux上查看SQL Server中的执行计划
  3. 【JVM】JVM系列之JVM体系(一)
  4. sudo出现sudo:must be setuid root问题的解决方法
  5. 深入学习SAP UI5框架代码系列之一:UI5 Module的懒加载机制
  6. 数据结构——图的深度遍历
  7. 计算机机房管理具体工作和职责,机房管理
  8. android Handler更新UI
  9. 在Mac上安装Linux的行为是否应该被鄙视?
  10. [Java] 蓝桥杯ALGO-58 算法训练 字串逆序
  11. Android蓝牙开发教程(三)——蓝牙设备相互通讯
  12. stm32——使用串口下载程序
  13. eclipse:设置maven本地仓库
  14. 阿帕奇服务器配置站点,Apache的基本服务器配置
  15. 那些年我们一起追过的ILSVRC冠军
  16. [羊城杯 2020]A Piece Of Java
  17. linux桌面分辨率太高,将Ubuntu调整到高DPI分辨率屏幕
  18. 辽宁科技大学计算机应用技术研究生,2020年辽宁科技大学计算机应用技术考研经验分享...
  19. 《走进人工智能》学习笔记
  20. Web页面动态验证码

热门文章

  1. 一荣俱荣,豪取多项冠军后荣耀着手年终奖改革
  2. 经典案例oracle和mysql分别比较
  3. python:机器学习(sklearn)(一)
  4. 工业机器人实训实验平台
  5. 2017年中国大数据发展趋势和展望解读(下)
  6. 2019年暑假 纪中培训总结
  7. android动态改变布局,Android 动态添加布局的两种方式
  8. 2021-09-29 每天几个LCEDA小知识——如何修改元器件封装
  9. Python实战——1_1.网页制作
  10. 在matlab中,利用for循环来生成一个矩阵,并分别对该矩阵的行和列进行求和