def find_blobs(cls, image): blobs = [] if cls.DARK_ON_LIGHT: image = utils.get_invert_image(image) contours = Contour.find_contours(image, 150) for contour in contours: if contour.area >= PIXEL_MIN: blobs.append(Blob.from_contour(contour)) return blobs
def find_regions_by_border_color(cls, image_BGR, hsv_border_color=utils.HSV_BLACK): image_HSV = utils.BGR_to_HSV(image_BGR) min_max = utils.HSV_BLACK_RANGE if cls.BLACK_BORDER else utils.get_HSV_range(hsv_border_color) thresh = utils.gray_to_BGR(cv2.inRange(image_HSV, min_max['min'], min_max['max'])) # utils.show_image(thresh, 2000, 'debug') contours = Contour.find_contours(thresh) contours = Contour.remove_frame(contours) contours = Contour.without_small_contours(contours, utils.image_size(image_BGR)*cls.MIN_RATIO) regions = [] for contour in contours: regions.append(Region.from_contour(contour)) return regions