本文整理汇总了Python中pyclipper.PT_CLIP属性的典型用法代码示例。如果您正苦于以下问题:Python pyclipper.PT_CLIP属性的具体用法?Python pyclipper.PT_CLIP怎么用?Python pyclipper.PT_CLIP使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类pyclipper
的用法示例。
在下文中一共展示了pyclipper.PT_CLIP属性的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _prepare_clipper
# 需要导入模块: import pyclipper [as 别名]
# 或者: from pyclipper import PT_CLIP [as 别名]
def _prepare_clipper(self, poly):
"""Prepare 3D polygons for clipping operations.
:param poly: The clip polygon.
:returns: A Pyclipper object.
"""
if not self.is_coplanar(poly):
return False
poly1 = self.project_to_2D()
poly2 = poly.project_to_2D()
s1 = pc.scale_to_clipper(poly1.vertices_list)
s2 = pc.scale_to_clipper(poly2.vertices_list)
clipper = pc.Pyclipper()
clipper.AddPath(s1, poly_type=pc.PT_SUBJECT, closed=True)
clipper.AddPath(s2, poly_type=pc.PT_CLIP, closed=True)
return clipper
示例2: iou_score
# 需要导入模块: import pyclipper [as 别名]
# 或者: from pyclipper import PT_CLIP [as 别名]
def iou_score(box1, box2):
"""Returns the Intersection-over-Union score, defined as the area of
the intersection divided by the intersection over the union of
the two bounding boxes. This measure is symmetric.
Args:
box1: The coordinates for box 1 as a list of (x, y) coordinates
box2: The coordinates for box 2 in same format as box1.
"""
if len(box1) == 2:
x1, y1 = box1[0]
x2, y2 = box1[1]
box1 = np.array([[x1, y1], [x2, y1], [x2, y2], [x1, y2]])
if len(box2) == 2:
x1, y1 = box2[0]
x2, y2 = box2[1]
box2 = np.array([[x1, y1], [x2, y1], [x2, y2], [x1, y2]])
if any(cv2.contourArea(np.int32(box)[:, np.newaxis, :]) == 0 for box in [box1, box2]):
warnings.warn('A box with zero area was detected.')
return 0
pc = pyclipper.Pyclipper()
pc.AddPath(np.int32(box1), pyclipper.PT_SUBJECT, closed=True)
pc.AddPath(np.int32(box2), pyclipper.PT_CLIP, closed=True)
intersection_solutions = pc.Execute(pyclipper.CT_INTERSECTION, pyclipper.PFT_EVENODD,
pyclipper.PFT_EVENODD)
union_solutions = pc.Execute(pyclipper.CT_UNION, pyclipper.PFT_EVENODD, pyclipper.PFT_EVENODD)
union = sum(cv2.contourArea(np.int32(points)[:, np.newaxis, :]) for points in union_solutions)
intersection = sum(
cv2.contourArea(np.int32(points)[:, np.newaxis, :]) for points in intersection_solutions)
return intersection / union
示例3: poly_intersect
# 需要导入模块: import pyclipper [as 别名]
# 或者: from pyclipper import PT_CLIP [as 别名]
def poly_intersect(subj, clip):
"""
"""
pc = pyclipper.Pyclipper()
pc.AddPath(clip, pyclipper.PT_CLIP, True)
pc.AddPath(subj, pyclipper.PT_SUBJECT, True)
solution = pc.Execute(
pyclipper.CT_INTERSECTION, pyclipper.PFT_EVENODD, pyclipper.PFT_EVENODD
)
return np.array(solution)
示例4: clipPolygonWithPolygons
# 需要导入模块: import pyclipper [as 别名]
# 或者: from pyclipper import PT_CLIP [as 别名]
def clipPolygonWithPolygons(path, clipPathList):
import pyclipper
pc = pyclipper.Pyclipper()
pc.AddPath(path, pyclipper.PT_SUBJECT, True)
for clipPath in clipPathList: pc.AddPath(clipPath, pyclipper.PT_CLIP, True)
return pc.Execute(pyclipper.CT_DIFFERENCE)
示例5: clip_poly_pair
# 需要导入模块: import pyclipper [as 别名]
# 或者: from pyclipper import PT_CLIP [as 别名]
def clip_poly_pair(pc, p, q):
""""
pc: an instance of pyclipper.Pyclipper.
p: the polygon by which to clip other polygon q.
pc and p may be held fixed through use of functools.partial so that
multiple q may be clipped by p.
"""
pc.Clear()
pc.AddPath(q, pyclipper.PT_SUBJECT, True)
pc.AddPath(p, pyclipper.PT_CLIP, True)
clip_polys = pc.Execute(clip_type=pyclipper.CT_INTERSECTION)
return clip_polys