ファイル内にある画像をsortとgrobを用いて画像の名前順に読み込み,それぞれの画像の輝度値を引き算した画像を作成したいです。
(ファイル内の画像が1.jpg,2.jpg・・・10.jpgの10枚であれば,
(2.jpgの輝度値)-(1.jpgの輝度値),(3.jpgの輝度値)-(2.jpgの輝度値),(4.jpgの輝度値)-(3.jpgの輝度値)・・・
といった処理)
下記コードでi枚目の画像読み込みはできているのですが,i+1枚目の画像読み込みが上手くできません。
エラーコードとfの中身を確認したのですがどのようなコードに変更すればよいかが分かりません。
どなたかよろしくお願い致します。
import cv2 import numpy as np import glob import re def atoi(text): return int(text) if text.isdigit() else text def natural_keys(text): return [ atoi(c) for c in re.split(r'(\d+)', text) ] files = sorted(glob.glob('./in/*.jpg'), key=natural_keys) for i, f in enumerate(files): #1枚目の画像読み込み img_0 = cv2.imread(f, cv2.IMREAD_GRAYSCALE) img_0 = img_0.astype(int) #2枚目の画像読み込み F=f+1 img_1 = cv2.imread(F, cv2.IMREAD_GRAYSCALE) img_1 = img_0.astype(int) ##背景画像を引き算し,下限を0に設定 img_sad = img_1 - img_0 img_sad[img_sad < 0] = 0 save_path = './bg2/_%d.jpg' %i cv2.imwrite(save_path, img_sad) コード
エラー TypeError Traceback (most recent call last) <ipython-input-22-a23488329142> in <module> 16 img_0 = img_0.astype(int) 17 #2枚目の画像読み込み ---> 18 F=f+1 19 img_1 = cv2.imread(F, cv2.IMREAD_GRAYSCALE) 20 img_1 = img_0.astype(int) TypeError: must be str, not int fの確認 print(f) 出力結果 ./in\1.JPG コード