3

我正在尝试将以下使用 numpy 数组的 Python 代码翻译成 C++ 并使用 cv::Mat 而不是 numpy:

def get_face_mask(im, landmarks):
    im = numpy.zeros(im.shape[:2], dtype=numpy.float64)

    for group in OVERLAY_POINTS:
        draw_convex_hull(im,
                         landmarks[group],
                         color=1)

    im = numpy.array([im, im, im]).transpose((1, 2, 0))

    im = (cv2.GaussianBlur(im, (FEATHER_AMOUNT, FEATHER_AMOUNT), 0) > 0) * 1.0
    im = cv2.GaussianBlur(im, (FEATHER_AMOUNT, FEATHER_AMOUNT), 0)

    return im

(完整的源代码可以在这里看到)

我发现很难理解以下几行的作用:

im = numpy.array([im, im, im]).transpose((1, 2, 0))

我似乎无法在 OpenCV C++ 版本中找到它的等价物。

任何帮助将非常感激。

4

0 回答 0