Esempio n. 1
0
def segmentChannel(ch, log=None):
    clone = cv.CloneImage(ch)
    components = cap.findCCs(ch, erasecol=0)
    joiner = lambda rect1, rect2: (cap.rectsIntersectH(rect1, rect2) and cap.distV(rect1, rect2) <= 6) or \
                                  (rect1[2] <= 10 and rect2[2] <= 10 and cap.distH(rect1, rect2) <= 6) or \
                                  ((rect1[2] <= 6 or rect2[2] <= 6)  and cap.distH(rect1, rect2) <= 6)
    components = cap.joinCCs(components, joiner)
    components = filtCCs(components, (15, 15), 200, 0.2)
    if log is not None:
        log.log(cap.drawComponents(clone, components))
    return components
Esempio n. 2
0
File: segment.py Progetto: woto/EPC
def segmentChannel(ch, log=None):
    clone = cv.CloneImage(ch)
    components = cap.findCCs(ch, erasecol=0)
    joiner = lambda rect1, rect2: (cap.rectsIntersectH(rect1, rect2) and cap.distV(rect1, rect2) <= 6) or \
                                  (rect1[2] <= 10 and rect2[2] <= 10 and cap.distH(rect1, rect2) <= 6) or \
                                  ((rect1[2] <= 6 or rect2[2] <= 6)  and cap.distH(rect1, rect2) <= 6)
    components = cap.joinCCs(components, joiner)
    components = filtCCs(components, (15, 15), 200, 0.2)
    if log is not None:
        log.log(cap.drawComponents(clone, components))
    return components
Esempio n. 3
0
File: segment.py Progetto: woto/EPC
def segment(image, addr, extras):
    clone = cv.CloneImage(image)
    log = cap.logger(extras, image)
    components = cap.findCCs(image, erasecol=0, doContinue=None, doSkip=lambda comp: comp[0] <= 25)
    log.log(cap.drawComponents(clone, components))
    if len(components) != nSegs:
        components = cap.joinCCs(components, cap.rectsIntersectH)
        log.log(cap.drawComponents(clone, components))
    cap.processExtras(log.steps, addr, extras, cap.CAP_STAGE_SEGMENT)
    assert(len(components) == nSegs)
    segments = map(lambda comp: comp[3], components)
    return segments
Esempio n. 4
0
def segment(image, addr, extras):
    clone = cv.CloneImage(image)
    log = cap.logger(extras, image)
    components = cap.findCCs(image,
                             erasecol=0,
                             doContinue=None,
                             doSkip=lambda comp: comp[0] <= 25)
    log.log(cap.drawComponents(clone, components))
    if len(components) != nSegs:
        components = cap.joinCCs(components, cap.rectsIntersectH)
        log.log(cap.drawComponents(clone, components))
    cap.processExtras(log.steps, addr, extras, cap.CAP_STAGE_SEGMENT)
    assert (len(components) == nSegs)
    segments = map(lambda comp: comp[3], components)
    return segments
Esempio n. 5
0
def segment(image, addr, extras):
    log = cap.logger(extras, image)
    clone = cv.CloneImage(image)
    components = cap.findCCs(image, 0, lambda col: col <= 128, lambda comp: comp[0] < 10)
    log.log(cap.drawComponents(clone, components), False)
    components = cap.joinCCs(components, cap.rectsIntersectH)
    log.log(cap.drawComponents(clone, components), False)
    assert(len(components) <= nSegs)
    parts = cap.partsFromnSegs5(components)
    components = cap.spltCCs(components, parts, projRadius=4, thresh=1)
    log.log(cap.drawComponents(clone, components), False)
    segments = map(lambda comp: comp[3], components)
    log.log(cap.joinImagesH(segments), False)
    cap.processExtras(log.steps, addr, extras, cap.CAP_STAGE_SEGMENT)
    return segments