pythonOpenCV边界框,最⼩矩形区域和最⼩闭圆的轮廓cv2.boundingRect(img)函数
这个函数很简单,img是⼀个⼆值图,也就是它的参数;
返回四个值,分别是x,y,w,h;
x,y是矩阵左上点的坐标,w,h是矩阵的宽和⾼
然后利⽤angle(img, (x,y), (x+w,y+h), (0,255,0), 2),画出矩形
参数解释
第⼀个参数:img是原图
第⼆个参数:(x,y)是矩阵的左上点坐标
第三个参数:(x+w,y+h)是矩阵的右下点坐标
第四个参数:(0,255,0)是画线对应的rgb颜⾊
第五个参数:2是所画的线的宽度
原图
代码⽰例
img = cv2.imread('tim.jpg')[:300,:300]
img2 = cv2.pyrDown(img, cv2.IMREAD_UNCHANGED)
ret, thresh = cv2.threshold(cv2.py(), cv2.COLOR_BGR2GRAY),127,255, cv2.THRESH_BINARY) contours, hier = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
print(np.array(contours).shape)
# print(contours)
for c in contours:
#    边界框
x, y, w, h = cv2.boundingRect(c)
#    最⼩外接矩阵
rect = cv2.minAreaRect(c)
box = cv2.boxPoints(rect)
box = np.int0(box)
cv2.drawContours(img2,[box],-1,(0,0,255),2)
#    最⼩外接闭圆
rectangle函数opencv
(x, y), radius = cv2.minEnclosingCircle(c)
center =(int(x),int(y))
radius =int(radius)
img = cv2.circle(img2, center, radius,(0,255,0),2)
cv2.drawContours(img, contours,-1,(255,0,0),1)
a(img2)
处理后

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。