我正在尝试在图像上绘制蒙版,蒙版是 body-pix (在 NodeJS 中)完成处理的结果。出于性能原因,我想使用 OpenCV 来绘制蒙版,而不是 htmlcanva。
const segmentation = await net.segmentPersonParts(img, {
flipHorizontal: false,
internalResolution: 'medium',
segmentationThreshold: 0.7
});
//Mask into opencv Mat
const segmentationMask = new cv.Mat(segmentation.data, segmentation.height, segmentation.width, cv.CV_8UC4);
const mask = segmentationMask.cvtColor(cv.COLOR_BGRA2BGR);
//Application of mask
const result = mat.bitwiseAnd(mask);
cv.imwrite('mask.jpg', mask);
cv.imwrite('result.jpg', result);
这完美地工作,并实现了在检测到的人上绘制黑色蒙版(语义分割)的预期结果。但是SegmentPersonParts
比方法慢得多SegmentPerson
,我希望使用最后一种方法。问题是,面具不起作用。做的时候:
const segmentation = await net.segmentPerson(img, {
flipHorizontal: false,
internalResolution: 'medium',
segmentationThreshold: 0.7
});
//Mask into opencv Mat
const segmentationMask = new cv.Mat(segmentation.data, segmentation.height, segmentation.width, cv.CV_8UC4);
const mask = segmentationMask.cvtColor(cv.COLOR_BGRA2BGR);
//Application of mask
const result = mat.bitwiseAnd(mask);
cv.imwrite('mask.jpg', mask);
cv.imwrite('result.jpg', result);
结果只是一个黑色图像,因为掩码没有正确构建。我该如何解决这个问题?