import os import os.path as osp import numpy as np from PIL import Image import matplotlib.pyplot as plt # 定义数据路径和文件后缀 data_root = 'data/LoveDA/Train/pv' img_dir = 'images_png' mask_dir = 'masks_png_convert' mask_suffix = '.png' # 获取所有图像和掩码文件名 img_filenames = os.listdir(osp.join(data_root, img_dir)) mask_filenames = os.listdir(osp.join(data_root, mask_dir)) # 确保图像和掩码数量一致 assert len(img_filenames) == len(mask_filenames), "Images and masks count do not match" # 检查每个掩码文件 for mask_filename in mask_filenames: mask_path = osp.join(data_root, mask_dir, mask_filename) mask = Image.open(mask_path).convert('L') mask_array = np.array(mask) # 找出掩码中大于1的像素值 if np.any(mask_array > 1): print(f"Found values > 1 in mask: {mask_filename}") # 打印掩码中大于1的像素值 unique_labels = np.unique(mask_array) print(f"Unique labels in mask: {unique_labels}") # 加载对应的图像 img_filename = mask_filename.replace(mask_suffix, '.jpg') img_path = osp.join(data_root, img_dir, img_filename) img = Image.open(img_path).convert('RGB') # 显示图像和掩码 fig, axes = plt.subplots(1, 2, figsize=(12, 6)) axes[0].imshow(img) axes[0].set_title('Image') axes[0].axis('off') axes[1].imshow(mask, cmap='gray') axes[1].set_title('Mask') axes[1].axis('off')