我无法应用gridmask

问题描述 投票:0回答:1
import cv2
import os

grid_mask = np.zeros((5,5,1))
grid_mask[2, 2] = 1

dataset_path = "/content/drive/MyDrive/FracAtlas/images/Fractured/"
destination_folder = "/content/drive/MyDrive/FracAtlas/images/masked/masked_images"

os.makedirs(destination_folder, exist_ok=True)

images = []
for filename in os.listdir(dataset_path):
  image = cv2.imread(os.path.join(dataset_path, filename))
  images.append(image)

for i, image in enumerate(images):
  masked_image = image * grid_mask
  cv2.imwrite(os.path.join(destination_folder, f"masked_image_{i}.jpg"), masked_image)

我想对断骨应用网格蒙版,以消除数据集中的不平衡。但是我收到以下错误。

ValueError Traceback(最近一次调用最后一次) 在 () 中 22 # 对每张图像应用网格蒙版并保存 23 对于 i,枚举中的图像(图像): ---> 24 masked_image = 图像 * grid_mask 25 cv2.imwrite(os.path.join(destination_folder, f"masked_image_{i}.jpg"), masked_image)

ValueError:操作数无法与形状一起广播 (454,373,3) (5,5,1)

python opencv data-augmentation
1个回答
0
投票

尝试执行逐元素乘法时,图像和网格掩模的形状不匹配。

尝试修改以下部分代码

for i, image in enumerate(images):
    
    resized_grid_mask = cv2.resize(grid_mask, (image.shape[1],image.shape[0]))
    masked_image = image * resized_grid_mask
    cv2.imwrite(os.path.join(destination_folder, f"masked_image_{i}.jpg"), masked_image)
© www.soinside.com 2019 - 2024. All rights reserved.