Пример #1
0
def test_match_template():
    image1 = toolbox.imread(IMAGE_PATH)
    image2 = toolbox.imread(IMAGE_PATH)
    ret = toolbox.match_template_with_object(image1, image2)
    assert ret["ok"]

    ret = toolbox.match_template_with_path(IMAGE_PATH, image2)
    assert ret["ok"]
Пример #2
0
    def contain_image(self,
                      image_path: str = None,
                      image_object: np.ndarray = None,
                      threshold: float = None,
                      *args,
                      **kwargs):
        assert image_path or image_object, 'should fill image_path or image_object'
        if not threshold:
            threshold = 0.99

        if image_path:
            logger.debug(f'found image path, use it first: {image_path}')
            assert os.path.isfile(
                image_path), f'image {image_path} not existed'
            image_object = toolbox.imread(image_path)
        image_object = toolbox.turn_grey(image_object)

        # TODO use client or itself..?
        fi = FindIt(engine=['template'])
        fi_template_name = 'default'
        fi.load_template(fi_template_name, pic_object=image_object)

        with toolbox.video_capture(self.video.path) as cap:
            target_id = self.pick(*args, **kwargs)[0]
            frame = toolbox.get_frame(cap, target_id)
            frame = toolbox.turn_grey(frame)

            result = fi.find(str(target_id), target_pic_object=frame)
        find_result = result['data'][fi_template_name]['TemplateEngine']
        position = find_result['target_point']
        sim = find_result['target_sim']
        logger.debug(f'position: {position}, sim: {sim}')
        return sim > threshold
Пример #3
0
    def contain_image(self,
                      image_path: str = None,
                      image_object: np.ndarray = None,
                      *args,
                      **kwargs) -> typing.Dict:
        assert image_path or image_object, "should fill image_path or image_object"

        if image_path:
            logger.debug(f"found image path, use it first: {image_path}")
            assert os.path.isfile(
                image_path), f"image {image_path} not existed"
            image_object = toolbox.imread(image_path)
        image_object = toolbox.turn_grey(image_object)

        # TODO use client or itself..?
        fi = FindIt(engine=["template"])
        fi_template_name = "default"
        fi.load_template(fi_template_name, pic_object=image_object)

        target_id = self.pick(*args, **kwargs)[0]
        operator = self.video.get_operator()
        frame = operator.get_frame_by_id(target_id)

        result = fi.find(str(target_id), target_pic_object=frame.data)
        return result["data"][fi_template_name]["TemplateEngine"]
Пример #4
0
def test_keep_data():
    cl = SVMClassifier()
    cl.load_model(MODEL_PATH)
    stable, _ = cutter_res.get_range()
    classify_result = cl.classify(VIDEO_PATH, stable, keep_data=True)

    # todo findit bug here
    image_object = toolbox.imread(IMAGE_PATH)[0:20, 0:20]
    assert classify_result.data[0].contain_image(image_object=image_object)
Пример #5
0
    def predict(self, pic_path: str) -> str:
        """
        predict a single picture

        :param pic_path:
        :return:
        """
        pic_object = toolbox.imread(pic_path)
        return self.predict_with_object(pic_object)
Пример #6
0
    def predict(self, pic_path: str, *args, **kwargs) -> str:
        """
        predict a single picture

        :param pic_path:
        :return:
        """
        pic_object = toolbox.imread(pic_path)
        # fake VideoFrame for apply_hook
        fake_frame = VideoFrame(0, 0.0, pic_object)
        fake_frame = self._apply_hook(fake_frame, *args, **kwargs)
        return self.predict_with_object(fake_frame.data)
Пример #7
0
def test_compress():
    image = toolbox.imread(IMAGE_PATH)
    frame = toolbox.compress_frame(image, target_size=(100, 100))
    assert frame.shape == (100, 100)
Пример #8
0
def test_turn_lbp_desc():
    image = toolbox.imread(IMAGE_PATH)
    toolbox.turn_lbp_desc(image)
Пример #9
0
def test_turn_binary():
    image = toolbox.imread(IMAGE_PATH)
    toolbox.turn_binary(image)
Пример #10
0
def test_turn_blur():
    image = toolbox.imread(IMAGE_PATH)
    grey = toolbox.turn_grey(image)
    toolbox.turn_blur(grey)
Пример #11
0
 def read_from_path(data: typing.List[pathlib.Path], *_, **__):
     return (toolbox.imread(each.as_posix()) for each in data)