[ABCNet] Entraînez votre propre modèle - Aplatissement de la courbe de Bézier

[ABCNet forme son propre modèle (1)]
[ABCNet forme son propre modèle (2)]
[ABCNet forme son propre modèle (3)]

Aplatissement de la courbe de Bézier

La courbe de Bézier obtient finalement l'image que nous voulons grâce à la méthode d'interpolation, qui a été introduite dans l'article précédent ; ici, nous n'introduisons que la méthode d'échantillonnage : cette fonction implémente l'échantillonnage de Bézier, et la compréhension de l'aplatissement peut se référer à l'anneau Nivellement,
insérez la description de l'image ici
sauf que les points continus ne sont pas utilisés ici pour l'interpolation, mais que les résultats d'échantillonnage sont directement envoyés à l'algorithme d'interpolation ;

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

Je suppose que tu aimes

Origine blog.csdn.net/m0_37661841/article/details/109593249
conseillé
Classement