神秘的帅哥 发表于 2020-3-19 14:30:25

求助程序报错 'NoneType' object is not subscriptable

from PIL import Image, ImageDraw, ImageFont
import cv2
import os

def draw(pic):
    img = cv2.imread('pic/' + pic)
    img = img[:, :, (2, 1, 0)]

    blank = Image.new("RGB", ), len(img)], "white")
    drawObj = ImageDraw.Draw(blank)

    n = 10

    font = ImageFont.truetype('C:/Windows/Fonts/Microsoft YaHei UI/msyhbd.ttc', size = n - 1)

    for i in range(0, len(img), n):
      for j in range(0, len(img), n):
            text = '武汉加油'
            drawObj.ink = img + img * 256 + img * 256 * 256
            drawObj.text(, text, font=font)
            print('完成处理——', i, j)

    blank.save('new/new_' + pic, 'jpeg')


filelist = os.listdir('pic')
for file in filelist:
    draw(file)


运行报错
Traceback (most recent call last):
File "D:/PyCharm/PycharmProjects/樱花/cv_3.py", line 28, in <module>
    draw(file)
File "D:/PyCharm/PycharmProjects/樱花/cv_3.py", line 7, in draw
    img = img[:, :, (2, 1, 0)]
TypeError: 'NoneType' object is not subscriptable

进程已结束,退出代码 1



求助大神应该怎么修改

TCY 发表于 2020-3-19 15:36:56

本帖最后由 TCY 于 2020-3-19 15:38 编辑

第六行改成:img = cv2.imread('./pic/' + pic)

神秘的帅哥 发表于 2020-3-19 19:17:53

TCY 发表于 2020-3-19 15:36
第六行改成:

这样改是为什么呢,求讲解

TCY 发表于 2020-3-20 09:14:30

神秘的帅哥 发表于 2020-3-19 19:17
这样改是为什么呢,求讲解

“pic/图片名”只会在开头补上当前盘符,你的程序在D盘,则路径是“D:\pic\图片名”
而“./pic/图片名”是相对路径,会从当前路径查找,则路径就是“D:\PyCharm\PycharmProjects\樱花\pic\图片名”
页: [1]
查看完整版本: 求助程序报错 'NoneType' object is not subscriptable