Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image &引用;条形码“;从扫描图像读取_Image_Image Processing_Processing_Barcode - Fatal编程技术网

Image &引用;条形码“;从扫描图像读取

Image &引用;条形码“;从扫描图像读取,image,image-processing,processing,barcode,Image,Image Processing,Processing,Barcode,我想从打印的扫描图像中读取条形码。图像格式不相关。我发现扫描的图像质量很低,可以理解为什么普通条形码会失效 我的想法是在打印的每页顶部创建一个非标准且非常简单的条形码。它将是一行20个正方形,形成一个简单的二进制代码。Filled=1,open=0。它在A4上足够大,便于检测 在这个阶段,我需要加载图像并在顶部某处找到条形码。它将不会与扫描时的位置完全相同。进入每个块并构建ID 任何知识或信息链接都会很棒 如果您可以预设一个感兴趣的区域,其中包含代码,而不包含其他内容,那么检测就相当容易了。在该

我想从打印的扫描图像中读取条形码。图像格式不相关。我发现扫描的图像质量很低,可以理解为什么普通条形码会失效

我的想法是在打印的每页顶部创建一个非标准且非常简单的条形码。它将是一行20个正方形,形成一个简单的二进制代码。
Filled=1,open=0
。它在
A4
上足够大,便于检测

在这个阶段,我需要加载图像并在顶部某处找到条形码。它将不会与扫描时的位置完全相同。进入每个块并构建ID


任何知识或信息链接都会很棒

如果您可以预设一个感兴趣的区域,其中包含代码,而不包含其他内容,那么检测就相当容易了。在该区域扫描几条光线,找到白/黑和黑/白转换。然后,知道了“细胞”应该在哪里,你就知道了它们的极性

要使其正常工作,您需要在单元格两端用两个黑色单元格框起来,以确保知道它的开始/停止位置(如果比例固定,您可以只使用一个开始单元格,但我不建议这样做)。

您可以看一看。我建议使用1D条形码,但宽度足以匹配扫描仪的低分辨率

您还可以发明自己的条形码编码,并尝试自己解析它。1使用粗条,0使用细线。例如,粗条是2个白色像素,4个黑色像素。细线将是2个白色像素、2个黑色像素和2个白色像素。最后两个像素对位值进行编码。 像素应为扫描图像像素的大小

然后逐行处理图像扫描,尝试定位条形码

我们通过比较给定的像素值序列和模式来定位条形码。这是通过计算分数函数来实现的。差平方和是一个很好的选择。计算分数时,我们忽略编码位值的两个像素

当分数低于阈值时,我们发现了一个匹配模式。最好将奇偶校验位添加到编码值中,以便检查其有效性


可以优化计算滑动窗口上的平方和

[processing]标签应该只用于有关处理语言的问题。不要使用非标准条形码,只需使用标准条形码并放大它,使其足够大,不会被扫描仪弄脏。这是我可以尝试的一个想法@马克赎金。我想向客户发送一封信,需要他们签名、扫描并发回。如果我升级条形码,它可能会出现在自己的页面上。我能够创建一个简单的二进制条形码。扫描后,我可以进行边缘检测,以消除大部分噪声。我的想法是,我的条形码比页面上的任何文本都高3倍,如果我找到一行这样的长度,我可以假设这就是条形码的起始位置。它工作得很好。