Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

93
Views
crear correctamente objeto con datos

Tengo un bucle en el que itero sobre los datos de píxeles recibidos del método getImageData(). Allí encuentro las coordenadas de cada píxel (coordX y coordY). Luego filtro los píxeles según el color y quiero insertar los píxeles que necesito en el objeto de la siguiente manera:

 result.coords[coordX][coordY].counted

Si con números, entonces así:

 result.coords = { 1: { 1: { counted: false, }, 2: { counted: false, }, }, 2: { 5: { counted: false, }, 8: { counted: false, }, 9: { counted: false, }, }, };

Hice esto pero hay problemas:

 var result = { coords: {}, }, pixel = new app.Color(), array = {}, coordX, coordY, i; for (i = 0; options.imageData && i < options.imageData.data.length; i += 4) { pixel.x = options.imageData.data[i]; pixel.y = options.imageData.data[i + 1]; pixel.z = options.imageData.data[i + 2]; pixel.a = options.imageData.data[i + 3]; coordX = (i / 4) % options.imageData.width; coordY = Math.floor(i / 4 / options.imageData.width); // Pixel filter by color if (pixel.x == 255 && pixel.a == 255) { array[coordY] = { counted: false, }; result.coords[coordX] = array; // .. next is the code that is not important .. } }

Problema del siguiente tipo: cuando presiono una nueva coordenada Y , se agrega a la matriz para todas las X Pero puedo tener casos en los que, por ejemplo, la coordenada Y=5 no estará en la coordenada X=1 , sino solo en X=2 (como en el ejemplo anterior). Pero en mi caso, Y=5 también se agregará a X=1 .

Dígame cómo crear correctamente un objeto con la propiedad 'coords', en el que habrá propiedades X , en el que se almacenará todo Y relacionado con él, en el que también habrá propiedad 'contado' con valor False.

Editar:

me gusta esto:

 data = {}; if (pixel.x == 255 && pixel.a == 255) { if (result.coords[coordX]) { for (var item in result.coords[coordX]) { data[item] = result.coords[coordX][item]; } } data[coordY] = { counted: false, }; result.coords[coordX] = data; data= {}; }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Dada una i , el OP calcula coordX y coordY . Lo que se necesita es algo así como un inverso para producir una clave para la estructura de datos de conteo.

 const width = options.imageData.width; function keyForXY(x, y) { return y * width + x } function setValueAtXY(object, x, y, value) { const key = keyForXY(x,y); object[key] = value; } function getValueAtXY(object, x, y) { const key = keyForXY(x,y); return object[key]; }

Reemplace su acceso a la estructura de datos con estos, como...

 if (pixel.x == 255 && pixel.a == 255) { setValueAtXY(array, coordX, coordY, { counted: false }); setValueAtXY(result.coords, coordX, coordY, array); }

Tenga en cuenta que no estoy seguro exactamente de lo que está sucediendo en el OP semánticamente ... por qué, por ejemplo, estamos colocando un bool en un objeto o cómo se relacionan entre sí "matriz" y "result.coords", así que no estoy respaldando algo de eso, simplemente mapeando la lógica OP en una estructura de datos más apropiada (aparente).

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!