Example #1
0
def rotate_and_flip(tensor,device,p=0.5):
    for i in range(tensor.shape[0]):
        random_number=np.random.uniform()
        if random_number < p:
            center = torch.ones(tensor.shape[1], 2).to(device)
            center[:, 0] = tensor.shape[3] / 2  # x
            center[:, 1] = tensor.shape[2] / 2  # y
            #scale: torch.tensor = torch.ones(1)#*np.random.uniform(0.8,1.2)
            angle = torch.tensor([np.random.randint(-90,90,)*np.ones(tensor.shape[1])]).squeeze().to(device).float()
            #print(angle.shape)
            #print(tensor[i].shape)
            #M = kornia.get_rotation_matrix2d(center, angle, scale)#.to(device)
            #Mt = torch.ones((tensor.shape[0],2,3))
            #Mt[:] = M
            #Mt=Mt.to(device)
            #tensor[:,j]=kornia.warp_affine(tensor[:,j], Mt, dsize=(tensor.shape[3], tensor.shape[4]))
            #print(tensor.dtype)
            tensor[i]=kornia.rotate(tensor[i],angle,center)
        random_number=np.random.uniform()
        if random_number < p:
            tensor[i,:]=kornia.hflip(tensor[i,:])

        random_number=np.random.uniform()
        if random_number < p:
            tensor[i,:]=kornia.vflip(tensor[i,:])

    return tensor
Example #2
0
    def test_affine_rotate(self, device):
        torch.manual_seed(0)
        angle = torch.rand(1, device=device) * 90.0
        input = torch.rand(1, 2, 3, 4, device=device)

        transform = kornia.Affine(angle=angle).to(device)
        actual = transform(input)
        expected = kornia.rotate(input, angle)
        assert_allclose(actual, expected)
Example #3
0
    def test_affine_rotate(self, device, dtype):
        # TODO: Remove when #666 is implemented
        if device.type == 'cuda':
            pytest.skip("Currently breaks in CUDA." "See https://github.com/kornia/kornia/issues/666")
        torch.manual_seed(0)
        angle = torch.rand(1, device=device, dtype=dtype) * 90.0
        input = torch.rand(1, 2, 3, 4, device=device, dtype=dtype)

        transform = kornia.Affine(angle=angle).to(device=device, dtype=dtype)
        actual = transform(input)
        expected = kornia.rotate(input, angle)
        assert_close(actual, expected, atol=1e-4, rtol=1e-4)
Example #4
0
def rotate_dgm(data, n_trans=5, random_rotate=False):
    if random_rotate:
        theta_list = random.sample(list(np.arange(1, 359)), n_trans)
    else:
        theta_list = np.arange(10, 360, int(360 / n_trans))

    data = torch.cat([
        data if theta == 0 else dgm.rotate(data,
                                           torch.Tensor([theta]).type_as(data))
        for theta in theta_list
    ],
                     dim=0)
    return data
Example #5
0
 def grad_rot(input, a, b, c):
     rot = rotate(input,
                  torch.tensor(30., dtype=input.dtype, device=device))
     return enhance.equalize_clahe(rot, a, b, c)
 def _transform(self, img: torch.Tensor,
                param: torch.Tensor) -> torch.Tensor:
     return kornia.rotate(img, param)
Example #7
0
def Rotate(x, v):
    return kornia.rotate(x, v)
Example #8
0
def rotate(img: torch.Tensor, mag: torch.Tensor) -> torch.Tensor:
    return kornia.rotate(img, mag)