我有一些代码,可以从网络摄像头中获取图像,然后使用zBar扫描QR码,并返回代码的值和QR码突出显示的图像(基于http://sourceforge.net/p/qrtracker/wiki/Home/)。我还如何使它告诉我代码的大小(以像素值或屏幕百分比表示)?
另一个问题:是否有办法检测其倾斜度(例如Z绕Y轴旋转)?
最佳答案
关于代码的大小
zBar提供了一种根据像素值执行此操作的方法(一旦您知道像素值的大小,就可以按百分比找到它)
我想在这里扩展代码:http://sourceforge.net/apps/mediawiki/zbar/index.php?title=HOWTO:_Scan_images_using_the_API
上面的代码在图像中找到QR码,打印其数据等。现在检查最后几行代码:
import math
scanner.scan(image)
[a,b,c,d] = x.location # it returns the four corners of the QR code in an order
w = math.sqrt((a[0]-b[0])**2 + (a[1]-b[1])**2) # Just distance between two points
h = math.sqrt((b[0]-c[0])**2 + (b[1]-c[1])**2)
Area = w*h
QRCode的偏斜
我认为您想将其转换为预定义的形状(例如正方形,矩形等)。如果是这样,则可以定义预定义形状的角,例如((100,100),(300,100),(300,300),(100,300))。然后找到透视变换并根据需要应用变换。这里提供了OpenCV中的一个示例:http://docs.opencv.org/trunk/doc/py_tutorials/py_imgproc/py_geometric_transformations/py_geometric_transformations.html#perspective-transformation
关于python - 使用OpenCV和Zbar在Python中检测QR码的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22743213/