当前位置: 首页>>代码示例>>Python>>正文


Python cv2.matchShapes方法代码示例

本文整理汇总了Python中cv2.matchShapes方法的典型用法代码示例。如果您正苦于以下问题:Python cv2.matchShapes方法的具体用法?Python cv2.matchShapes怎么用?Python cv2.matchShapes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在cv2的用法示例。


在下文中一共展示了cv2.matchShapes方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: findEllipses

# 需要导入模块: import cv2 [as 别名]
# 或者: from cv2 import matchShapes [as 别名]
def findEllipses(edges):
    contours, _ = cv2.findContours(edges.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
    ellipseMask = np.zeros(edges.shape, dtype=np.uint8)
    contourMask = np.zeros(edges.shape, dtype=np.uint8)

    pi_4 = np.pi * 4

    for i, contour in enumerate(contours):
        if len(contour) < 5:
            continue

        area = cv2.contourArea(contour)
        if area <= 100:  # skip ellipses smaller then 10x10
            continue

        arclen = cv2.arcLength(contour, True)
        circularity = (pi_4 * area) / (arclen * arclen)
        ellipse = cv2.fitEllipse(contour)
        poly = cv2.ellipse2Poly((int(ellipse[0][0]), int(ellipse[0][1])), (int(ellipse[1][0] / 2), int(ellipse[1][1] / 2)), int(ellipse[2]), 0, 360, 5)

        # if contour is circular enough
        if circularity > 0.6:
            cv2.fillPoly(ellipseMask, [poly], 255)
            continue

        # if contour has enough similarity to an ellipse
        similarity = cv2.matchShapes(poly.reshape((poly.shape[0], 1, poly.shape[1])), contour, cv2.cv.CV_CONTOURS_MATCH_I2, 0)
        if similarity <= 0.2:
            cv2.fillPoly(contourMask, [poly], 255)

    return ellipseMask, contourMask 
开发者ID:AVGInnovationLabs,项目名称:DoNotSnap,代码行数:33,代码来源:RegionOfInterest.py

示例2: matchMaxAreaWithShape

# 需要导入模块: import cv2 [as 别名]
# 或者: from cv2 import matchShapes [as 别名]
def matchMaxAreaWithShape(self, mask, shape):
        """it returns a value which identify the similarity between
            the largest area contour and a shape.
 
        The lower the result, the better match it is. It is calculated 
        based on the hu-moment values. For example if we have three shapes:
        A=star, B=rotated dilatated star, C=square
        Matching Image A with itself = 0.0
        Matching Image A with Image B = 0.001946
        Matching Image A with Image C = 0.326911
        @param mask the binary image to use in the function
        @param shape the contour to compare
        """        
        cnt = self.returnMaxAreaContour(mask)
        return cv2.matchShapes(cnt, shape, 1, 0.0) 
开发者ID:mpatacchiola,项目名称:deepgaze,代码行数:17,代码来源:mask_analysis.py


注:本文中的cv2.matchShapes方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。