[英]Why am i getting this IndexError?
我已將我的簽名文件夾拆分為 train、val 和 test。 現在我想查看隨機選擇的兩個 orig_train 簽名和一個 forg_val 簽名。 但我收到錯誤。 注意:我沒有在訓練中使用偽造簽名(這是我研究的一部分,不是我做錯的)
#Train-Validation-Test Split
#Signatures of 4 people are used for training
#Signatures of 2 people are used for validation
#Signatures of 2 people are used for testing
orig_train, orig_val, orig_test = orig_groups[:4], orig_groups[4:6], orig_groups[6:]
forg_val, forg_test = forg_groups[:4], forg_groups[4:]```
def visualize_sample_signature():
'''Function to randomly select a signature from train set and
print two genuine copies and one forged copy'''
fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize = (10, 10))
k = np.random.randint(len(orig_train))
orig_img_names = random.sample(orig_train[k], 1)
forg_img_name = random.sample(forg_val[k], 0)
orig_img1 = cv2.imread(orig_img_names[0], 0)
orig_img2 = cv2.imread(orig_img_names[1], 0)
forg_img = plt.imread(forg_img_name[0], 0)
orig_img1 = cv2.resize(orig_img1, (img_w, img_h))
orig_img2 = cv2.resize(orig_img2, (img_w, img_h))
forg_img = cv2.resize(forg_img, (img_w, img_h))
ax1.imshow(orig_img1, cmap = 'gray')
ax2.imshow(orig_img2, cmap = 'gray')
ax3.imshow(forg_img, cmap = 'gray')
ax1.set_title('Genuine Copy')
ax1.axis('off')
ax2.set_title('Genuine Copy')
ax2.axis('off')
ax3.set_title('Forged Copy')
ax3.axis('off')
visualize_sample_signature()
IndexError Traceback (most recent call last)
<ipython-input-113-8ca6484a3a89> in <module>
----> 1 visualize_sample_signature()
<ipython-input-112-2588ee191bd7> in visualize_sample_signature()
7 forg_img_name = random.sample(forg_val[k], 0)
8 orig_img1 = cv2.imread(orig_img_names[0], 0)
----> 9 orig_img2 = cv2.imread(orig_img_names[1], 0)
10 forg_img = plt.imread(forg_img_name[0], 0)
11 orig_img1 = cv2.resize(orig_img1, (img_w, img_h))
IndexError: list index out of range
調用 random.sample() 時
orig_img_names = random.sample(orig_train[k], 1)
您只繪制一個樣本。
語法:random.sample(sequence, k)
序列:是您從中選擇的
k:是您選擇的樣本數
在這種情況下,您選擇了 1 個樣本,稍后在代碼中您將要求 orig_img_names 中的下一個元素。
orig_img2 = cv2.imread(orig_img_names[1], 0)
position 1 處沒有元素; 僅在 position 0 處。因此您會得到“列表索引超出范圍”。
換句話說,您在 orig_img_names 中只有一張圖像可供選擇。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.