Repita la lista de fotos ordenadas por fecha de creación, busque el código de barras en la foto y asigne las fotos posteriores al código de barras respectivo

Para un proyecto de comercio electrónico, necesitamos fotografiar decenas de miles de productos que tienen un código de barras. Para cargar las fotos por lotes en la tienda y saber qué foto pertenece a qué productos, pensé en el siguiente proceso:

  1. tomar producto
  2. Hacer una foto clara del código de barras del producto
  3. haga n fotos del producto desde varias perspectivas (el código de barras no será visible en estas fotos)
  4. Tome el siguiente producto, vaya al paso 2

El resultado sería una lista de fotos como esta.

  • foto del código de barras del producto A
  • 1ra foto del producto A
  • 2da foto del producto A
  • foto del código de barras del producto B
  • 1ra foto del producto B
  • foto del código de barras del producto C
  • 1ra foto del producto C
  • 2da foto del producto C
  • foto del código de barras del producto D
  • 1ra foto del producto D
  • 2da foto del producto D
  • 3ra foto del producto D
  • 4ta foto del producto D
  • foto del código de barras del producto E
  • 1ra foto del producto E
  • 2da foto del producto E

Ahora estoy buscando un software para iterar esta lista y crear un archivo csv con el siguiente resultado

barcode | filenames
12312312 | p1.jpg, p2.jpg
42342342 | p3.jpg
31231231 | p4.jpg, p5.jpg
31254234 | p6.jpg, p7.jpg, p8.jpg, p9.jpg
75867867 | p10.jpg, p11.jpg

Editar: no tengo restricciones con respecto al sistema operativo. Puede ser Windows, Linux o MacOS, sin tener en cuenta cierta limitación presupuestaria. Quiero decir que no creo que este servicio deba ser muy caro, pero tampoco espero un software gratuito.

He respondido en la publicación como editar. ¿Es ese el procedimiento correcto o debería haber respondido aquí como un comentario?
¡Gracias! Ese es en realidad el procedimiento recomendado 👍

Respuestas (2)

Dado que mencionó un "proyecto de comercio electrónico", esto podría significar que tiene acceso a un programador. Si ese es el caso, puede usar un kit de herramientas de programación para verificar las imágenes en busca de códigos de barras y crear el archivo CSV usando el código.

Uno de estos conjuntos de herramientas es LEADTOOLS Barcode Pro . Descargo de responsabilidad: soy un empleado del proveedor de este kit de herramientas. El siguiente código C# genera un archivo CSV a partir de una lista de nombres de archivos de imagen:

private void CreatePhotoList(string csvName, string[] imageFileNames)
{
System.IO.StreamWriter csv = new StreamWriter(csvName);
csv.Write("barcode,filenames");
for (int i = 0; i < imageFileNames.Length; ++i)
{
   RasterImage image = _codecs.Load(imageFileNames[i]);
   BarcodeEngine engine = new BarcodeEngine();
   BarcodeReader reader = engine.Reader;
   var symbologies // specify one or more types of barcodes you want to search for
      = new BarcodeSymbology[] { BarcodeSymbology.Code128, BarcodeSymbology.Code3Of9 };
   BarcodeData barcode = reader.ReadBarcode(image, LeadRect.Empty, symbologies);
   string itemToWrite;
   if (barcode == null)
   {
      itemToWrite = imageFileNames[i];
      csv.Write(",");
   }
   else
   {
      csv.Write("\n");
      itemToWrite = barcode.Value;
   }
   if (itemToWrite.Contains(",")) //if there's a comma, should enclose in double-quotes
      itemToWrite = "\"" + itemToWrite + "\"";
   csv.Write(itemToWrite);
}
csv.Close();
}

El código utiliza LEADTOOLS para buscar un código de barras en la imagen. Si encuentra uno, comienza una nueva línea y escribe el valor del código de barras en el CSV. Si la imagen no contiene un código de barras, escribe su nombre en la misma línea, asumiendo que pertenece al código de barras anterior.

Esto debería funcionar si la lista de nombres de archivo de imagen está ordenada correctamente (código de barras 1, imagen 1, imagen 1, código de barras 2, imagen 2, imagen 2, imagen 2, etc.)

Si desea probarlo, hay una edición de evaluación gratuita de LEADTOOLS que puede descargar . Si no codifica en C#, el kit de herramientas es compatible con otros lenguajes, incluidos C, C++, VB.NET, Java y Objective-C. Además, el soporte técnico es gratuito incluso durante la evaluación.

Puede usar la combinación de python , OpenCV y zbar para crear un script. La localización y decodificación de códigos de barras de imágenes o transmisiones de video se cubre muy bien en esta publicación de blog en solo 40 líneas de código para imágenes estáticas, la única diferencia significativa es que desea agregar los nombres de archivo de las imágenes que no contienen un código de barras a la lista del último código de barras.

  • Gratis, gratis y de código abierto
  • Cross Platform (incluso se ejecutará en una Raspberry Pi).