猫史档案馆


【AI】机器学习实现数字识别

用户:新时代运筹帷幄的逗比骚年新时代运筹帷幄的逗比骚年查看:21 回复:16 评论:21 创建时间:2021-07-14T15:16:10


center_imagecenter_imagecenter_imagecenter_imagecenter_imagecenter_imagecenter_image


回复

上一页1 页 / 共 1下一页
新时代运筹帷幄的逗比骚年新时代运筹帷幄的逗比骚年

  piclist = pic.tolist()
  k=None
  k_=None
  t=None
  n=0
  for i in piclist:
    for j in i[0]:
      if j==255:
        k=True
        k_=True
    if k_:
      for j in i:
        # 检测是否为黑色
        if set(j)=={0}:
          t = True
          break
    if t:
      break

    n+=1

  piclist = piclist[n:]

  k=None
  k_=None
  t=None
  n=-1
  for i in piclist[::-1]:
    for j in i[0]:
      if j==255:
        k=True
        k_=True
    if k_:
      for j in i:
        # 检测是否为黑色
        if set(j)=={0}:
          t = True
          break
    if t:
      break

    n+=1

  # 下线切割
  piclist = piclist[:-n]

  # 从左至右扫描切割
  line = []
  n=0
  for k in range(len(piclist[0])):
    c = []
    for i in piclist:
      c.append(i[n])
    line.append(c)
    n+=1

  k=None
  data=[]
  c=[]
  for num,i in enumerate(line):
    if k and [0,0,0] not in i:
      c.append(num)
      k=False
    elif not k and [0,0,0] in i:
      c.append(num)
      k=True
    if len(c)==2:
      data.append(c)
      c=[]

  Int_pic=[line[i[0]:i[1]] for i in data]
  pic=[]
  # 图片旋转
  for i in Int_pic:
    image = Image.fromarray(uint8(array(i))).transpose(Image.ROTATE_270).transpose(Image.FLIP_LEFT_RIGHT)
    pic.append(image)

  # print(len(pic))
  # show(pic)
  return pic

点赞0


评论


新时代运筹帷幄的逗比骚年新时代运筹帷幄的逗比骚年

import matplotlib.pyplot as plt
from numpy import *
from PIL import Image

def show(args):
  line=len(args)//6
  if len(args)%6>0:
    line += 1
  for n,i in enumerate(args):
    plt.subplot(line,6,n+1)
    plt.imshow(i)

def save(array_,name):
  Image.fromarray(uint8(array_)).save(name)

def split(pict):
  img = Image.open(pict)
  # 灰度界限,大于这个值为黑色,小于为白色
  threshold = 50
  table = [1 if i < threshold else 0 for i in range(256)]
  # 图片二值化
  img = img.convert('L').point(table, '1')
  # PIL转list
  # global pic
  pic = array(img).tolist()

  l = []
  for i in pic:
    l_ = []
    for j in list(i):
      if j:
        rgb = [255,255,255]
      else:
        rgb = [0,0,0]
      l_.append(rgb)
    l.append(l_)

  ##########图像二值化完毕############
  pic = array(l)
  ####################################

点赞0


评论


新时代运筹帷幄的逗比骚年新时代运筹帷幄的逗比骚年

图片预处理效果

center_imagecenter_image

点赞0


评论


lsk666666lsk666666

传个Github呗,我有点复制不明白代码

点赞0


评论


新时代运筹帷幄的逗比骚年新时代运筹帷幄的逗比骚年

帖子中所发的程序为部分程序(图片预处理的)

点赞0


评论


新时代运筹帷幄的逗比骚年新时代运筹帷幄的逗比骚年

emotion_编程猫_搓头

点赞0


评论


新时代运筹帷幄的逗比骚年新时代运筹帷幄的逗比骚年

from os import listdir
from tensorflow import keras

path = r'drive/MyDrive/Colab Notebooks/PIC/'
w = listdir(path)
w = [path+i for i in w]

点赞0


评论


新时代运筹帷幄的逗比骚年新时代运筹帷幄的逗比骚年

# 训练数据
size = (28,28)
img = array([array(Image.open(i).convert('L').resize(size,Image.ANTIALIAS)) for i in w])
show(img)

# img = array([array(i.convert('L').resize(size,Image.ANTIALIAS)) for i in pic])

model = keras.Sequential([keras.layers.Flatten(input_shape=size),
              keras.layers.Dense(256, activation='relu'),
              keras.layers.Dense(11)
])

s=array([0,喵,0,喵])
model.compile(optimizer='adam',
      loss=keras.losses.SparseCategoricalCrossentropy(from_logits=True),
      metrics=['accuracy']
)

model.fit(img,s,epochs=8)

点赞0


评论


新时代运筹帷幄的逗比骚年新时代运筹帷幄的逗比骚年

到现在是基本所有代码都发了,

1.数据预处理

2.模型训练

3.测试模型

点赞0


评论


新时代运筹帷幄的逗比骚年新时代运筹帷幄的逗比骚年

缺点,

图片得长这模样

黑底,白字

center_image

点赞0


评论


一个STUB用户_6923702一个STUB用户_6923702

Amazing()

点赞1


评论


新时代运筹帷幄的逗比骚年新时代运筹帷幄的逗比骚年

其他作品

 【JIU】(无人问津系列) 预览版-v1.0.3 shequ.codemao.cn/community/381喵5

【AI】人工智能 识别 人/马 shequ.codemao.cn/community/384268

点赞0


评论


编码已破译编码已破译

大佬厉害呀

点赞0


评论


Albert钟Albert钟

问一下测试集占多少

点赞0


评论


新时代运筹帷幄的逗比骚年新时代运筹帷幄的逗比骚年

emotion_编程猫_搓头

点赞0


评论


新时代运筹帷幄的逗比骚年新时代运筹帷幄的逗比骚年

工作室招人啦

工作室传送门:shequ.codemao.cn/work_shop/19034

点赞0


评论