Shortcuts

Source code for agentlego.tools.image_canny.image_to_canny

import numpy as np

from agentlego.types import ImageIO
from agentlego.utils import require
from ..base import BaseTool


[docs]class ImageToCanny(BaseTool): """A tool to do edge detection by canny algorithm on an image. Args: toolmeta (None | dict | ToolMeta): The additional info of the tool. Defaults to None. """ default_desc = 'This tool can extract the edge image from an image.' @require('opencv-python') def __init__(self, toolmeta=None): super().__init__(toolmeta=toolmeta) self.low_threshold = 100 self.high_threshold = 200 def apply(self, image: ImageIO) -> ImageIO: import cv2 canny = cv2.Canny(image.to_array(), self.low_threshold, self.high_threshold)[:, :, None] canny = np.concatenate([canny] * 3, axis=2) return ImageIO(canny)