ADD file via upload

main
pei34bgtf 5 months ago
parent 52bf24b624
commit a79f8e9d94

@ -0,0 +1,45 @@
import cv2
#参数一:list结构的轮廓信息
#参数二:要使用的方法
#返回值:处理过后的轮廓和矩形轮廓
def sort_contours(cnts,method="left-to-right"):
reverse=False
i=0
if method=="right-to-left" or method =="bottom-to-top":
reverse=True
if method=="top-to-bottom" or method=="bottom-to-top":
i=1
'''
cv2.boundingRect(c)
返回四个值分别是xywh
xy是矩阵左上点的坐标wh是矩阵的宽和高
'''
boundingBoxes=[cv2.boundingRect(c) for c in cnts] #在轮廓信息中找到一个外接矩形
(cnts,boundingBoxes)=zip(*sorted(zip(cnts,boundingBoxes),key=lambda b:b[1][i],reverse=reverse))
return cnts,boundingBoxes
#重置大小,用于比较模板和图像中的数字是否一致
#插值方法如下:
#INTER_NEAREST:最邻近插值
#INTER_LINEAR:双线性插值,默认情况下使用该方式进行插值.
#INTER_AREA:基于区域像素关系的一种重采样或者插值方式.该方法是图像抽取的首选方法,它可以产生更少的波纹,
#但是当图像放大时,它的效果与INTER_NEAREST效果相似.
#INTER_CUBIC:4×4邻域双3次插值
#INTER_LANCZOS4:8×8邻域兰索斯插值
def resize(image,width=None,height=None,inter=cv2.INTER_AREA):
dim=None
(h,w)=image.shape[:2] #(200,300,3)
if width is None and height is None:
return image
if width is None:
r=height/float(h)
dim=(int(w*r),height)
else:
r=width/float(w)
dim=(width,int(h*r))
resized=cv2.resize(image,dim,interpolation=inter)
return resized
Loading…
Cancel
Save