我是图像处理的新手,我想识别图像中的二维码。实际上有三个查找器模式,首先我需要找到它们。
所以我尝试了一些方法,首先是与二值化有关,但是当图像有阴影并且光照差异很大时,就很难做出好的二值化图像。实际上自适应阈值取决于滑动窗口的大小,这可能不适用于大条码。因此,即使我制作了一个好的二进制图像,您能否建议我找到条形码的查找模式和条形码本身的方法。最简单的方法,如果我们谈论 QRCode,就是找到图像的所有轮廓并选择那些方形并在里面包含两个方形轮廓的轮廓。
另一种方法是扫描图像的每条水平线以找到正确的取景器图案,这取决于二值图像的制作程度。
所以我看到了解决这个问题的方法,但我想知道还有其他不同的方法可以找到条码的查找模式吗?我认为模式匹配在这里不好。您还可以建议一种不依赖于光照的好的二值化方法。我尝试了很多自适应阈值二值化方法,但它们都有一个共同的问题,如果图像包含一个大的黑色方块,那么二值图像将不会有一个完整的方块,而是一个在方块中间有一些白色部分的方块,这个是因为自适应阈值法中滑动窗口的大小不够大。
我正在寻找可供下载的免费 UPC 或条形码数据库。我看过 upcdataBase.com 和其他一些网站,但这些网站不允许免费下载数据库。文件类型不是一个大问题,因为我可以使用 SQL、csv、文本、XML、json 或其他任何东西。
有谁知道我在哪里可以找到一个?我不需要网络服务,我需要一个实际的文件或方法来下载某人拥有的所有 upcs 或条形码。一个大的包容性数据库会很棒,但即使是部分数据库也会很棒。谢谢
我想将 zing 条码扫描仪集成到我的 android 应用程序中。所以我使用了zing积分器如下
public Button.OnClickListener mScan = new Button.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.setPackage("com.google.zxing.client.android");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}};public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
// Handle successful scan
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想在包含两个摄像头的 android 平板电脑(2.2 版)中实现这个应用程序。当我启动此功能时,它会自动开始使用后置摄像头(主)执行扫描,但根据我的应用需求,我需要仅使用前置摄像头执行条码扫描。有没有类似的选项
intent.putExtra("SCAN_MODE", "QR_CODE_MODE","FRONT_CAMERA");
Run Code Online (Sandbox Code Playgroud)
有没有办法使用 Apple 内置的 iOS 条形码 API 扫描附加条形码的最后 5 位数字?
如果没有,是否有一个免费的 SDK 解决方案,已知该解决方案运行良好并且与最新的 iOS 版本保持同步?ZBar 可以工作,但已经过时了。
请参阅此处的漫画书示例:
扫描仪型号:- Motorola- DS4208-HC
我们需要解析 GS1-128 条形码。我们知道他们将使用 GTIN(01)、批号(10)、有效期(17)、序列号(21)。输入字符串:- (01)07612345678900(17)100503(10)AC3453G3(21)455777
问题是条码阅读器输出一个字符串,格式如下:
01076123456789001710050310AC3453G321455777
由于没有分隔符,并且根据 GS1 标准,序列号和批号都是可变长度,因此我们很难识别段。
未填满的变长字段末尾应有一个 FNC1 字符;这样FNC1就会出现在G3和21之间。我读到的是NC1对人类来说是不可见的,但可以被扫描仪检测到,并将在扫描仪报告的字符串中重现。只需将字符串直接发送到文本文件并使用十六进制阅读器检查文本即可。FNC1 应该是显而易见的。但我们仍然无法在阅读器中读取FNC1。
barcode barcode-scanner barcode-printing gs1-ai-syntax gs1-128
所以我目前正在做一个需要扫描 GS1-128 条形码的项目。到目前为止,对于其他条形码类型,我们一直使用 的AVFoundation扫描,没有出现任何问题。AVFoundation可以读取 Code-128(编码为 GS1-128);我们遇到的问题是,它看起来没有AVFoundation给我们任何 FNC1 字符来识别条形码中的哪些数字是属性标识符,哪些是值,或者我只是遗漏了一些东西。有人在这方面取得过成功吗?
谢谢!
我目前正在尝试在连接到我的 MacBook Pro 的 Docker 容器上运行 USB Scale 和 USB 条形码扫描仪。我了解如何在 Linux 上使用 --device 或 --privileged 标志来执行此操作,但我似乎无法弄清楚这些设备到底位于我的 mac 上的位置,因为它们不是存储设备。有任何想法吗?
我正在使用https://github.com/devongovett/pdfkit生成 PDF 文件,我可以简单地使用类似
app.get('/get-pdf', (req, res) => {
const doc = new PDFDocument();
const filename = 'my_pdf.pdf';
res.setHeader('Content-disposition', 'attachment; filename="' + filename + '"');
res.setHeader('Content-type', 'application/pdf');
const content = "Some content";
doc.y = 300;
doc.text(content, 50, 50);
doc.pipe(res);
doc.end();
});
Run Code Online (Sandbox Code Playgroud)
但我也想生成一个 UPC-A 条形码:
我找到了库https://github.com/lindell/JsBarcode,它可以仅从 12 位代码生成这样的条形码。但是,该库似乎主要用于客户端。
我想用这样的条形码生成一个 PDF,但我不知道该怎么做,或者 JsBarcode 对于这种单一类型的条形码来说是否太复杂。
正如评论中所建议的,我确实尝试使用 UPC-A 字体生成条形码:
app.get('/get-pdf', (req, res) => {
const doc = new PDFDocument();
const filename = 'my_pdf.pdf';
res.setHeader('Content-disposition', 'attachment; filename="' + filename + '"');
res.setHeader('Content-type', …Run Code Online (Sandbox Code Playgroud) 我使用 Google Vision Barcode API 来扫描条码。由此,我可以从条形码中获取显示值。但是,如何在扫描条码后获得完整的产品信息?
这意味着,扫描后我得到的条形码值为 036000291452。但我也需要从中获取产品信息。
类似于下图:
条形码格式:UPC 036000291452 艺术家:Haindling 标签:Polydor
请帮忙!
我一直在努力完成这项工作,但最近几天没有成功。我正在尝试在 Mobile Vison 条形码扫描仪顶部添加一个方形框覆盖层(如果它也可以包含 2 个按钮,那就太好了)。我尝试了不同的方法和解决方案,但没有成功。
谢谢 !
更新
我的 xml 文件是:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/topLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true"
android:orientation="vertical">
<ui.camera.CameraSourcePreview
android:id="@+id/preview"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ui.camera.GraphicOverlay
android:id="@+id/graphicOverlay"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</ui.camera.CameraSourcePreview>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
java 类是:
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.hardware.Camera;
import android.os.Build;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.annotation.NonNull;
import android.support.design.widget.Snackbar;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.ScaleGestureDetector;
import android.view.View;
import …Run Code Online (Sandbox Code Playgroud) barcode ×10
android ×3
gs1-128 ×2
ios ×2
avfoundation ×1
camera ×1
docker ×1
javascript ×1
macos ×1
node-pdfkit ×1
node.js ×1
objective-c ×1
overlay ×1
pdf ×1
usb ×1
zxing ×1