基本信息
源码名称:压力表面板识别(DashBoard.py)
源码大小:0.02M
文件格式:.py
开发语言:Python
更新时间:2020-07-18
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
压力表面板识别
压力表面板识别
def detection_circle(contour): """ 判断轮廓是否为圆形 :param contour: 检测的轮廓 :return: True or False """ if contour is not None: # 轮廓面积 area = cv2.contourArea(contour) # 轮廓周长 length = cv2.arcLength(contour, True) if minArea < area and length > minLength: # 计算质心 circle_centroid = cv2.moments(contour) # 质心坐标 circle_centroid_point = int(circle_centroid['m10'] / circle_centroid['m00']),\ int(circle_centroid['m01'] / circle_centroid['m00']) # 计算圆心 (x0, y0), radius = cv2.minEnclosingCircle(contour) center = (int(x0), (y0)) # 假设是圆 通过最小外接圆的半径计算面积和周长 radius = int(radius) if min_radius > radius: return False # 圆面接 circle_area = math.pi * radius * radius # 圆周长 circel_length = 2 * radius * math.pi k1 = area / circle_area k2 = length / circel_length k3 = (center[0] / circle_centroid_point[0] center[1] / circle_centroid_point[1]) / 2 if 0.9 < k1 < 1.3 and 0.9 < k2 < 1.4 and 0.9 < k3 < 1.005: return True if isTest: print("invoke detection_circle:", contour) print("k1:%s k2:%s k3:%s" % (k1, k2, k3)) print("面积比:%s 周长比:%s 圆心偏移比:%s" % (k1, k2, k3)) return False