我的代码从网络摄像头拍摄图像,使用zBar扫描QR码并返回代码值和突出显示QR码的图像(基于http://sourceforge.net/p/qrtracker/wiki/Home/)。我怎样才能告诉我代码的大小(作为像素值或屏幕的百分比)?
附加问题:有没有办法检测它是如何倾斜的(例如绕Z轴绕Y轴旋转)?
答案 0 :(得分:3)
关于代码的大小
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