Я пытаюсь применить адаптивную эквалайзерную ограниченную гистограмму (CLAHE) к моему пользовательскому загрузчику наборов данных в pytorch, но я получаю только пустое изображение, я определил функцию как показано ниже
def clahe_equalized(imgs):
len(imgs.shape)==4 #4D arrays
imgs.shape[1]==1 #check the channel is 1
#create a CLAHE object (Arguments are optional).
clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))
imgs_equalized = np.empty(imgs.shape)
for i in range(imgs.shape[0]):
imgs_equalized[i,0] = clahe.apply(np.array(imgs[i,0], dtype = np.uint8))
return imgs_equalized
Затем напишите класс набора данных, и в моем
getitem вызове этой функции для CLAHE
def __getitem__(self,idx):
"""Get specific data corresponding to the index
Args:
index (int): index of the data
Returns:
Tensor: specific data on index which is converted to Tensor
"""
"""
# GET IMAGE
"""
single_image_name = self.image_arr[idx]
img_as_img = Image.open(os.path.join(self.image_path,single_image_name))
plt.title('or')
plt.imshow(img_as_img)
plt.show()
img_as_np = np.asarray(img_as_img)
mg_as_img = Image.fromarray(img_as_np)
img_as_img = img_as_img.convert('L')
plt.title('gray scal')
img_as_np = np.asarray(img_as_img)
plt.imshow(img_as_img)
plt.show()
img_as_np = clahe_equalized(img_as_np)
plt.imshow(img_as_np)
plt.show()
результат, который я имею, показан ниже
введите описание изображения здесь в то время как правильное изображение должно быть таким введите описание изображения здесь