我有一份药房的检验申请书。我需要使用OpenCV检查标签上的批号和药品。我想过使用PyZbar,但它不支持药码。如何向PyZbar中添加更多代码,如Pharmacode?
非常感谢
发布于 2020-09-21 10:39:08
药码(也称为code32)被实现为使用基数-32“压缩方案”的code39。因此,您可以使用PyZbar,因为您将从库中获得code39解码,然后必须将值从base-32转换为base-10。
请注意,无法知道code39“读取”实际上是code32还是普通的code39。
这是一些将code39值转换为其原始code32字符串的javascript:
// code32 radix set (missing the vowels AEIO)
const code32set = '0123456789BCDFGHJKLMNPQRSTUVWXYZ';
function code39toCode32(val) {
if (/[^0-9BCDFGHJKLMNPQRSTUVWXYZ]/.test(val)) {
throw new Error("Not code32");
}
let res = 0;
for (let i = 0; i < val.length; i++) {
res = res * 32 + code32set.indexOf(val[i]);
}
let code32 = '' + res;
if (code32.length < 9) {
code32 = ('000000000' + code32).slice(-9);
}
return code32;
}该函数应该可以很容易地转换为python。
https://stackoverflow.com/questions/63962650
复制相似问题