2016-03-11 7 views
0

В настоящее время я ищу простой способ: определить положение маркеров на сфотографированном листе бумаги с использованием Javascript. Все, что я нашел до сих пор, - это библиотеки, которые немного превосходят мои цели.Определение маркера на листе бумаги с использованием Javascript

Например, awe.js использует технологию AR для обнаружения маркеров на видео в реальном времени. Тем не менее, все, что мне нужно - это обнаружение маркера на картинке, как это видно из загруженного файла примера ниже. (Обратите внимание, что маркеры просто холостые маркеры Я собираюсь использовать отдельные маркеры для каждого угла.)

Paper sheet with 4 dummy markers

Библиотеки Я пробовал:

Кто-нибудь знает простую проблему для моей проблемы?

+0

Что вам нужно знать о маркере? Их тип, положение? –

+0

Их положение. Я хотел бы деактивировать фотографию с помощью маркеров. Дьюаркинг отлично работает, когда я вручную нажимаю маркеры, но я хочу, чтобы этот процесс произошел автоматически. –

+0

tracking.js позволяет реализовать свой собственный вариант - я бы использовал это. в приведенном вами примере используются методы размытия, и это, скорее всего, не сработает для того, что вы хотите. https://trackingjs.com/docs.html#custom-tracker – user5542121

ответ

2

Спасибо всем, кто пытался найти решение моей проблемы. В конце концов, мне удалось обнаружить маркеры моего бумажного листа с JS-aruco:

https://github.com/jcmellado/js-aruco/tree/master/samples/getusermedia

JS-aruco делает снимок видео в реальном времени, делает каждого из снимков в полотне и обнаруживает маркеры , Я скорректировал «getusermedia.html», чтобы он не снимал моментальный снимок с видео, но отображал изображение только один раз на холсте. Детектор способен найти каждый из маркеров, перечисленных на этой странице:

http://diogok.net/js-aruco-markers/index.html

Наконец, я должен был переписать функцию от aruco.js, так что он находит маркера, которые меньше, чем 20% от бумага (которая была значением по умолчанию).

AR.Detector.prototype.detect = function(image) { 
    CV.grayscale(image, this.grey); 
    CV.adaptiveThreshold(this.grey, this.thres, 2, 3); 
    this.contours = CV.findContours(this.thres, this.binary); 
    this.candidates = this.findCandidates(this.contours, image.width * 0.01, 0.05, 10); 
    this.candidates = this.clockwiseCorners(this.candidates); 
    this.candidates = this.notTooNear(this.candidates, 10); 
    return this.findMarkers(this.grey, this.candidates, 49); 
}; 

Таким образом, JS-aruco может найти небольшие маркеры по углам моего бумажного листа.