48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
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')
|
|
|