[ABCNet] Entrene su propio modelo: aplanamiento de la curva de Bezier

[ABCNet entrena su propio modelo (1)]
[ABCNet entrena su propio modelo (2)]
[ABCNet entrena su propio modelo (3)]

Aplanamiento de la curva de Bézier

La curva Bezier finalmente obtiene la imagen que queremos a través del método de interpolación, que se introdujo en el artículo anterior; aquí solo presentamos el método de muestreo: esta función implementa el muestreo Bezier, y la comprensión del aplanamiento puede referirse a la nivelación del anillo,
inserte la descripción de la imagen aquí
excepto que aquí no se utilizan puntos continuos para la interpolación, sino que los resultados del muestreo se envían directamente al algoritmo de interpolación;

def _bezier_to_poly(self, bezier):
        # bezier to polygon, 20表示一条直线上采样点的个数,这个可以根据实际需求去设置,
        #直接影响是数值越大,代表你生成的拉平后图像分辨率越高,数值越小生成的图像分辨率会越小
        # 如果使用小分辨率的图像去插值变大,这个学图像的大家都知道会怎样,就不详细说了。
        u = np.linspace(0, 1, 20)
        bezier = bezier.reshape(2, 4, 2).transpose(0, 2, 1).reshape(4, 4)
        points = np.outer((1 - u) ** 3, bezier[:, 0]) \
            + np.outer(3 * u * ((1 - u) ** 2), bezier[:, 1]) \
            + np.outer(3 * (u ** 2) * (1 - u), bezier[:, 2]) \
            + np.outer(u ** 3, bezier[:, 3])
        points = np.concatenate((points[:, :2], points[:, 2:]), axis=0)

        return points

Supongo que te gusta

Origin blog.csdn.net/m0_37661841/article/details/109593249
Recomendado
Clasificación