题目

小明使用Python编写了某答题卡中单项选择题的判分程序,该单选题每题2分。扫描答题卡获取选项填涂信息,输入标准答案,程序自动判断并输出分数。具体方法为: 一个选项是否被填涂,可以从判断一个像素的颜色开始,像素的填涂情况是通过RGB的值来判断,灰度值低于132的表示该点被填涂;一个信息点64%的像素被填涂,则认为该区域已填涂,返回值为“1”。区域未填涂时返回值为“0”;各选项的编码为:A→“1000”,B→“0100”,C→“0010”,D→“0001”;输入标准答案,程序进行对比并返回结果。答题卡相关信息如下: (1) 某题的标准答案为“C”,该题填涂情况为“0100”,则分数为分 (2) 实现上述功能的程序如下,请在划线处填入合适的代码。 from PIL import Image #输入起始点坐标(xs,ys),信息点宽度高度(fw, fh),间隔宽度高度(sw ,sh),代码略 num = 5               # 判分个数 def bw_judge(R, G, B):   # bw_judge用于判断一个像素的填涂情况 代码略 def fill_judge(x, y):      # fill_judge用于判断信息点的填涂情况     count = 0     for i in range(x, x + fw + 1):         for j in range(y, y + fh + 1):             R, G, B = pixels[i, j]             if bw_judge(R, G, B) = = True:                 count = count + 1     if count >= :         return True total_width = fw+ sw total_height = fh + sh image = Image.open("t2.bmp") pixels = image.load() number = "" bz=[""]*num df=0 bzd=input('请输入标准答案:') da={"A":"1000","B":"0100","C":"0010","D":"0001"} for i in range(len(bzd)):     bz[i]= for row in range(num):                       #分数判定     for col in range(4):         y = ys + total_height * row         if fill_judge(x, y) == True :             number = number + '1'         else:                                        number = number + '0'     if number = = bz[row]:  df+=2     number="" print("得分为:",df) 答案: 【1】0 【1】fw * fh* 0.64【2】da[bzd[i]]【3】x = xs+ total_width * col
信息技术 试题推荐
最近更新