我试图将以下使用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
(可以看到完整的源代码here)
我发现有点难以理解以下几行:
im = numpy.array([im, im, im]).transpose((1, 2, 0))
我似乎无法在OpenCV C ++版本中找到相同的内容。
非常感谢任何帮助。