python - 将 PyGame 黑白显示转换为 7x5 位矩阵

标签 python image-processing matrix pygame ocr

我有一个 Pygame 黑色显示器,我将在其上绘制一个白色字母,如下图所示。显示尺寸可以是 100x100 像素以上的任何尺寸。

pygame window

我知道我可以使用类似的方法来获取表面二维数组:

    miSuface = pygame.display.get_surface()
    miCoso = pygame.surfarray.array2d(miSuface)

但是,我想以某种方式将此数组转换为 7x5 位矩阵,其中 0 对应黑色像素,1 对应白色像素。我的最终目的是使用该矩阵来训练神经网络并创建一个简单的 OCR。我有什么办法可以实现这个目标吗?或者有更好的方法来获得 7x5 矩阵吗?

最佳答案

我不知道有什么方法可以立即将 array2d 压缩为较小的数组或具有 1 位颜色信息的数组。但是,您可以执行以下操作:

  1. 迭代数组。如果颜色小于或等于888888,请将其更改为000000。如果大于或等于888888,请将其更改为FFFFFF。
  2. 创建一个新的 [7][5] 数组。
  3. 再次迭代。将数组中任意给定第 35 个像素中每个像素的值(黑色 = 0,白色 = 1)相加。样本大小将完全取决于原始 array2d 的大小。如果该 block 的平均值大于或等于 17.5,则向矩阵添加一个白色元素。如果它小于 17.5,请在矩阵中添加一个黑色元素。

关于python - 将 PyGame 黑白显示转换为 7x5 位矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26621138/

相关文章:

python - SQLAlchemy:声明式 ORM - 使用 GIST 和 TSRANGE 构建索引

python - 当没有用户输入时如何重复该功能

java - FloodFill 算法填充超出指定边界

java - 递归地改变矩阵中相同的数字

java - JOML(使用 LWJGL) - 从 rx、ry 和 rz 值获取旋转矩阵?

python - 操作系统错误 : Cannot load native module 'Crypto.Cipher._raw_ecb' on Apache mod_wsgi CentOS 8

python - Sphinx 自动摘要为每个类生成两个摘要

c++ - OpenCV - 使用 C++ 填充对象中的空白区域

matlab - 离散小波变换 Matlab

pandas - 如何将带有行和列标签的矩阵数据框转换为常规的 pandas 数据框?