我有代码从网络摄像头获取图像,使用 zBar 扫描其中的 QR 码,并返回代码的值和突出显示 QR 码的图像(基于 http://sourceforge.net/p/qrtracker/wiki/Home/)。如何让它告诉我代码的大小(作为像素值或屏幕的百分比)?
附加问题:有没有办法检测它的偏斜程度(例如,围绕 Y 轴在 Z 轴上的旋转)?
关于代码的大小
zBar 提供了一种在像素值方面执行此操作的方法(一旦你知道像素值的大小,你可以在 % 中找到它
我想在这里扩展代码:http://sourceforge.net/apps/mediawiki/zbar/index.php?title=HOWTO:_Scan_images_using_the_API
上面的代码在图像中找到一个二维码,打印其数据等。现在检查最后几行代码:
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