Hi everyone can you please help me i'm getting this bug with random crop augmentation. TypeError: slice indices must be integers or None or have an index method
Code is below.
!conda install -c conda-forge gdcm -y
import os
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from PIL import Image
import cv2 as cv
import albumentations as A
import pydicom
from pydicom.pixel_data_handlers.util import apply_voi_lut
from tqdm.auto import tqdm
def read_img(path, voi_lut=True, fix_monochrome=True):
dcm = pydicom.read_file(path)
if voi_lut:
img = apply_voi_lut(dcm.pixel_array, dcm)
else:
img = dcm.pixel_array
if fix_monochrome and dcm.PhotometricInterpretation == "MONOCHROME1":
img = np.amax(img) - img
img = img - np.min(img)
img = img / np.max(img)
img = (img * 255).astype(np.uint8)
return img
def resize_img(img, size, pad=True, resample=Image.LANCZOS):
img = np.array(img)
if pad:
max_width = 4891
max_height = 4891
img = np.pad(img, ((0, max_height - img.shape[0]), (0, max_width - img.shape[1]), (0, 0)))
img = img.resize((size, size), resample)
return img
def augment_img(img, clahe=True, albumentations=True):
if clahe:
clahe = cv.createCLAHE(clipLimit=15.0, tileGridSize=(8,8))
img = clahe.apply(img)
else:
img = cv.equalizeHist(img)
if albumentations:
img = np.stack((img, ) * 3, axis=-1)
transform = A.Compose([
A.RandomSunFlare(p=0.2),
A.RandomFog(p=0.2),
A.RandomBrightness(p=0.2),
A.RandomCrop(p=1.0, width=img.shape[0] / 2, height=img.shape[1] / 2),
A.Rotate(p=0.2, limit=90),
A.RGBShift(p=0.2),
A.RandomSnow(p=0.2),
A.HorizontalFlip(p=0.2),
A.VerticalFlip(p=0.2),
A.RandomContrast(p=0.2, limit=0.2),
A.HueSaturationValue(p=0.2, hue_shift_limit=20, sat_shift_limit=30, val_shift_limit=50)
])
img = transform(image=img)["image"]
return img
img = read_img('../input/siim-covid19-detection/test/00188a671292/3eb5a506ccf3/3dcdfc352a06.dcm') #You can replace this with any .dcm filepath on your system
img = augment_img(img)
img = resize_img(img, 1024)
plt.imshow(img, cmap='gray')
This is for the SIIM Kaggle competition. I don't know how to solve this and the issue is with only random crop. I tried searching online but i was unable to.
I think the error is in this line:
The problem here is that your width and height may not be integers, but they must be.
Check Albumentations RandomCrop documentation.
And here is the solution.
Let me know if it helps!