本文主要对opencv给出画出的最小外接矩形及其中心点的方法,用于可视化查找的目标块位置,便于调试,实际中查找到最小外接矩形后,会对轮廓筛选,参见我另一片博客:Python图片查找轮廓、多边形拟合、最小外接矩形操作实例,此外本文还参考了其他博客OpenCv-Python 最小外接圆、最小外接矩形、椭圆拟合、直线拟合
import cv2
img = cv2.imread("big_flag2.png")
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(img_gray, 127, 255, cv2.THRESH_BINARY)
_, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
for i in range(len(contours)):
x, y, w, h = cv2.boundingRect(contours[i])
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 1)
rect = cv2.minAreaRect(contours[i])
cv2.circle(img, (int(rect[0][0]), int(rect[0][1])), 2, (0, 0, 255), 2)
cv2.namedWindow('Result of draw', 0)
cv2.imshow('Result of draw', img)
cv2.waitKey()