MakiAi's picture
Upload 84 files
ad8cacf verified

A newer version of the Gradio SDK is available: 6.9.0

Upgrade

🔲 Grid Splitter - グリッド分割モジュール

📋 概要

画像をグリッド状に分割し、個別の画像として保存するモジュールです。 自動的な余白検出と最適化機能を備えています。

🎯 主な機能

基本分割機能

  • 行数×列数指定による均等分割
  • 余白の自動検出と除去
  • アスペクト比の保持
  • バッチ処理対応
from utils.grid_splitter import GridSplitter

splitter = GridSplitter()
images = splitter.split(
    image,
    rows=3,
    cols=4
)

自動余白検出

from utils.grid_splitter import AutoPaddingDetector

detector = AutoPaddingDetector()
padding = detector.detect(image)

⚙️ パラメータ設定

基本パラメータ

パラメータ 範囲 デフォルト 説明
rows int 1以上 必須 グリッドの行数
cols int 1以上 必須 グリッドの列数
padding int 0以上 0 グリッド間の余白
keep_aspect bool - True アスペクト比維持

余白検出パラメータ

パラメータ 範囲 デフォルト 説明
threshold float 0-1.0 0.95 余白判定閾値
min_padding int 0以上 1 最小余白サイズ
detect_edges bool - True エッジ検出使用

🔧 最適化オプション

メモリ最適化

splitter.enable_memory_optimization(
    chunk_size=1000,
    max_workers=4
)

処理速度最適化

splitter.enable_parallel_processing()  # マルチコア処理

🎨 画像処理オプション

余白トリミング

images = splitter.trim_padding(
    images,
    threshold=0.95
)

サイズ正規化

images = splitter.normalize_size(
    images,
    target_size=(256, 256)
)

画質最適化

images = splitter.optimize_quality(
    images,
    compression=90
)

📊 性能指標

処理速度

  • 基本分割: 〜0.1秒/グリッド
  • 余白検出: 〜0.2秒/画像
  • バッチ処理: 〜0.05秒/グリッド

メモリ使用量

  • 標準処理: 〜画像サイズ×2
  • 最適化モード: 〜画像サイズ×1.2

🚀 使用例

基本的な使用方法

from utils.grid_splitter import GridSplitter

# スプリッターの初期化
splitter = GridSplitter()

# 画像の読み込みと分割
image = cv2.imread('grid_image.png')
images = splitter.split(
    image,
    rows=3,
    cols=4
)

# 分割画像の保存
for i, img in enumerate(images):
    cv2.imwrite(f'split_{i}.png', img)

自動余白検出付き分割

from utils.grid_splitter import AutoGridSplitter

# 自動スプリッターの初期化
auto_splitter = AutoGridSplitter()

# 余白を自動検出して分割
images = auto_splitter.split(
    image,
    rows=3,
    cols=4
)

バッチ処理

from utils.grid_splitter import BatchGridSplitter

# バッチスプリッターの初期化
batch_splitter = BatchGridSplitter(
    rows=3,
    cols=4,
    max_workers=4
)

# 画像リストの処理
results = batch_splitter.process_batch(image_list)

🎯 最適化テクニック

メモリ効率

  1. ストリーミング処理の使用
  2. 必要な部分のみ読み込み
  3. 処理済み画像の即時解放

処理速度

  1. マルチスレッド処理
  2. NumPy演算の活用
  3. キャッシュの利用

🧪 品質管理

自動テスト

python -m pytest tests/grid_splitter/

性能プロファイリング

from utils.profiler import profile_splitting

profile_splitting(splitter, test_image)

📝 注意事項

  1. 大きな画像の分割時はメモリ使用量に注意
  2. グリッドサイズの整合性を確認
  3. 余白検出は画像の特性に依存
  4. バッチ処理時は進捗監視を推奨