首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迭代按创建日期排序的照片列表,搜索照片中的条形码,并将后续照片映射到相应的条形码。

迭代按创建日期排序的照片列表,搜索照片中的条形码,并将后续照片映射到相应的条形码。
EN

Software Recommendation用户
提问于 2019-02-27 14:48:37
回答 2查看 65关注 0票数 0

对于电子商务项目,我们需要拍摄数以万计的产品,这些产品都有条形码。为了批量上传照片到商店,并知道哪张照片属于哪种产品,我想到了以下过程:

  1. 拿产品
  2. 清晰的产品条形码照片
  3. 从不同角度制作产品的n张照片(这些照片上看不到条形码)
  4. 拿下一个产品,进入第二步

结果会是这样的照片列表

  • 产品A条形码照片
  • 产品A第一张照片
  • 产品A的第二张照片
  • B产品条形码照片
  • 产品B的第一张照片
  • 产品C条形码照片
  • 产品C的第一张照片
  • 产品C的第二张照片
  • 产品D条形码照片
  • 产品D的第一张照片
  • 产品D的第二张照片
  • 产品D的第三张照片
  • 产品D的第四张照片
  • E产品条形码照片
  • 产品E的第一张照片
  • 产品E的第二张照片

现在,我正在寻找一个软件来迭代这个列表并创建一个csv文件,其结果如下

代码语言:javascript
复制
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

编辑:我对操作系统没有任何限制。它可以是Windows、Linux或MacOS,也可以不考虑某些预算限制。我的意思是,我不认为这项服务非常昂贵,但我也不期望免费软件。

EN

回答 2

Software Recommendation用户

发布于 2019-04-04 16:15:22

由于您提到了一个“电子商务项目”,这可能意味着您可以访问一个程序员。如果是这样的话,您可以使用编程工具包来检查图像中的条形码,并使用代码构建CSV文件。

这样的工具包之一就是LEADTOOLS条形码Pro。免责声明:我是这个工具包供应商的雇员。以下C#代码从图像文件名列表构建CSV文件:

代码语言:javascript
复制
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();
}

代码使用LEADTOOLS搜索图像中的条形码。如果找到一个,它将启动一个新行并将条形码值写入CSV。如果图像不包含条形码,则假设它属于前一个条形码,则将其名称写入同一行。

如果图像文件名列表的顺序正确(Barcode1、picture1、picture1、Barcode2、picture2等),这应该可以工作。

如果你想试一试,就会有免费评估版的LEADTOOLS,您可以下载。如果您不使用C#编写代码,则工具箱支持其他语言,包括C、C++、VB.NET、Java和Objective。此外,即使在评价期间,技术支助也是免费的。

票数 0
EN

Software Recommendation用户

发布于 2019-12-31 14:46:12

您可以使用pythonOpenCV和zbar的组合来编写脚本。来自图像或视频提要的条形码的定位和解码在静态图像的40行代码中很好地涵盖了这个博客 post,唯一重要的区别是您希望将不包含条形码的图像的文件名附加到最新条形码列表中。

  • 免费和开放源码
  • 跨平台(甚至会运行在树莓Pi上)。
票数 0
EN
页面原文内容由Software Recommendation提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwarerecs.stackexchange.com/questions/56560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档