Source code for jactorch.vision.geometry

#! /usr/bin/env python3
# -*- coding: utf-8 -*-
# File   : geometry.py
# Author : Jiayuan Mao
# Email  : maojiayuan@gmail.com
# Date   : 01/04/2019
#
# This file is part of Jacinle.
# Distributed under terms of the MIT license.

import torch
import jactorch
import torch.nn.functional as F

__all__ = ['gen_voronoi']


[docs] def gen_voronoi(centers, height, width): range_y = torch.arange(height, device=centers.device) range_x = torch.arange(width, device=centers.device) y, x = jactorch.meshgrid(range_y, range_x, dim=0) y, x = y.reshape(-1), x.reshape(-1) coords = torch.stack([y, x], dim=1).float() coords, centers = jactorch.meshgrid(coords, centers, dim=0) dis = (coords[:, :, 0] - centers[:, :, 1]) ** 2 + (coords[:, :, 1] - centers[:, :, 0]) ** 2 assignment = dis.argmin(1) return dis.view((height, width, -1)), assignment.view((height, width))