*Memos:
- My post explains InterpolationMode about image.
- My post explains InterpolationMode about
NEAREST
andNEAREST_EXACT
.
You can set InterpolationMode as shown below. *It's about image tensor:
from torchvision.datasets import OxfordIIITPet from torchvision.transforms.v2 import Resize, PILToTensor origin_data = OxfordIIITPet( root="data", transform=None ) def show_rimagetensor(im, s=None, ip=None, a=None): r = Resize(size=s, interpolation=ip, antialias=a) ptt = PILToTensor() print(ptt(r(im))) def show_rrimagetensor(im, d=None, ip=None): rr = RandomRotation(degrees=d, interpolation=ip) ptt = PILToTensor() print(ptt(rr(im))[0][279]) # Resize() show_rimagetensor(im=origin_data[0][0], s=50, ip=InterpolationMode.NEAREST, a=True) # tensor([[[35, 38, 49, ..., 255, 255, 251], # [24, 244, 228, ..., 255, 255, 255], # ..., # [6, 2, 1, ..., 59, 65, 69]], # [[18, 19, 24, ..., 255, 255, 251], # [10, 179, 168, ..., 255, 255, 255], # ..., # [9, 8, 6, ..., 95, 100, 118]], # [[10, 13, 19, ..., 255, 255, 253], # [7, 77, 58, ..., 255, 255, 255], # ..., # [24, 24, 25, ..., 218, 220, 247]]], dtype=torch.uint8) show_rimagetensor(im=origin_data[0][0], s=50, ip=InterpolationMode.NEAREST, a=False) # tensor([[[35, 38, 49, ..., 255, 255, 251], # [24, 244, 228, ..., 255, 255, 255], # ..., # [6, 2, 1, ..., 59, 65, 69]], # [[18, 19, 24, ..., 255, 255, 251], # [10, 179, 168, ..., 255, 255, 255], # ..., # [9, 8, 6, ..., 95, 100, 118]], # [[10, 13, 19, ..., 255, 255, 253], # [7, 77, 58, ..., 255, 255, 255], # ..., # [24, 24, 25, ..., 218, 220, 247]]], dtype=torch.uint8) print() show_rimagetensor(im=origin_data[0][0], s=50, ip=InterpolationMode.NEAREST_EXACT, a=True) # tensor([[[35, 38, 49, ..., 255, 255, 251], # [24, 244, 228, ..., 255, 255, 255], # ..., # [6, 2, 1, ..., 59, 65, 69]], # [[18, 19, 24, ..., 255, 255, 251], # [10, 179, 168, ..., 255, 255, 255], # ..., # [9, 8, 6, ..., 95, 100, 118]], # [[10, 13, 19, ..., 255, 255, 253], # [7, 77, 58, ..., 255, 255, 255], # ..., # [24, 24, 25, ..., 218, 220, 247]]], dtype=torch.uint8) show_rimagetensor(im=origin_data[0][0], s=50, ip=InterpolationMode.NEAREST_EXACT, a=False) # tensor([[[35, 38, 49, ..., 255, 255, 251], # [24, 244, 228, ..., 255, 255, 255], # ..., # [6, 2, 1, ..., 59, 65, 69]], # [[18, 19, 24, ..., 255, 255, 251], # [10, 179, 168, ..., 255, 255, 255], # ..., # [9, 8, 6, ..., 95, 100, 118]], # [[10, 13, 19, ..., 255, 255, 253], # [7, 77, 58, ..., 255, 255, 255], # ..., # [24, 24, 25, ..., 218, 220, 247]]], dtype=torch.uint8) print() show_rimagetensor(im=origin_data[0][0], s=50, ip=InterpolationMode.BILINEAR, a=True) # tensor([[[37, 42, 66, ..., 254, 254, 253], # [122, 163, 209, ..., 255, 255, 255], # ..., # [15, 29, 34, ..., 81, 61, 60]], # [[20, 23, 40, ..., 254, 254, 253], # [101, 134, 175, ..., 255, 255, 255], # ..., # [17, 30, 35, ..., 114, 96, 97]], # [[12, 13, 18, ..., 254, 254, 254], # [50, 53, 65, ..., 255, 255, 255], # ..., # [32, 43, 48, ..., 219, 218, 223]]], dtype=torch.uint8) show_rimagetensor(im=origin_data[0][0], s=50, ip=InterpolationMode.BILINEAR, a=False) # tensor([[[37, 42, 66, ..., 254, 254, 253], # [122, 163, 209, ..., 255, 255, 255], # ..., # [15, 29, 34, ..., 81, 61, 60]], # [[20, 23, 40, ..., 254, 254, 253], # [101, 134, 175, ..., 255, 255, 255], # ..., # [17, 30, 35, ..., 114, 96, 97]], # [[12, 13, 18, ..., 254, 254, 254], # [50, 53, 65, ..., 255, 255, 255], # ..., # [32, 43, 48, ..., 219, 218, 223]]], dtype=torch.uint8) print() show_rimagetensor(im=origin_data[0][0], s=50, ip=InterpolationMode.BICUBIC, a=True) # tensor([[[28, 30, 52, ..., 255, 254, 252], # [116, 162, 216, ..., 255, 255, 255], # ..., # [14, 28, 33, ..., 66, 52, 59]], # [[10, 12, 26, ..., 255, 254, 252], # [95, 131, 179, ..., 255, 255, 255], # ..., # [16, 29, 34, ..., 102, 88, 96]], # [[8, 9, 14, ..., 255, 254, 254], # [44, 48, 64, ..., 255, 255, 255], # ..., # [30, 42, 47, ..., 216, 216, 224]]], dtype=torch.uint8) show_rimagetensor(im=origin_data[0][0], s=50, ip=InterpolationMode.BICUBIC, a=False) # tensor([[[28, 30, 52, ..., 255, 254, 252], # [116, 162, 216, ..., 255, 255, 255], # ..., # [14, 28, 33, ..., 66, 52, 59]], # [[10, 12, 26, ..., 255, 254, 252], # [95, 131, 179, ..., 255, 255, 255], # ..., # [16, 29, 34, ..., 102, 88, 96]], # [[8, 9, 14, ..., 255, 254, 254], # [44, 48, 64, ..., 255, 255, 255], # ..., # [30, 42, 47, ..., 216, 216, 224]]], dtype=torch.uint8) print() show_rimagetensor(im=origin_data[0][0], s=50, ip=InterpolationMode.BOX, a=True) # tensor([[[37, 37, 44, ..., 254, 254, 252], # [117, 169, 231, ..., 255, 255, 255], # ..., # [13, 30, 30, ..., 69, 59, 60]], # [[19, 20, 23, ..., 254, 254, 252], # [96, 137, 192, ..., 255, 255, 255], # ..., # [15, 32, 31, ..., 103, 91, 97]], # [[12, 12, 14, ..., 254, 254, 254], # [44, 48, 68, ..., 255, 255, 255], # ..., # [29, 44, 44, ..., 217, 215, 224]]], dtype=torch.uint8) show_rimagetensor(im=origin_data[0][0], s=50, ip=InterpolationMode.BOX, a=False) # tensor([[[37, 37, 44, ..., 254, 254, 252], # [117, 169, 231, ..., 255, 255, 255], # ..., # [13, 30, 30, ..., 69, 59, 60]], # [[19, 20, 23, ..., 254, 254, 252], # [96, 137, 192, ..., 255, 255, 255], # ..., # [15, 32, 31, ..., 103, 91, 97]], # [[12, 12, 14, ..., 254, 254, 254], # [44, 48, 68, ..., 255, 255, 255], # ..., # [29, 44, 44, ..., 217, 215, 224]]], dtype=torch.uint8) print() show_rimagetensor(im=origin_data[0][0], s=50, ip=InterpolationMode.HAMMING, a=True) # tensor([[[37, 37, 52, ..., 254, 254, 252], # [113, 167, 222, ..., 255, 255, 255], # ..., # [11, 25, 26, ..., 70, 59, 60]], # [[19, 20, 29, ..., 254, 254, 252], # [92, 134, 182, ..., 255, 255, 255], # ..., # [13, 27, 27, ..., 104, 93, 98]], # [[12, 12, 15, ..., 254, 255, 253], # [42, 49, 65, ..., 255, 255, 255], # ..., # [28, 40, 42, ..., 218, 216, 225]]], dtype=torch.uint8) show_rimagetensor(im=origin_data[0][0], s=50, ip=InterpolationMode.HAMMING, a=False) # tensor([[[37, 37, 52, ..., 254, 254, 252], # [113, 167, 222, ..., 255, 255, 255], # ..., # [11, 25, 26, ..., 70, 59, 60]], # [[19, 20, 29, ..., 254, 254, 252], # [92, 134, 182, ..., 255, 255, 255], # ..., # [13, 27, 27, ..., 104, 93, 98]], # [[12, 12, 15, ..., 254, 255, 253], # [42, 49, 65, ..., 255, 255, 255], # ..., # [28, 40, 42, ..., 218, 216, 225]]], dtype=torch.uint8) print() show_rimagetensor(im=origin_data[0][0], s=50, ip=InterpolationMode.LANCZOS, a=True) # tensor([[[21, 23, 48, ..., 255, 254, 252], # [112, 160, 218, ..., 255, 255, 255], # ..., # [14, 27, 34, ..., 60, 48, 61]], # [[4, 5, 21, ..., 254, 254, 252], # [92, 130, 180, ..., 255, 255, 255], # ..., # [16, 28, 35, ..., 97, 85, 97]], # [[6, 8, 12, ..., 254, 254, 254], # [41, 46, 64, ..., 255, 255, 255], # ..., # [30, 41, 48, ..., 214, 216, 224]]], dtype=torch.uint8) show_rimagetensor(im=origin_data[0][0], s=50, ip=InterpolationMode.LANCZOS, a=False) # tensor([[[21, 23, 48, ..., 255, 254, 252], # [112, 160, 218, ..., 255, 255, 255], # ..., # [14, 27, 34, ..., 60, 48, 61]], # [[4, 5, 21, ..., 254, 254, 252], # [92, 130, 180, ..., 255, 255, 255], # ..., # [16, 28, 35, ..., 97, 85, 97]], # [[6, 8, 12, ..., 254, 254, 254], # [41, 46, 64, ..., 255, 255, 255], # ..., # [30, 41, 48, ..., 214, 216, 224]]], dtype=torch.uint8) print() # RandomRotation() show_rrimagetensor(im=origin_data[0][0], d=[45, 45], ip=InterpolationMode.NEAREST) # tensor([230, 250, 252, 253, 250, 251, 252, 253, 251, 249, # 252, 255, 253, 253, 253, 255, 253, 254, 252, 251, # 247, 249, 247, 239, 238, ..., 66, 126, 52], dtype=torch.uint8) show_rrimagetensor(im=origin_data[0][0], d=[45, 45], ip=InterpolationMode.NEAREST_EXACT) # tensor([230, 250, 252, 253, 250, 251, 252, 253, 251, 249, # 252, 255, 253, 253, 253, 255, 253, 254, 252, 251, # 247, 249, 247, 239, 238, ..., 66, 126, 52], dtype=torch.uint8) show_rrimagetensor(im=origin_data[0][0], d=[45, 45], ip=InterpolationMode.BILINEAR) # tensor([236, 252, 252, 252, 251, 251, 252, 252, 250, 249, # 253, 253, 252, 252, 253, 253, 252, 253, 250, 251, # 249, 247, 247, 242, 240, ..., 62, 99, 76], dtype=torch.uint8) show_rrimagetensor(im=origin_data[0][0], d=[45, 45], ip=InterpolationMode.BICUBIC) # tensor([241, 253, 252, 251, 251, 250, 252, 251, 249, 248, # 253, 253, 252, 251, 254, 253, 251, 254, 250, 251, # 249, 246, 247, 241, 237, ..., 52, 102, 77], dtype=torch.uint8)
Top comments (0)