12 2023 档案
摘要:相较于BarCode,QRCode有明显的特征区域,也就是左上角、右上角、左下角三个”回“字区域,得益于hierarchy中,父子关系的轮廓是连续的(下标),所以这个时候我们就可以通过cv2.findContours()返回的hierarchy来进行定位。 我们直接上代码 1 import cv2
阅读全文
摘要:在打算自己实现二维码的定位的时候,看到了相关博文的关于cv2.findContours返回的层级信息来定位三个“回”字从而达到定位二维码的目的,但是返回的hierarchy中的层级信息分别对应的是哪个轮廓却困扰了许久,查阅了很多资料最后还是自己手动找出了清晰的规律。 关于hierarchy返回的每一
阅读全文
摘要:根据上一篇博客可知,单纯的通过求取最大面积而进行定位的局限性,因此我们接下来将通过cv2.moments()和cv2.HuMoments()这两个方法来在更复杂的环境中去找到我们的目标区域。 cv2.moments(): 参数: array:表示输入图像的单通道数组。通常是灰度图像,可以是8位或浮点
阅读全文
摘要:关于二维码和条形码的检测和识别,在OpenCV中已经有提供了对应的API,cv2.QRCodeDetector() | cv2.barcode_BarcodeDetector() ,相关的实现极其简单: 只需要上述短短三行代码即可检测二维码和条形码的位置并识别码内信息,相关parameter和ret
阅读全文
摘要:重新理解一下Canny方法: 参数: image:输入的图像。 threshold1:第一个阈值,用于检测边缘的强度梯度的下限。 threshold2:第二个阈值,用于检测边缘的强度梯度的上限。 apertureSize:Sobel算子的大小,可选值为3、5、7,默认值为3。 L2gradient:
阅读全文
摘要:针对遇到的各种复杂形状的主体,大多情况下,我们可以求得一个近似的多边形来简化视觉图像处理,因为多边形是由直线组成的,这样就可以准确的划分区域来便捷后续的操作。 cv2.arcLength() Method: 参数: curve:要计算周长的轮廓,可以是一个矩形、圆形、多边形等封闭曲线。 closed
阅读全文
摘要:外接矩形、外接圆: 1 import cv2 2 import numpy 3 4 img = cv2.imread('../img/img.png', -1) 5 ret, thresh = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) 6 con
阅读全文