Initial commit
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
|
||||
from __future__ import annotations
|
||||
from dataclasses import dataclass
|
||||
from typing import Dict
|
||||
|
||||
from entities.rgb_image512 import RgbImage512
|
||||
from entities.label64 import Label64
|
||||
from entities.sequence8 import Sequence8
|
||||
from steg.embedder import Embedder
|
||||
from steg.extractor import Extractor
|
||||
from steg.component_pipeline import ComponentPipeline
|
||||
|
||||
|
||||
@dataclass
|
||||
class ExtractMode:
|
||||
"""CLI-режим извлечения метки из изображения."""
|
||||
|
||||
def run(
|
||||
self,
|
||||
input_path: str,
|
||||
output_path: str,
|
||||
channel: str,
|
||||
seq0: str,
|
||||
) -> Dict[str, str]:
|
||||
"""Извлечь метку и сохранить 64x64 PNG."""
|
||||
rgb = RgbImage512.from_file(input_path)
|
||||
seq = Sequence8.from_string(seq0)
|
||||
|
||||
pipeline = ComponentPipeline(channel=channel, embedder=Embedder(), extractor=Extractor())
|
||||
label: Label64 = pipeline.extract_from_rgb(rgb, seq)
|
||||
label.to_image(output_path)
|
||||
|
||||
return {
|
||||
"status": "ok",
|
||||
"output": output_path,
|
||||
"channel": channel,
|
||||
"seq0": seq0,
|
||||
}
|
||||
Reference in New Issue
Block a user