作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在图像上绘制蒙版,蒙版是 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);
结果只是一个黑色图像,因为掩码没有正确构建。我该如何解决这个问题?
最佳答案
我有一个脚本可以使用 OpenCV-Python 在图像中执行此操作:
import cv2
def pixelate(image):
# Get input size
height, width, _ = image.shape
# Desired "pixelated" size
h, w = (16, 16)
# Resize image to "pixelated" size
temp = cv2.resize(image, (w, h), interpolation=cv2.INTER_LINEAR)
# Initialize output image
return cv2.resize(temp, (width, height), interpolation=cv2.INTER_NEAREST)
# Load image
image = cv2.imread('1.png')
# ROI bounding box coordinates
x,y,w,h = 122,98,283,240
# Extract ROI
ROI = image[y:y+h, x:x+w]
# Pixelate ROI
pixelated_ROI = pixelate(ROI)
# Paste pixelated ROI back into original image
image[y:y+h, x:x+w] = pixelated_ROI
cv2.imshow('pixelated_ROI', pixelated_ROI)
cv2.imshow('image', image)
cv2.waitKey()
您需要获取
boundingboxes
坐标并在
ROI
上使用它.
关于OpenCV BodyPix 面具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64544050/
BodyPix是一种开源机器学习模型,它允许使用 TensorFlow.js 在浏览器中对人和 body 部位进行分割。 我想将模型转换为 .pb 卡住图,以便在 Python 上使用它。 我该怎么做
我正在尝试在图像上绘制蒙版,蒙版是 body-pix (在 NodeJS 中)完成的处理的结果。出于性能原因,我想使用 OpenCV 来绘制蒙版,而不是 htmlcanva。 const se
我正在尝试在 TensorFlowJS bodypix 模型中获取分段的人物部位彩色面具。下面的代码在抛出错误“ImageData 未定义”的 toColoredPartMask 或 toMask 之
我是一名优秀的程序员,十分优秀!