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

帕勃罗·埃斯特拉达(Pablo Estrada)

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

pygame窗口

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

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

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

路易吉

我对的调用并不十分熟悉pygame.surfarray.array2d()但是,由于要从二进制颜色布局转换为较小的二进制颜色矩阵,因此可以使用新的比例对原始图像进行细分,以便为生成的正方形正确着色。我举一个例子。

假设您的初始图片是14x10,并且希望有7x5的矩阵。您的初始图像如下所示:

[[0,0,0,0,0,0,0,0,0,0,0,0,0,0],
 [0,0,0,0,0,0,0,0,0,0,0,0,0,0],
 [0,0,0,0,0,0,0,0,0,0,0,0,0,0],
 [0,0,0,0,0,0,0,1,0,0,0,0,0,0],
 [0,0,0,0,0,0,1,1,1,0,0,0,0,0],
 [0,0,0,0,0,1,1,0,1,1,0,0,0,0],
 [0,0,0,0,1,1,1,1,1,1,1,0,0,0],
 [0,0,0,1,1,1,1,1,1,1,1,1,0,0],
 [0,0,1,1,0,0,0,0,0,0,0,1,1,0],
 [0,1,1,0,0,0,0,0,0,0,0,0,1,1]]

您需要做的是x方向除以7,y方向除以5。由于我选择了不错的数字,因此您将要看到的大图像的切片将为2x2。以左上方的2x2块为例:

[[0,0],
 [0,0]]       ->      [0]

此微型矩阵映射到7x5图像的单个像素。显然,在这种情况下,它将为0。让我们看一下右下角:

[[1,0],
 [1,1]]       ->      [1]

这将映射到7x5图像中的值1。如您所见,此示例中的棘手情况是当您具有等于1和0时。幸运的是,这并不是一个大问题,因为您的初始图像始终至少为100x100。

将这种方法应用于我的示例,缩小的7x5图像如下所示:

[[0,0,0,0,0,0,0],
 [0,0,0,0,0,0,0],
 [0,0,0,1,1,0,0],
 [0,0,1,1,1,1,0],
 [0,1,0,0,0,0,1]]

伪代码步骤:

  1. 找出最小矩阵的大小(分别除以5和7)。这将适用于任何尺寸大于7x5的图像

  2. 对于每个迷你矩阵,计算黑色和白色空格(0和1)。

  3. 确定最终7x5矩阵中的空格应为黑色还是白色。在我的示例中,我说如果(空格(白方块的数量> =黑方块的数量))的最终空间应为黑色。我担心使用此功能会给您带来麻烦,因为与7x5分区的笔相比,您的笔尺寸相对较薄。如果这是一个问题,请尝试类似if(白方块的数量* 2> =黑方块的数量)。有效地增加了白色正方形的权重。

我很高兴对此伪代码进行详细说明。请让我知道。

最后,如果您仍然遇到问题,我可以尝试使用大于7x5的尺寸。这将为您提供更高的精度,但会降低OCR算法的成本。祝你好运。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将32位图像转换为黑白黑白图像时遇到问题

来自分类Dev

将整数矩阵转换为位串?

来自分类Dev

将整数矩阵转换为位串?

来自分类Dev

将JLabel矩阵转换为图形显示

来自分类Dev

如何将矩阵 7x7 转换为字符?

来自分类Dev

如何将BufferedImage转换为黑白?

来自分类Dev

使用Ghostscript将PDF转换为黑白

来自分类Dev

强制将灰度PDF转换为黑白?

来自分类Dev

MATLAB:将RGB转换为黑白图像

来自分类Dev

如何将 0x80 转换为 7 位可变长度整数?

来自分类Dev

将排名向量转换为矩阵以显示模式

来自分类Dev

将Int值转换为位值以进行网格显示

来自分类Dev

将 7 位或 8 位数字转换为真实日期

来自分类Dev

VBA:将1x1矩阵转换为整数

来自分类Dev

将1x1稀疏矩阵转换为标量

来自分类Dev

将矩阵转换为 128x128 图片

来自分类Dev

在将黑白转换为PNG时遇到问题

来自分类Dev

将黑白数组转换为python中的图像?

来自分类Dev

如何将照片转换为ImageMagick的黑白图像?

来自分类Dev

Android,内存不足将转换为黑白

来自分类Dev

将黑白数组转换为python中的图像?

来自分类Dev

如何将TIF转换为黑白单色TIF

来自分类Dev

将黑白视频转换为白色和 1 种颜色

来自分类Dev

R将日期转换为错误的格式(将年份转换为5位数字)

来自分类Dev

将矩阵转换为列表

来自分类Dev

将关系转换为矩阵

来自分类Dev

将矩阵转换为列

来自分类Dev

将栅格转换为矩阵

来自分类Dev

将1x4矩阵转换为4x1矩阵