ลบพื้นหลังรูปภาพบุคคลด้วย JavaScript
วันที่: 11 ก.พ. 2565 18:24 น.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<canvas></canvas>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.2"></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/body-pix@2.0"></script>
<script src="./script.js"></script>
</body>
</html>
[script.js]
IMAGE_SRC = './photo.jpg';
const loadImage = () => {
const img = new Image();
img.src = IMAGE_SRC;
const canvas = document.querySelector('canvas');
const ctx = canvas.getContext('2d');
img.addEventListener('load', () => {
canvas.width = img.width
canvas.height = img.height
ctx.drawImage(img, 0, 0)
backgroundRemoval()
});
}
const backgroundRemoval = async () => {
const canvas = document.querySelector('canvas');
const net = await bodyPix.load({
architecture: 'ResNet50',
outputStride: 32,
quantBytes: 4
});
const segmentation = await net.segmentPerson(canvas, {
internalResolution: 'medium',
segmentationThreshold: 0.7,
scoreTreshold: 0.7
});
const ctx = canvas.getContext('2d');
const { data: imgData } = ctx.getImageData(0, 0, canvas.width, canvas.height);
const newImg = ctx.createImageData(canvas.width, canvas.height);
const newImgData = newImg.data;
segmentation.data.forEach((segment, i) => {
if (segment == 1) {
newImgData[i * 4] = imgData[i * 4]
newImgData[i * 4 + 1] = imgData[i * 4 + 1]
newImgData[i * 4 + 2] = imgData[i * 4 + 2]
newImgData[i * 4 + 3] = imgData[i * 4 + 3]
}
})
ctx.putImageData(newImg, 0, 0);
}
loadImage();
ศึกษาเพิ่มเติมได้เลยที่ https://github.com/tensorflow/tfjs-models/tree/master/body-pix
ภาพตัวอย่างจาก https://unsplash.com/photos/m9tU30YcIDk
เรื่องอื่น ๆ ที่เกี่ยวข้อง
สร้าง RESTful API เบื้องต้นสำหรับ เพิ่ม/ลบ/แก้ไข ด้วย Node.js ร่วมกับ Express
เมื่อวันที่: 7 เม.ย. 2565 23:00 น.
เมื่อวันที่: 27 มี.ค. 2565 23:55 น.
เริ่มต้นสร้าง RESTful API ด้วย Node.js ร่วมกับ Express
เมื่อวันที่: 6 เม.ย. 2565 22:57 น.
การเรียงข้อมูลใน array โดยเรียงจาก ข้อมูลใน object
เมื่อวันที่: 30 ส.ค. 2565 19:50 น.
Json Web Token (JWT) brute force การเดารหัสหรือ secret key ด้วย node.js
เมื่อวันที่: 14 ก.ย. 2565 21:03 น.
เมื่อวันที่: 16 ก.พ. 2565 16:13 น.