What is the different between data augmentation and preprocessing?

can someone please explain to me what is the difference between augmentation and preprocessing, and if i want to do preprocessing like ( histogram equalization, Frangi Filter …etc ) should it be inside getitem or i should them before passing the data to pytorch?

Preprocessing is transforming your data “inplace”, meaning you do it for purposes other than expanding your data. Augmentation is transforming your data to create more samples (usually to prevent overfitting).
For example, whitening or normalization would be preprocessing, while distortion or random crops would be augmentation.

As to where to do each, take a look here: https://pytorch.org/docs/stable/torchvision/transforms.html

@michaelklachko thank you for your answer.
so how can i do both them in pytorch? and how does pytorch difference between them