图片到0.1文字

时间:2019-03-14 15:55:04

标签: python image text binary python-imaging-library

我需要将图像转换为仅包含0和1的文本或图像。有什么方法可以通过编程的方式做到这一点,最好是在Python上?

这是我的尝试:

步骤1:打开图像:

from PIL import Image
srcImage = Image.open("src.jpg")

enter image description here

第2步:灰度图像:

grayImage = srcImage.convert('L')

enter image description here

第3步:将图像二值化:

binarizedImage = grayImage.point(lambda x: 0 if x<128 else 255, '1')

enter image description here

现在,我将黑点转换为1,白点转换为0,并将其保存到文本文件中,图像高度转换为线(在此示例中为174像素到174行),图像宽度转换为文本长度(在此示例中:310像素到310个字符长)或更大的图像,其中0代替白点,1代替黑点。

这两种情况的解决方案将不胜感激。

完整的二进制代码(binarizing的PIL方式的修改版本):

from PIL import Image
srcImage = Image.open("src.jpg")
grayImage = srcImage.convert('L')
binarizedImage = grayImage.point(lambda x: 0 if x<128 else 255, '1')
binarizedImage.save("binarized.png")

1 个答案:

答案 0 :(得分:1)

您可以为此使用numpy库

from PIL import Image
from scipy.ndimage import zoom
import numpy as np
srcImage = Image.open("src.jpg")
grayImage = col.convert('L')
array = np.array(grayImage)
array = zoom(array, 310/174)
np.savetxt("binarized.txt", array<128, fmt="%d")

np.array将PIL图像转换为numpy数组格式,以给定比例缩放插值数组,array < 128创建二进制数组,fmt="%d"设置结果将保存为整数