海报图像读取

电影发布时,都会包含电影海报,海报图像的名字以"mov_id" + 电影ID + ".jpg"的方式命名。因此,我们可以用电影ID去索引对应的海报图像。

海报图像展示如下:

海报图像读取 - 图1

图1: 电影ID-2296的海报

海报图像读取 - 图2

图2: 电影ID-2291的海报

我们可以从新的评分数据文件 new_rating.txt 中获取到电影ID,进而索引到图像,实现如下:

  1. from PIL import Image
  2. import matplotlib.pyplot as plt
  3. # 使用海报图像和不使用海报图像的文件路径不同,处理方式相同
  4. use_poster = True
  5. if use_poster:
  6. rating_path = "./work/ml-1m/new_rating.txt"
  7. else:
  8. rating_path = "./work/ml-1m/ratings.dat"
  9. with open(rating_path, 'r') as f:
  10. data = f.readlines()
  11. # 从新的rating文件中收集所有的电影ID
  12. mov_id_collect = []
  13. for item in data:
  14. item = item.strip().split("::")
  15. usr_id,movie_id,score = item[0],item[1],item[2]
  16. mov_id_collect.append(movie_id)
  17. # 根据电影ID读取图像
  18. poster_path = "./work/ml-1m/posters/"
  19. # 显示mov_id_collect中第几个电影ID的图像
  20. idx = 1
  21. poster = Image.open(poster_path+'mov_id{}.jpg'.format(str(mov_id_collect[idx])))
  22. plt.figure("Image") # 图像窗口名称
  23. plt.imshow(poster)
  24. plt.axis('on') # 关掉坐标轴为 off
  25. plt.title("poster with ID {}".format(mov_id_collect[idx])) # 图像题目
  26. plt.show()

海报图像读取 - 图3

  1. <Figure size 432x288 with 1 Axes>