Ограничение области отслеживания объектов с помощью отслеживания js - PullRequest
0 голосов
/ 26 февраля 2019

Требуется ограничить область сканирования трекера объектов с помощью библиотеки js tracking.

например, я хочу, чтобы трекер объектов просматривал только объекты в выбранной области видеопотока с камеры.возьмите и затем поместите все на холст на основе полученной информации об отслеживании.

В настоящее время объект отслеживания сканирует видео enitre и затем помещает ректы на холст, где были найдены объекты, что я хочуДля этого нужно ограничить объектный трекер меньшей областью, а затем поместить ренты на холст.

Есть идеи?

var fTrack = {
                faceTracking: function() {
                var face = new tracking.ObjectTracker('face');

                face.setInitialScale(3);
                face.setStepSize(1);
                face.setEdgesDensity(0.1);

                    guiup.gui(face);               

                    ctx.beginPath();
                    ctx.lineWidth = "6";
                    ctx.strokeStyle = "#fff";
                    ctx.rect((placehold.width/2 - (500/2)), (placehold.height/2 - (600/2)), 500, 600);  
                    ctx.stroke();
                    ctx.font = "30px Comic Sans MS";
                    ctx.fillStyle = "#fff";
                    ctx.textAlign = "center";
                    ctx.fillText("Place face within box",placehold.width/2,770);


            var faceTracker = tracking.track('#video', face, {camera:true});//{ camera: true });


                face.on('track', function(event) {

                context.clearRect(0,0,canvas.width,canvas.height);

                if(!event.data) return;

            event.data.forEach(function(rect) { //Replace code here to do something else once working correctly

                //draw basic rectangle around face colour black
                context.strokeStyle = '#fff';
                context.strokeRect(rect.x, rect.y, rect.width, rect.height);
                // select size of font
                context.font = '11px Helvetica';
                //font colour
                context.fillStyle = "#fff";
                //text to be displayed around face rectangle(will be displayed on the right)
                context.fillText('x: ' + rect.x + 'px', rect.x + rect.width + 5, rect.y + 11); // to show xpx
                context.fillText('y: ' + rect.y + 'px', rect.x + rect.width + 5, rect.y + 22); // to show ypx

1 Ответ

0 голосов
/ 26 февраля 2019

Может быть, вы можете просто проверить положение прямоугольника внутри последней функции forEach.

И реагировать только на рисование внутри вашей области

...