Я готовлю набор данных для обнаружения объектов, поэтому я хочу обрезать тысячи изображений, и ниже указан мой код:
for i in os.listdir('diri'):
if not (i.endswith('.png') or i.endswith('.jpg')):
continue
img= cv2.imread(i)
crop= img[240:400,0:480]
cv2.imwrite('Cropped/{0}'.format(i),crop)
Это дает следующее сообщение об ошибке:
TypeError Traceback (most recent call last)
<ipython-input-13-a53199d54e32> in <module>
4 continue
5 img= cv2.imread(i)
----> 6 crop= img[240:400,0:480]
7 cv2.imwrite('Cropped/{0}'.format(i),crop)
TypeError: 'NoneType' object is not subscriptable
Но когда я беру то же изображение и выполняю операцию из l oop, она работает, поэтому я не знаю, как изображение возвращается как None.
Я также попробовал другой метод, как показано ниже :
import glob
images = [cv2.imread(file) for file in glob.glob("./diri/*.jpg")]
for i in images:
crop= i[240:400,0:480]
cv2.imwrite('Cropped/{0}.jpg'.format(i),crop)
Вышеописанное выполняется без ошибок, но в папке o / p нет обрезанных изображений.
Любая помощь будет принята с благодарностью. Спасибо.