Track-mate уникальное считывание штрих-кода
У меня есть программа, которую я хочу запустить на трассе
Система Track-Mate идентифицирует объект через веб-камеру, которая подключена к ПК. Мы размещаем веб-камеру под листом плексигласа (прозрачная поверхность, предназначенная для детей), чтобы отслеживать штрих-код и возвращать цифровую обратную связь на устройство Track-mate...
штрих-код сохраняется в базе данных в формате String, но наша проблема в том, что показания штрих-кода различаются при каждом перемещении объекта на поверхности, что делает его не уникальным для конкретного объекта. что мы можем сделать, чтобы решить эту проблему?
Источники программы:
//LusidOSC a layer that reads tags from a webcam and send the result to any application
public LusidOSCJavaApp(){
// create the client, on port 3333.
lusidClient = new LusidClient(this, 3333);
System.out.println("lusid osc java app ");
System.out.println(View.getisRunning());
while(View.getisRunning()){//SOME CODE TO DO}
// ---------------------------------------------------------------
// these methods are called whenever a LusidOSC event occurs.
// called when an object is added to the scene
public void addLusidObject(LusidObject lObj) {
System.out.println("add lusid object");
//when object is added we add an instance of the object to lusidObj arraylist
lusidArr.add(lObj);
//The problem is here because the ID isn't unique (but it should be unique...)
if(lObj.getUniqueID().equals("0x111111AA1111")) {
System.out.println("you put the right shape");}
else{
System.out.println("error");}
System.out.println("add object: "+lObj.getUniqueID());
System.out.println(" location =
("+lObj.getX()+","+lObj.getY()+","+lObj.getZ()+")");
System.out.println(" rotation =
("+lObj.getRotX()+","+lObj.getRotY()+","+lObj.getRotZ()+")");
System.out.println("data =
("+lObj.getEncoding()+","+lObj.getData()+")");
System.out.println("#######################################");
System.out.println(lusidArr.size());
}
// called when an object is removed from the scene
public void removeLusidObject(LusidObject lObj) {
lusidArr.remove(lObj);
System.out.println("remove object: "+lObj.getUniqueID());
}
// called when an object is moved
public void updateLusidObject (LusidObject lObj) {
//System.out.println("update object: "+lObj.getUniqueID());
ArrayList<LusidObject> currentLusidList = new ArrayList<LusidObject>
(Arrays.asList(lusidClient.getLusidObjects()));
Ссылка для скачивания + источник: Trackmate