Как отметил один из комментаторов, среднее значение изображений удаляет передний план, но все изображение становится немного блеклым.Вот код, который делает это:
import skimage.io as io
import numpy as np
import matplotlib.pyplot as plt
cim1 = io.imread('https://i.stack.imgur.com/P44wT.jpg')
cim2 = io.imread('https://i.stack.imgur.com/wU4Yt.jpg')
cim3 = io.imread('https://i.stack.imgur.com/yUbB6.jpg')
x,y,z = cim1.shape
newimage = np.copy(cim1)
for row in range(x-1):
for col in range(y-1):
r = np.mean([cim1[row][col][0],cim2[row][col][0],cim3[row][col][0]]).astype(int)
g = np.mean([cim1[row][col][1],cim2[row][col][1],cim3[row][col][1]]).astype(int)
b = np.mean([cim1[row][col][2],cim2[row][col][2],cim3[row][col][2]]).astype(int)
newimage[row][col] = [r,g,b]
fix, ax = plt.subplots(figsize=(10,10))
ax.axis('off')
ax.imshow(newimage)
Выходное изображение, которое я получаю из этого:
Лучший подход кэта проблема заключается в том, чтобы найти медиану из трех изображений.Чем больше изображений в алгоритме, тем лучше фон.Вот фрагмент кода, который я пробовал (просто заменить среднее значение медианой).Если у вас есть больше изображений, вы можете получить гораздо более точное изображение.
x,y,z = cim1.shape
newimage = np.copy(cim1)
for row in range(x-1):
for col in range(y-1):
r = np.median([cim1[row][col][0],cim2[row][col][0],cim3[row][col][0]]).astype(int)
g = np.median([cim1[row][col][1],cim2[row][col][1],cim3[row][col][1]]).astype(int)
b = np.median([cim1[row][col][2],cim2[row][col][2],cim3[row][col][2]]).astype(int)
newimage[row][col] = [r,g,b]
fix, ax = plt.subplots(figsize=(10,10))
ax.axis('off')
ax.imshow(newimage)
Окончательный результат:
Если выбыло больше изображений, вы можете полностью удалить передний план.Надеюсь, у вас есть идея, на которой вы можете опираться.
Мой код предполагает, что все ваши изображения имеют одинаковые размеры.Решение будет немного сложнее, если вы захватите изображения в разных видах.В этом случае вам, возможно, придется использовать алгоритм сопоставления с шаблоном (ваш псевдокод, похоже, делает что-то похожее), чтобы извлечь общий холст из ваших изображений.