Dibujar una línea en OpenCV con indicadores CV_AA no produce una línea suavizada

No puedo obtener cv :: line para dibujar una línea suavizada con los indicadores CV_AA establecidos. Aquí está el código de ejemplo para ilustrar:

#include<iostream>
#include<opencv2/opencv.hpp>

using namespace std;

int main(int argc, char* argv[])
{
    cv::Mat base(100, 100, CV_32F);

    cv::Point2i p1(20, 20);
    cv::Point2i p2(70, 90);

    cv::line(base, p1, p2, cv::Scalar(1.0), 1, CV_AA); // 1 pixel thick, CV_AA == Anti-aliased flag

    cv::namedWindow("line test", CV_NORMAL);
    cv::imshow("line test", base);
    cv::waitKey(0);

    return 0;
}

He intentado usar cv :: Point2d en lugar de cv :: Point2i y no he encontrado ninguna diferencia. (i == entero, d == doble) También he intentado hacer que el ancho de píxel sea mayor que 1, pero aún no hay AA.

Sin embargo, esto funciona con una imagen CV_8U (sin signo de 8 bits), a diferencia de la imagen CV_32F (flotante de 32 bits) que tengo aquí. (Para CV_8U, debe pasar cv :: Scalar (255) en lugar de cv :: Scalar (1.0) a la función de línea para comparar)

Supongo que una solución alternativa actual sería comenzar con una imagen CV_8U y luego convertir, pero ¿hay una forma sencilla de hacerlo con solo una imagen CV_32F que no requiera que escriba mi propia función de suavizado?

¿Me estoy perdiendo de algo?

Documentos de OpenCV:cv :: referencia de linea

Respuestas a la pregunta(2)

Su respuesta a la pregunta