1.二维码
创建二维码对象
二维码对象是由 image.find_qrcodes 返回的。
classimage.qrcode¶
请调用 image.find_qrcodes() 函数来创建此对象。
获取二维码的相关坐标
qrcode.corners()
返回一个由该对象的四个角组成的四个元组(x,y)的列表。四个角通常是按照从左上角开始沿顺时针顺序返回的。
qrcode.rect()
返回一个矩形元组(x, y, w, h),用于如二维码的边界框的 image.draw_rectangle
等其他的 image
方法。
qrcode.x()
返回二维码的边界框的x坐标(int)。
您也可以通过索引 [0]
取得这个值。
qrcode.y()
返回二维码的边界框的y坐标(int)。
您也可以通过索引 [1]
取得这个值。
qrcode.w()
返回二维码的边界框的w坐标(int)。
您也可以通过索引 [2]
取得这个值。
qrcode.h()
返回二维码的边界框的h坐标(int)。
您也可以通过索引 [3]
取得这个值。
获取二维码内容相关函数
qrcode.payload()
返回二维码有效载荷的字符串,例如URL 。
您也可以通过索引 [4]
取得这个值。
qrcode.version()
返回二维码的版本号(int)。
您也可以通过索引 [5]
取得这个值。
qrcode.ecc_level()
返回二维码的ECC水平(int)。
您也可以通过索引 [6]
取得这个值。
qrcode.mask()
返回二维码的掩码(int)。
您也可以通过索引 [7]
取得这个值。
qrcode.data_type()
返回二维码的数据类型。
您也可以通过索引 [8]
取得这个值。
qrcode.eci()
返回二维码的ECI。ECI储存了QR码中存储数据字节的编码。若您想要处理包含超过标准ASCII文本的二维码,您需要查看这一数值。
您也可以通过索引 [9]
取得这个值。
qrcode.is_numeric()
若二维码的数据类型为数字式,则返回True。
qrcode.is_alphanumeric()
若二维码的数据类型为文字数字式,则返回True。
qrcode.is_binary()
若二维码的数据类型为二进制式,则返回True。如果您认真处理所有类型的文本,则需要检查eci是否为True,以确定数据的文本编码。通常它只是标准的ASCII,但是它也可能是有两个字节字符的UTF8。
qrcode.is_kanji()
若二维码的数据类型为日本汉字,则返回True。设置为True后,您就需要自行解码字符串,因为日本汉字符号每个字符是10位,而MicroPython不支持解析这类文本。
2.条形码
创建条形码对象
条形码对象是由 image.find_barcodes 返回的。
classimage.barcode¶
请调用 image.find_barcodes() 函数来创建此对象。
获取条形码坐标
barcode.corners()¶
返回一个由该对象的四个角组成的四个元组(x,y)的列表。四个角通常是按照从左上角开始沿顺时针顺序返回的。
barcode.rect()
返回一个矩形元组(x, y, w, h),用于如数据矩阵的边界框的 image.draw_rectangle 等其他的 image
方法。
barcode.x()
返回条形码的边界框的x坐标(int)。
您也可以通过索引 [0]
取得这个值。
barcode.y()
返回条形码的边界框的y坐标(int)。
您也可以通过索引 [1]
取得这个值。
barcode.w()
返回条形码的边界框的w宽度(int)。
您也可以通过索引 [2]
取得这个值。
barcode.h()
返回条形码的边界框的h高度(int)。
您也可以通过索引 [3]
取得这个值。
获取条形码属性相关
barcode.payload()
返回条形码的有效载荷的字符串。例:数量。
您也可以通过索引 [4]
取得这个值。
barcode.type()
返回条形码的列举类型 (int)。
您也可以通过索引 [5]
取得这个值。
image.EAN2
image.EAN5
image.EAN8
image.UPCE
image.ISBN10
image.UPCA
image.EAN13
image.ISBN13
image.I25
image.DATABAR
image.DATABAR_EXP
image.CODABAR
image.CODE39
image.PDF417 - 未来启用 (e.g. 现在还不能正常使用).
image.CODE93
image.CODE128
barcode.rotation()
返回以弧度计的条形码的旋度(浮点数)。
您也可以通过索引 [6]
取得这个值。
barcode.quality()
返回条形码在图像中被检测到的次数(int)。
扫描条形码时,每一条新的扫描线都能解码相同的条形码。每次进行这一过程,条形码的值都会随之增加。
您也可以通过索引 [7]
取得这个值。
3.AprilTag类 – AprilTag对象
创建AprilTag对象
AprilTag对象是由 image.find_apriltags 返回的。
classimage.apriltag¶
请调用 image.find_apriltags() 函数来创建此对象。
获取AprilTag对象坐标
apriltag.corners()
返回一个由该对象的四个角组成的四个元组(x,y)的列表。四个角通常是按照从左上角开始沿顺时针顺序返回的。
apriltag.rect()
返回一个矩形元组(x, y, w, h),用于如AprilTag边界框的 image.draw_rectangle 等其他的 image
方法。
apriltag.x()
返回AprilTag边界框的x坐标(int)。
您也可以通过索引 [0]
取得这个值。
apriltag.y()
返回AprilTag边界框的y坐标(int)。
您也可以通过索引 [1]
取得这个值。
apriltag.w()
返回AprilTag边界框的w坐标(int)。
您也可以通过索引 [2]
取得这个值。
apriltag.h()
返回AprilTag边界框的h坐标(int)。
您也可以通过索引 [3]
取得这个值。
apriltag.cx()
返回AprilTag的中心x位置(int)。
您也可以通过索引 [6]
取得这个值。
apriltag.cy()
返回AprilTag的中心y位置(int)。
您也可以通过索引 [7]
取得这个值。
apriltag.id()
返回AprilTag的数字ID。
TAG16H5 -> 0 to 29
TAG25H7 -> 0 to 241
TAG25H9 -> 0 to 34
TAG36H10 -> 0 to 2319
TAG36H11 -> 0 to 586
ARTOOLKIT -> 0 to 511
您也可以通过索引 [4]
取得这个值。
apriltag.family()
返回AprilTag的数字家庭。
image.TAG16H5
image.TAG25H7
image.TAG25H9
image.TAG36H10
image.TAG36H11
image.ARTOOLKIT
您也可以通过索引 [5]
取得这个值。
apriltag.rotation()
返回以弧度计的AprilTag的旋度(int)。
您也可以通过索引 [8]
取得这个值。
apriltag.decision_margin()
返回AprilTag匹配的色饱和度(取值0.0 - 1.0),其中1.0为最佳。
您也可以通过索引 [9]
取得这个值。
apriltag.hamming()
返回AprilTag的可接受的数位误差数值。
TAG16H5 -> 最多可接受0位错误
TAG25H7 -> 最多可接受1位错误
TAG25H9 -> 最多可接受3位错误
TAG36H10 -> 最多可接受3位错误
TAG36H11 -> 最多可接受4位错误
ARTOOLKIT -> 最多可接受0位错误
您也可以通过索引 [10]
取得这个值。
apriltag.goodness()
返回AprilTag图像的色饱和度(取值0.0 - 1.0),其中1.0为最佳。
备注
目前这一数值通常是0.0。未来我们可以启用一个称为“标签细化”的功能,以实现对更小的AprilTag的检测。然而,现在这个功能将帧速率降低到1 FPS以下。
您也可以通过索引 [11]
取得这个值。
apriltag.x_translation()
返回距离摄像机x方向的变换,距离的单位未知。
这个方法对于确定远离摄像机的AprilTag的位置很有用。但是,AprilTag的大小以及您使用的镜头等因素都会影响X单元归属的确定。为使用方便,我们推荐您使用查找表将该方法的输出转换为对您的应用程序有用的信息。
注意:此处的方向为从左至右。
您也可以通过索引 [12]
取得这个值。
apriltag.y_translation()
返回距离摄像机y方向的变换,距离的单位未知。
这个方法对于确定远离摄像机的AprilTag的位置很有用。但是,AprilTag的大小以及您使用的镜头等因素都会影响Y单元归属的确定。为使用方便,我们推荐您使用查找表将该方法的输出转换为对您的应用程序有用的信息。
注意:此处的方向为从上至下。
您也可以通过索引 [13]
取得这个值。
apriltag.z_translation()
返回距离摄像机z方向的变换,距离的单位未知。
T这个方法对于确定远离摄像机的AprilTag的位置很有用。但是,AprilTag的大小以及您使用的镜头等因素都会影响Z单元归属的确定。为使用方便,我们推荐您使用查找表将该方法的输出转换为对您的应用程序有用的信息。
注意:此处的方向为从前至后。
您也可以通过索引 [14]
取得这个值。
apriltag.x_rotation()
返回以弧度计的AprilTag在X平面上的旋度。例:目视AprilTag,从左至右移动摄像头。
您也可以通过索引 [15]
取得这个值。
apriltag.y_rotation()
返回以弧度计的AprilTag在Y平面上的旋度。例:目视AprilTag,从上至下移动摄像头。
您也可以通过索引 [16]
取得这个值。
apriltag.z_rotation()
返回以弧度计的AprilTag在Z平面上的旋度。例:目视AprilTag,旋转摄像头。
注意:这只是 apriltag.rotation() 的重命名版本。
您也可以通过索引 [17]
取得这个值。
4.Displacement类 – 位移对象
创建位移对象
位移对象由 image.find_displacement 返回。
classimage.displacement¶
请调用 image.find_displacement() 函数来创建此对象。
获取平移方向像素点
displacement.x_translation()
返回两个图像之间的x平移像素。 这是精确的子像素,所以它是一个浮点数。
您也可以通过索引 [0]
取得这个值。
displacement.y_translation()
返回两个图像之间的y平移像素。 这是精确的子像素,所以它是一个浮点数。
您也可以通过索引 [1]
取得这个值。
displacement.rotation()
返回两个图像之间的z平移像素。 这是精确的子像素,所以它是一个浮点数。
您也可以通过索引 [2]
取得这个值。
displacement.scale(
返回两个图像之间旋转的弧度。
您也可以通过索引 [3]
取得这个值。
displacement.response()
返回两幅图像之间位移匹配结果的质量。 范围 0-1。响应小于0.1的 displacement
对象可能是噪声。
您也可以通过索引 [4]
取得这个值。
5.统计数据对象
5.1ROI感兴趣的区域
roi的格式是(x, y, w, h)的tupple.
- x:ROI区域中左上角的x坐标
- y:ROI区域中左上角的y坐标
- w:ROI的宽度
- h:ROI的高度
5.2class Statistics – 统计数据对象
统计数据对象是由 histogram.get_statistics
或 image.get_statistics
返回的。
灰度统计数据有一个通道,使用非 l_*
、 a_*
或 b_*
方法。
RGB565百分比值有三个通道。使用 l_*
、 a_*
和 b_*
方法。
创建统计对象
classimage.statistics¶
请调用 histogram.get_statistics() 或 image.get_statistics() 函数来创建此对象。
灰度对象
statistics.mean()
返回灰度均值(0-255) (int)。
您也可以通过索引 [0]
取得这个值。
statistics.median()
返回灰度中值(0-255) (int)。
您也可以通过索引 [1]
取得这个值。
statistics.mode()
返回灰度众值(0-255) (int)。
您也可以通过索引 [2]
取得这个值。
statistics.stdev()
返回灰度标准差(0-255) (int)。
您也可以通过索引 [3]
取得这个值。
statistics.min()
返回灰度最小值(0-255) (int)。
您也可以通过索引 [4]
取得这个值。
statistics.max()
返回灰度最大值(0-255) (int)。
您也可以通过索引 [5]
取得这个值。
statistics.lq()
返回灰度下四分值(0-255) (int)。
您也可以通过索引 [6]
取得这个值。
statistics.uq()
返回灰度上四分值(0-255) (int)。
您也可以通过索引 [7]
取得这个值。
RGB对象
RGB中L相关
statistics.l_mean()
返回RGB5656 LAB 中L的均值(0-255) (int)。
您也可以通过索引 [0]
取得这个值。
statistics.l_median()
返回RGB5656 LAB 中L的中值(0-255) (int)。
您也可以通过索引 [1]
取得这个值。
statistics.l_mode()
返回RGB5656 LAB 中L的众值(0-255) (int)。
您也可以通过索引 [2]
取得这个值。
statistics.l_stdev()
返回RGB5656 LAB 中L的标准偏差值(0-255) (int)。
您也可以通过索引 [3]
取得这个值。
statistics.l_min()
返回RGB5656 LAB 中L的最小值(0-255) (int)。
您也可以通过索引 [4]
取得这个值。
statistics.l_max()
返回RGB5656 LAB 中L的最大值(0-255) (int)。
您也可以通过索引 [5]
取得这个值。
statistics.l_lq()
返回RGB5656 LAB 中L的下四分值(0-255) (int)。
您也可以通过索引 [6]
取得这个值。
statistics.l_uq()
返回RGB5656 LAB 中L的上四分值(0-255) (int)。
您也可以通过索引 [7]
取得这个值。
RGB中A相关
statistics.a_mean()
返回RGB5656 LAB 中A的均值(0-255) (int)。
您也可以通过索引 [8]
取得这个值。
statistics.a_median()
返回RGB5656 LAB 中A的中值(0-255) (int)。
您也可以通过索引 [9]
取得这个值。
statistics.a_mode()
返回RGB5656 LAB 中A的众值(0-255) (int)。
您也可以通过索引 [10]
取得这个值。
statistics.a_stdev()
返回RGB5656 LAB 中A的标准偏差值(0-255) (int)。
您也可以通过索引 [11]
取得这个值。
statistics.a_min()
返回RGB5656 LAB 中A的最小值(0-255) (int)。
您也可以通过索引 [12]
取得这个值。
statistics.a_max()
返回RGB5656 LAB 中A的最大值(0-255) (int)。
您也可以通过索引 [13]
取得这个值。
statistics.a_lq()
返回RGB5656 LAB 中A的下四分值(0-255) (int)。
您也可以通过索引 [14]
取得这个值。
statistics.a_uq()
返回RGB5656 LAB 中A的上四分值(0-255) (int)。
您也可以通过索引 [15]
取得这个值。
RGB中B相关
statistics.b_mean()
返回RGB5656 LAB 中B的均值(0-255) (int)。
您也可以通过索引 [16]
取得这个值。
statistics.b_median()
返回RGB5656 LAB 中B的中值(0-255) (int)。
您也可以通过索引 [17]
取得这个值。
statistics.b_mode()
返回RGB5656 LAB 中B的众值(0-255) (int)。
您也可以通过索引 [18]
取得这个值。
statistics.b_stdev()
返回RGB5656 LAB 中B的标准差值(0-255) (int)。
您也可以通过索引 [19]
取得这个值。
statistics.b_min()
返回RGB5656 LAB 中B的最小值(0-255) (int)。
您也可以通过索引 [20]
取得这个值。
statistics.b_max()
返回RGB5656 LAB 中B的最大值(0-255) (int)。
您也可以通过索引 [21]
取得这个值。
statistics.b_lq()
返回RGB5656 LAB 中B的下四分值(0-255) (int)。
您也可以通过索引 [22]
取得这个值。
statistics.b_uq()
返回RGB5656 LAB 中B的上四分值(0-255) (int)。
您也可以通过索引 [23]
取得这个值。
5.3感兴趣区和统计结合
感兴趣区和统计结合起来就可以看识别别的准确度