• 个人简介

    from PIL import Image
    im = Image.open('答题卡.jpg')
    pix = im.load()
    
    #==================================================================================
    #功能:判断一个像素的RGB颜色是否被填涂,若被填涂返回True,否则返回False
    #参数:r, g, b为一个像素的RGB颜色值
    def judge_pix(r, g, b): 
        gray = 0.299 * r + 0.587 * g + 0.114 * b
        return gray < 132
    
    #功能:判断一个信息点是否被前途,若被填涂返回True,否则返回False
    #参数:x, y为该信息点左上角像素的位置信息
    def judge_rec(x, y):
        w = 35           #设置信息点的宽度
        h = 13          #设置信息点的高度
        cnt = 0                #存储被填涂信息点的个数
        #补充实现后续代码
        #1. 遍历信息点的每一个像素。判断每个像素是否被填涂,如果被填涂则cnt加1
        #2. 如果被填涂的像素个数超过总像素的64%,则表示信息点被填涂,返回True, 否则返回False
        for y1 in range(h):
            for x1 in range(w):
                r,g,b = pix[x+x1,y+y1]
                if judge_pix(r,g,b):
                    cnt+=1
        return cnt>=160
    
    #功能:传入一列第一个信息点左上角像素位置信息,返回该列填涂的数值
    #参数:x, y为该列第一个信息点左上角像素位置信息
    def judge_col(x, y):
        y_span = 31 #两个纵向相邻信息点的间距
        kh = -1           #存储填涂的考号,若该列没有填涂则返回-1
        #补充实现后续代码
        for i in range(10):
            if judge_rec(x,y):
                kh=i
                break
            y+=y_span
        
        return kh
    #====================================================================================
    
    #设置第一列第一个信息点左上角位置信息
    x0 = 10
    y0 = 245
    x_span = 51  #两个横向相邻信息点的间距
    #补充实现后续代码
    for i in range(5):
        print(judge_col(x0,y0),end='')
        x0+=x_span
    
  • 最近活动

    This person is lazy and didn't join any contests or homework.