Operator ID: daft.las.functions.image.image_blackborder_crop.ImageBlackBorderCrop
Image black border detection and cropping processor, supports multiple detection algorithms and output formats.
Details | Caution and prerequisites |
|---|---|
Costs | Before calling an operator, you need to understand the model invocation costs associated with using the operator. For details, see Large model invocation billing. |
Authentication (API Key) | Before calling an operator, you need to generate an API Key for operator invocation. It is recommended to configure the API Key as an environment variable to ensure safer operator calls. For details, see Obtain and configure API Key. |
BaseURL | Before calling an operator, you need to determine the BaseURL for operator invocation based on the region where your current LAS service is deployed. This is used to configure the path parameter values for operator calls. |
Input column name | Note |
|---|---|
image | An array containing input images, supports URL, Base64, or binary formats |
image_name | Optional parameter, an array of image identifiers, used to generate output file names. |
An array of dictionaries containing processing results; each element includes:
If a parameter does not have a default value, it is required.
Parameter name | Type | Default value | Description |
|---|---|---|---|
image_suffix | str | .jpg | Format for saving images to TOS or local storage. |
output_dir | str | "" | Output folder path for saving images. |
image_src_type | str | image_url | Input image format type. |
detect_algorithm | str | auto | Black border detection algorithm. |
black_threshold | int | 10 | Grayscale threshold (effective only for threshold/auto algorithms). |
edge_sensitivity | float | 1.0 | Edge detection sensitivity (effective only for edge/auto algorithms). |
min_border_size | int | 1 | Minimum black border size (pixels). |
target_dpi | list | [72, 72] | Image DPI. |
quality | int | 85 | Save quality parameter (adapted for different formats):
Default value: 85 |
The following code demonstrates how to use daft to run the operator to crop black borders from images.
from __future__ import annotations import os import daft from daft import col from daft.las.functions.image.image_blackborder_crop import ImageBlackBorderCrop from daft.las.functions.udf import las_udf if __name__ == "__main__": # Content will be saved to the specified TOS path. Therefore, you need to set environment variables to ensure you have permission to write to TOS, including: ACCESS_KEY, SECRET_KEY, TOS_ENDPOINT, TOS_REGION, TOS_TEST_DIR TOS_DIR = os.getenv("TOS_TEST_DIR", "tos_bucket") output_tos_dir = f"tos://{TOS_DIR}/image/image_blackborder_crop" if os.getenv("DAFT_RUNNER", "native") == "ray": import logging import ray def configure_logging(): logging.basicConfig( level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S.%s".format(), ) logging.getLogger("tracing.span").setLevel(logging.WARNING) logging.getLogger("daft_io.stats").setLevel(logging.WARNING) logging.getLogger("DaftStatisticsManager").setLevel(logging.WARNING) logging.getLogger("DaftFlotillaScheduler").setLevel(logging.WARNING) logging.getLogger("DaftFlotillaDispatcher").setLevel(logging.WARNING) ray.init(dashboard_host="0.0.0.0", runtime_env={"worker_process_setup_hook": configure_logging}) daft.set_runner_ray() daft.set_execution_config(actor_udf_ready_timeout=600) daft.set_execution_config(min_cpu_per_task=0) tos_dir_url = os.getenv("TOS_DIR_URL", "las-cn-beijing-public-online.tos-cn-beijing.volces.com") samples = { "image": [f"https://{tos_dir_url}/public/shared_image_dataset/test_blackborder.png"], "image_name": ["cat_with_border_crop"], } image_suffix = ".jpg" image_src_type = "image_url" detect_algorithm = "auto" black_threshold = 10 edge_sensitivity = 1.0 min_border_size = 1 target_dpi = [72, 72] ds = daft.from_pydict(samples) ds = ds.with_column( "image_blackborder_crop", las_udf( ImageBlackBorderCrop, construct_args={ "image_suffix": image_suffix, "output_dir": output_tos_dir, "image_src_type": image_src_type, "detect_algorithm": detect_algorithm, "black_threshold": black_threshold, "edge_sensitivity": edge_sensitivity, "min_border_size": min_border_size, "target_dpi": target_dpi, }, batch_size=1, )(col("image"), col("image_name")), ) ds.show() # ╭────────────────────────────────┬──────────────────────┬────────────────────────────────────────────╮ # │ image ┆ image_name ┆ image_blackborder_crop │ # │ --- ┆ --- ┆ --- │ # │ String ┆ String ┆ Struct[base64: String, image_path: String] │ # ╞════════════════════════════════╪══════════════════════╪════════════════════════════════════════════╡ # │ https://las-ai-qa-online.tos-… ┆ cat_with_border_crop ┆ {base64: /9j/4AAQSkZJRgABAQEA… │ # ╰────────────────────────────────┴──────────────────────┴────────────────────────────────────────────╯