当前位置: 高中信息技术 / 综合题
  • 1. (2021高二上·湖州期中) 图像的存储和处理在计算机内部的是采用二进制的形式,一幅图像常常由分辨率、颜色深度的方式来存储,Python的PIL模块能够直接读取图像中每个像素点的颜色信息,一般采用 RGB(红:0~255,绿:0~255,蓝:0~255)的方式表示颜色。现有一幅红字白底图像1.bmp,基本信息如下:

    1 bmp

    1 bmp属性截图

    #程序段 1:

    from PIL import Image

    import numpy as np

    import matplotlib.pyplot as plt

    img=np.array(Image.open('1.bmp').convert("L"))

    rows,cols=img.shape#获取图像的行数和列数

    for i in range(rows):

    for j in range(cols):

    if img[i,j]>128:

    img[i,j]=0 #设置为黑色

    else:

    img[i,j]=1 #设置为白色

    plt.figure("1.bmp")

    plt.imshow(img,cmap="gray") #以灰度模式显示

    plt.axis("off")

    plt.show()

    说明:以上程序段1实现将1.bmp 以黑底白字显示

    请根据以上信息回答下列问题:

    1. (1) 程序段1运行过程中,变量j的值范围是
    2. (2) 程序段2调试时出现“IndexError: index 128 is out of bounds for axis 1 with size 128”的提示,则上述程序出现这个错误的语句是

      A. rows,cols=img.shape                        B. for i in range(rows)

      C. img[i,j],img[i,cols-j]=img[i,cols-j],img[i,j]       D. plt.imshow(img,cmap="gray")

      应该修改为:

    3. (3) 将第(2)题表述的错误修改正确后,程序段2运行后图片呈现的内容:

      #程序段 2:

      from PIL import Image

      import numpy as np

      import matplotlib.pyplot as plt img=np.array(Image.open('1.bmp').convert("L"))

      rows,cols=img.shape

      for i in range(rows):

      for j in range(cols//2):

      img[i,j],img[i,cols-j]=img[i,cols-j],img[i,j]

      plt.figure("hh")

      plt.imshow(img,cmap="gray")

      plt.axis("off")

      plt.show()

微信扫码预览、分享更方便