У меня есть соответствующие маски для изображений, которые я хочу сегментировать.
Я помещаю изображения в одну папку, а соответствующие маски - в другую папку.Я пытаюсь применить эти маски или умножить их на изображения, используя два цикла for в python, чтобы получить сегментированные изображения.
Я использую код ниже:
def ImageSegmentation():
SegmentedImages = []
for img_path in os.listdir('C:/Users/mab/Desktop/images/'):
img=io.imread('C:/Users/mab/Desktop/data/'+img_path)
for img_path2 in os.listdir('C:/Users/mab/Desktop/masks/'):
Mask = io.imread('C:/Users/mab/Desktop/masks/'+img_path2)
[indx, indy] = np.where(Mask==0)
Color_Masked = img.copy()
Color_Masked[indx,indy] = 0
matplotlib.image.imsave('C:/Users/mab/Desktop/SegmentedImages/'+img_path2,Color_Masked)
segs.append(Color_Masked)
return np.vstack(Color_Masked)
Этот код работает, когда я пробую его для одного изображения и одной маски (без папок и петель).
Однако, когда я пытаюсь перебрать изображения и маски, которые есть в двух папках, я получаю выходные изображения, которые сегментированы неправильной маской (а не их соответствующей маской).
Я не могу сегментировать каждое отдельное изображение без зацикливания, потому что у меня более 500 изображений и их масок.
Я не знаю, что я пропускаю или неправильно размещаю в этом кодеи как я могу это исправить?Кроме того, есть ли более простой способ получить сегментированные изображения?