import cv2
o = cv2.imread('cc.bmp')
cv2.imshow("original",o)
#转换灰度图
gray = cv2.cvtColor(o,cv2.COLOR_BGR2GRAY)
#转换灰度图阈值分割-转换为二值图 0 1
ret, binary = cv2.threshold(gray,127,255,cv2.THRESH_BINARY)
# cv2.findContours 函数用于检测二值图像中的轮廓
contours, hierarchy = cv2.findContours(binary,
cv2.RETR_LIST,
cv2.CHAIN_APPROX_SIMPLE)
#cv2.findContours 函数用于从二值图像中检测轮廓-计算轮廓的周长、面积、凸包、最小外接矩形
#这里是计算外接圆
(x,y),radius = cv2.minEnclosingCircle(contours[0])
#中心x y 赋值给center
center = (int(x),int(y))
# 半径
radius = int(radius)
# 画出外接圆
cv2.circle(o,center,radius,(255,255,255),2)
cv2.imshow("result",o)
cv2.waitKey()
cv2.destroyAllWindows()
原图:
结果图: